Another Ludum Dare, another game. Zombie Splash City is my first fully 3D game and I’m pretty happy with it. To conduct this post mortem I’ll start with:
What I felt went well:
The blocky, pixelated aesthetic maybe cliche but I’m really happy with what I acheived. It underscored a rule of thumb I’ve learned from doing LDs. Keep things simple and stylized with limiting constraints such as low res, low poly, simple colors etc. You’ll find that not only are assets quick to make when time is short but if you get it right they may even have some charm to them.
I’m mostly happy with the gameplay. The central mechanic is strong and fun (although perhaps not perfectly balanced, more on that later). The addition of the antidote came later but it really improved the game. I feel the end game where you’re healing the zombies is really satisfying and, once you’ve healed enough to be safe, feels like a reward for your hard work.
The way that the buildings fade out so as not to obscure the action is nice. It’s a technique I’ve been using in another game I’m working on and it’s pretty cool.
The code itself is awful but I used, created and stumbled on some techniques I’m proud of. The fading out of the buildings I mentioned is one. The random generation of the buildings uncovered a core mechanic, the claustrophobia of the alleyways in between, particularly when you absolutely have to venture down them to find an antidote. Not having time/motivation to work on a HUD based in HTML or a 2d Canvas uncovered the idea of putting the player’s health, pressure and antidote above his head. I think I actually prefer this to a HUD (although it may take some time for a player to figure out what each of them mean).
You’ll notice that every so often the zombies fade out. It sucks that the player sees this but it means I could reuse zombies to continue the onslaught of new zombies as you moved around the level. While there are only ever 100 zombies in the game I think it often feels like a lot more.
Now what didn’t go so well:
Time Wasting while thinking of an idea
I spent a lot of time (hours) at the start trying to come up with a better idea than this one but it didn’t come. I didn’t really like the theme much and felt uninspired. However after it was obvious nothing better was coming along I should have just stuck with the idea I had.
Time Wasting on asset creation and toolchain
I initially tried to create much more ambitious 3D models that were less stylistic and more realistic/technically accomplished. This was a bad idea for two reasons. Firstly I am not a 3D modeller, neither do I aspire to be or practice becoming one. Not only did it take me a long time to model, rig and animate a more human-shaped character in Blender but it looked terrible on top of that. Add to that the fact that I’d done no preparation on how to export animated, textured models from Blender to a three.js project and the whole endeavour was a big waste of time. This also meant that I gave up trying to import even my crude stylized models and ended up plotting all the vertices in all the models (including UVs!) by hand in the code. This was incredibly time consuming (although incredibly fun at first). I need to remember to both be more modest with my graphical ambitions next time (particularly if I’m creating in 3D) and to better prepare with regards to my toolchain.
Polish and balancing
I quite like the way the game is balanced although I don’t think it’s quite right for most people. The water gun could be more effective and therefore more satisfying to use. It’s difficult to avoid making it too overpowered though. A friend suggested making it have more range but have the pressure last for less time. This may have worked but some have suggested the pressure is already too shortlived.
I would have loved to include music in the game but didn’t have time. Creating halfway decent music quickly is a skill I need to practice. Some of the sounds in the game are the first time are the first time I’ve ventured from just using bfxr and recording my own voice in Audacity. Some of them have a certain charm but others are muffled, partly because I rushed this process at the end of the 48 hours and partly because I’m am terrible at enunciating.
I would also have loved to have spent more time on the procedural generation of the city. I wanted to include cars, fire hydrants, lamp posts, real pavements and a sane road layout. A main driver for choosing this idea was to have explored this kind of stuff more. Unfortunately this was probably ambitious even without all the time I wasted. Happily though the shonky random layouts I came up with generated the alleyways I mention previously :).
Thanks for reading
So in conclusion a lot has been learned, some poured into this game and some hopefully I can take into the other games and game jams. If you’ve read this far congratulations on your patience. I figure most LD post mortems are only read once by the original author (if that!). What are you doing here? Go Play Zombie Splash City!