I’ve been a bit quiet recently so here’s a quick update as to what’s going on at Pumpkin Towers over the past few months (ok, there are no towers, just a dining room or two and sometime a bedroom).
What’s that then. I’ll leave that to the author, Juan Campa (https://twitter.com/juancampa)…
Gearset gives XNA developers a set of tools to increase development efficiency, reduce debugging costs and ultimately make better games. Gearset is a must-have if you want to get the most out of your development time.
It’s a great tool but was probably going to be left to rot as Juan moved on to other things / didn’t have the free time to dedicate to it, so, I pestered him to make it open source.
Here is the original repo: https://github.com/juancampa/Gearset
…and my fork: https://github.com/PumpkinPaul/Gearset
Nuget packages available too: https://www.nuget.org/packages?q=gearset
I fixed some bugs, added some new ‘gears’ (a heap memory monitor and a performance profiler mainly) and made the whole thing usable on Mac and Linux. I used the excellent GUI library, Empty Keys (http://emptykeys.com/) as a replacement for the user interface on non-Windows platforms. Check it out if you’re an XNA or MonoGame developer.
Fried Graphics Card 🙁
My trusting MacBook Pro died over Christmas which put an unfortunate stop to all Pumpkin Games related activities. It was a good few years old so I was expecting to have to buy a new dev machine – BUT Apple replaced it free or charge under their “MacBook Pro Repair Extension Program for Video Issues” program (https://www.apple.com/uk/support/macbookpro-videoissues/) as it was a known fault. There was a bit of tooing and froing as the first motherboard they used had a wobbly RAM port so it kept crashing.
Went snowboarding in Alpe D’Huez at the end of January – plenty of snow and blue skies every day made for a great holiday.
Is the new name for the new game I’m working on. I’ve taken a break from glowy, retro shooters and gone all platformery. Here are a few WIP screens of progress so far…
I was originally going to jump on board the Unity train, partly to see what all the fuss was about and partly to expand my skill set – in the end though I decided to just stay on XNA / MonoGame – I’m much happier writing code in a text editor than I am diddling sliders in an editor and my ‘engine’ is quite mature now.
I’ve been wanting to do a full replay system for a while now having dabbled with it in previous games; saving inputs and random seeds, but I could never get recordings to replay consistently – there was always some part of the game, somewhere, that caused the replay to get out of sync. And I wanted rewind too. So for this game I’m saving all game state of all world entities.
Protobuf-net (https://github.com/mgravell/protobuf-net) is my serializer of choice and it’s pretty awesome, handling all my pooling, memory constraints and custom types with ease. The author, Marc Gravell (@marcgravell) is also super helpful and an all round top chap too. Replays are in, working, and (mostly) bug free (some things are not saved so I need to make sure I reset them when finishing a rewind action) – I’ve even got some unit test scripts to check everything deserializes to the exact same state.
Rewindable sound effects caused some head scratching but are implemented and have been flagged ‘good enough’ 🙂 It required a new particle system as you don’t want to go saving all those pesky particles 🙂
Periodically I’ll compress a bunch of properties to save some memory and I must re-watch Jon Blow’s Braid talk too for some more handy tips.
I’m toying with the idea of using the replay system as a gameplay mechanic but as I suck at game design, I’m struggling a little (I’m hoping Chris Jeffels from Binary Zoo will show me the light here).
A demo (really, really rough alpha version) should hopefully be available in the not too distant future)