It’s a game now
Got started pretty late but managed to get something working.
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!
Zombie Splash City is finished. Play it here. You play as a street cleaner who is the only one to escape infection during a zombie outbreak. You must find the antidote whilst repelling zombies with your high pressure water gun. Once you’ve found the antidote you can heal the city’s populace.
Made using three.js, Sublime Text, Gimp, Audacity and bfxr. Enjoy
Now you can spray water at the zombies. I’m thinking the water in the gun/hose will be a limited but replenishable resource.
Going for a zombie chase game. Next step is to add the unconventional weapon. I’m considering some kind of water gun that repels the zombies but doesn’t kill them.
I’m using three.js.
Along with a scoreboard and lives I’ve now got a little ticker that tells you which planets you have rescued:
The spiders chase you down if you get caught in their web now:
Sometimes you can get away …
If you have any ideas for planet names leave them in the comments (I don’t think that would be against the rules?!)
Now you can shoot at the cobwebs to free the planets.
Well, squares They’ll look like spiders soon …
They’re floating around connecting the planets together.
I’m pretty much done with the collision detection. You bounce off the planets if you hit them and you can get stuck to the “cobweb” holding the planets together. Up next, giant space spiders 😮
Now the worlds are connected 😀
Still a long way to go before this resembles a game though. Collision next (bleugh).
My progress so far
I suppose it’s going to be a space game. The circles are the “connected worlds” (although they aren’t connected yet).
Tools I’m using:
I did it! I turned the simple physics concept into a game! I’m pretty happy with this one. The pace of the game is a lot slower than I originally planned. It’s pretty hard to have things all your own way when it comes to physics libraries. The game is pretty fun, I think. It takes a lot of patience to keep the carts from spilling everywhere but you can’t go too slowly as there is a timer on each level.
The graphics turned out OK. I think they’re a bit grungier than I would have liked but our hero is down a mine after all.
I didn’t have time to add a lot of polish I would have liked:
But that is always the case when I enter LD
Here’s the submission page if you want to try it out
Spent the morning plumbing in images. All placeholder for now. I should really start with images from the beginning rather than just drawing primitives.7
Still need someone to drive this crazy minecart train! And something to put in the carts …