Time for a Post Mortem…

This was my first (but certainly not last) Ludum Dare participation, and it was a real blast. I had already made a game in 48 hours but it didnt have the same thrilling atmosphere I found on the IRC channel and on this blog. I think it was quite epic (in the original sense of the word) to see hundreds of people struggling against time to get their games (or website) running before the deadline. Thank you all that was great !

Title screen

And now for the Post Mortem. I kept a text log of my activities so it should be pretty accurate. I got up on saturday at 10, 6 hours after the beginning of the compo and the theme did not inspire me much. I tried to think over it during breakfast and shower but it didnt bring much of an idea. Three quarters later, I ended up deciding I would make a somewhat conservative platformer featuring vertical gameplay in procedural levels to escape from rising water. My scratchpad also had a few notes about a science fiction game involving unlocking gates before some ship autodestruction, but that’s probably because I was listening to Farenheit Project Part 6 at that time.

I spent the rest of the morning in photoshop, producing base graphics to get me started. I know most people like to start coding right away and make games with red and blue rectangles, that’s probably a more reasonable thing to do but it doesnt motivate me as much. By lunch, I had the most important assets of my game : Ernest, a jewel, three platform tiles and two water tiles (none of them animated). I think that’s about the time I posted my journal entry =)

The afternoon and evening were spent coding the core mechanics (platforming, dying, changing level) and animating the graphics. I gave up procedural generation quite early because I found it would take ages to get it to make interesting levels. I think I avoided a major pitfall there. After that, I ate tons of food (as in 400g of pasta + sauce) and drank enough beer to get motivated for the rest of the night which was spent level designing until 5AM (I made the first 10 levels in that period. Yes, this also means I got the idea of the balloon level around 3AM after lots of beer).

Since I did not have a map editor, I set up a crazy workflow (image below). I made an “editor” image in photoshop which was simply a big file with grid enabled and some measurements added on the sides. I drew my levels in this file, then measured everything and hardcoded the data in the game.

Level design in photoshop

At that point, I was too tired to make more levels so I made the title screen instead. It had an artwork but it was so awful I trashed it away (that’s the only thing I did not keep for archives’ sake). Then off to bed for 5 hours.

I woke up at 10AM again and I felt more motivated than ever. I’m sure the neighbours loved my speakers and I blasting WHEN I’M UP I CAN’T GET DOWN, CAN’T GET DOWN !” super super loud. Designing the last five levels took me a while and they were done by 3PM. I made the end game content ((terrible artwork), congratulations message, credits etc.) and from this moment on, the game was playable from start to finish. I was still considering the addition of more levels but I had basically run out of ideas around level 11 or 12 so it didn’t happen.

At this point, I thought I should start making music but I really wanted to add torches in the background. So torches time it was. I quickly made them in Photoshop and started adding some torches to the first levels. the problem is that I had not saved some of my photoshop level sketches and that it was very hard to guess the coordinates where I should put the torches. I came up with another dirty trick for this : I made a debug build where the character had infinite jumps, could not die, and would output his position to the debug log when I pressed “T” (for “Torch”). I flew around the levels and hit “T” everytime I was on a potential torch position and then I got all the necessary coordinates from the debug log. The entire process took only half and hour. Pfew.

I spent the next few hours making the end game music (which was supposed to be the title screen music at this point) and the main music. Then a friend of mine popped in and I tied him to a chair so he would play the game on and on, reporting bugs while I was fixing them. Since I still had a bit of time, I made a different music for the bonus level, changed the title screen, added the oxygen gauge someone suggested on IRC and polished a few things. Of course, the huge collision bugs (falling through elevators) started showing up 1 hour before the deadline and I hastely hid them the best I could by slowing the elevators and called it a night.

After submitting the game (20 minutes before the deadline), I laid back on my chair, removed the cap on my very last beer, and there was a huge grin on my face. I felt a fantastic sense of accomplishment as I was leaving the almost trance-like state this competition (and beer) put me in. The game was far from perfect, but I was still baffled by how much content I had made in comparison to my previous 48h competition.

What went well :

  • Having a dedicated tester. Having someone spending more than a couple minutes testing the game was very very helpful because it saved ME lots of time and brought to my knowledge some bugs I would never have seen. Hanging around IRC was also very helpful.
  • Bacchus. This competition was a great occasion to try using my custom HaXe game framework and see if it was really usable. Turns out it is. It never got in my way and provided lots of useful features and some useful error messages.
  • Sticking to an idea. Almost all of the work I did ended up somewhere in the game. The only things I wasted are a shitty artwork, 30 minutes of code trying to generate procedural levels and a crackled tile.
  • Rushing art. I consider myself a very slow artist, I like to polish things for hours. The competition made me rush things and I think it doesnt show too much. Picking colors super fast turns out to be a decent alternative to carefully selecting them, it did yield surprisingly good results.

What could have been better :

  • Theme and game idea. I did not make much out of the theme and my game is very classic. I had the same problem last time I made a game in 48 hours so that’s something I’ll try to improve next time. Thinking outside the box is a quality I envy.
  • Preparation. I had problems making Chronolapse work and gave it up. If I had done that a few days before I would have a sweet timelapse by now. I also did not do the weekly shopping before the compo so I ended up starving on Monday night. No good. Also, I should have borrowed a screen because making a game on a single 15″ screen is not very comfortable.
  • Spaghetti code. My code started nice and clean, but as time went on, I allowed myself more and more dirty hacks. It’s still ~readable (at least by me) but definitely NOT pretty. I would probably have had the time to notice and fix the remaining bugs if I had been careful all the way through.
  • Level design and balance. I’m still in the process of collecting feedback but most of the issues raised so far related to level design and difficulty. I agree with that and I think a few levels are very uninteresting. There are a few ones I like a lot though.
  • My favorite bug. If you listen to the end game music, you’ll notice that the lead instrument doesnt play in your right speaker. Here’s the reason why :
    Propellerhead's Reason. OOPS.

TL;DR : I love you and I love LD.
And here’s my entry.

Resources used :
Tools

Comments

RichMakeGame
23. Aug 2011 · 18:26 UTC
great writeup! gotta love reason :)
RichMakeGame
23. Aug 2011 · 18:27 UTC
wait, did you just make an epic pun
23. Aug 2011 · 18:43 UTC
That was unintended 😀