This is the (needlessly long) Post-Mortem for my First Ludum Dare Entry: “Disastris”
I’ve never really done a post-mortem before, and I didn’t take many progress screenshots, but here goes 😀
The Theme Announcement and Brainstorming
Like many people I was completely taken by surprise when I saw the theme. I was expecting something abstract, similar to the theme for the last few Ludum Dares, like “one rule” or “expanding world.”
I banged my head against the wall over and over again, coming up with generic idea after generic idea, writing down an astounding 14 unusable and generic themes in a single hour. I took a shower, then looked over all of my ideas.
I hated them all.
So, worried about using up too much of the time, I settled on my first idea: a game where you play as a Yeti trying to drive people to madness by being seen without your existence being proven. I wrote down all sorts of ideas, but nothing really felt right. I looked back at the other ideas, and one stuck out at me: “you are the fire.” I had dismissed this idea as being too far from the theme, but after all my hours of agonizing over the theme, I decided that it was fine to waver a little bit from it.
But the thing is this: The idea fit the theme perfectly. That’s the first thing I learned from the experience – don’t discount an idea because it doesn’t feel close enough to what has been asked for. If the gameplay is solid, its possible to clearly relate to a theme even when doing something unexpected.
I settled on a puzzle/strategy game for windows and web where you move through a set of single screen cities armed with 4 disasters: fire, tornado, earthquake (later changed to tsunami), and a giant monster. The player would use planning to try to create as much destruction as possible with the disasters given. There would be firefighters, cars in the streets, a variety of buildings that give bonuses, storm walls that were immune to certain disasters, and much more.
So there I was: 3 hours into the Dare with an idea that seemed impossibly complex in a genre I had no experience in. The task seemed enormous, but I decided I wasn’t going to waste any more time on finding a new idea. I was going to stick with it for the remaining time.
I opened up Pyxel Edit and began drawing tiles for the roads in my city. I had decided to make the graphics 8X8 to allow for my artistic “skills” to be hidden behind a protective layer of minimalism. It took around an hour to make the roads, and after that I drew a small house. I drew a skyscraper, and arranged the elements into a small set of city blocks. I then called it a night and went to sleep.
As soon as I woke up (no time for breakfast, I had a game to write :P) I started writing the code to allow roads to be layed out without picking out each road tile individually. I added some houses and the skyscraper, and soon I had a static image of a city. The next step was explosions.
I realized that the most important element of this game would be satisfying city destruction. I wasn’t sure if the game mechanics would encourage experimentation like I hoped, so I needed something to fall back onto. I spent multiple hours trying to get building particles to work, and when I had finished, I had particles flying everywhere. But I needed a disaster to cause the destruction, so I started work on the fire.
Coding the particles and spread of the fire was the hardest part of the entire project.
The fire particles were easier to code than I expected. I made a sprite with 6 images, starting orange and gradually moving to smoke. Particles got smaller and moved to smoke color as they floated up.
Much harder was the spread of fire. The logic that I wrote created a very touchy value for the growth of the blaze. A 5% change in the value was the difference between the fire spreading out of control and it barely spreading at all. It took hours of tweaking that value in two separate sessions to get the fire working. When it was done, however, I had a cool demo where fires could be started which sent rubble from explosions flying everywhere while smoke filled the skies.
Adding the Tornado
This was not very hard, luckily. It just took a little bit of time to draw it, but I incredibly ran into not a single bug when coding the tornado movement. It was my lucky day, I guess
Now I had a tricky decision to make. The particles lagged the web version so much that I could either release a toned down web version with lowered particles, or a windows only version with full particles. It was a choice between most people getting an experience which may not be as enjoyable, or some people simply not being able to play the game at all. I decided that it would be better overall to release only a windows version. Not many people would be willing to download a game that they could just press a button to play, even if it meant a better experience. It makes the overall quality much higher (and ensures better ratings :P) That’s the second thing that I learned: Feel free to lower the scope of a project if it means higher quality.
Adding the Monster
While I expected the monster to be the hardest part of making the game, it actually took only around 40 minutes. So, that worked out.
Another Strange Decision
Time went on, I added more disasters and levels (incredibly running into no major bugs), and I was faced with another choice. The tsunamis in the game use particle effects, but the way I initially wrote the code did not allow it to move even in only the 4 cardinal directions. I could either spend another hour reworking the system, or make it so that the tsunamis can only be placed in two directions. I ultimately decided on the 2 direction approach, and I think it actually benefited the gameplay by limiting the power of the otherwise extremely strong disaster, although the strange control has already caused some confusion. After that, I had finished all of the disasters!
Interestingly, I had almost no experience writing music of any length before this, although I do play drums in a jazz ensemble and have played with some friends in a rock band in the past. Bosca Ceoil was not working properly, for some reason, so I used mixcraft 6, which I also had access to, to create the music. I had a bass line and drum line in my head, and it took around an hour to get that down into the computer. Overall, I only had around 14 seconds of music to show for that time. That’s the third thing I learned (which should have been painfully obvious before): Don’t use software that you don’t know when you only have less than an hour.
This Ludum Dare, my first, was a really great and inspiring experience. My game has gotten a highly favorable reception so far, and that inspires me to continue work on some projects that I have frozen. It has also removed my fear of writing somewhat complex game logic. Before the Dare I tried to tiptoe around that to avoid the massive frustration it often causes me when I need to rework a large portion of programming or run into a major bug.
Thanks for reading. I just realized how long this whole thing is, so I hope I didn’t bore you 😛
See you in December!