donut panic: postmortem

My first Ludum Dare!

Before the jam started, I had decided that I was going to use it as an opportunity to experiment with online, multiplayer game programming. Setting out to use the jam as a learning experience was good for me, but not so good for the game: if I’d been less intent on the multiplayer/online aspects, I probably could have refined the core game to be more fun to play. Can’t win ’em all, I guess.

The result: donut panic!

 

donutpanic

 

What went well:

  • Completion: in spite of a busy life, ambitious goals, and total inexperience, I managed to ship the game. That was exciting!
  • Collaboration: I worked with my son Micah, who is 6. Without him insisting on making the game playable, I probably would have spent the entire time yak-shaving.
  • Multiplayer: Actually works! With in-game chat!
  • Coding: I haven’t written python or javascript in about a year. I had no problem at all getting back into a groove with them, or switching back & forth (checks his python for stray semicolons…)
  • Shiny toys: I was completely new to canvas, websockets, and tornado. These were all nice tools to work with, and good to learn, and didn’t make me crazy with frustration.
  • Algorithms: In spite of 25 years coding, I’d never written a maze generator or implemented path-finding. Now I have, yay me!

What went better than expected:

  • Graphics: I managed to pull out non-horrible graphics! I used aseprite (and didn’t aim too high.) I wish I’d settled on larger sprites, though.
  • Sound: I used my microphone and some processing in Audacity, and managed to make sound that’s not embarrassingly bad.

What went poorly:

  • Playability: The tricks for making a fast-paced multiplayer game work over a slow network are pretty well-known and documented (interpolation, client-side prediction, etc)… but I didn’t get to them. As a result, the game feels very sluggish when played over the open network, which is how almost everyone has tried it.
  • Fun: If I squint really hard, I see a sketch of a game that’s fun to play… it’s just not there yet. I have tremendous respect for the folks who managed to make games that are actually a lot of fun to play.
  • CSS: The splash screen uses HTML controls and CSS styling, and I spent an embarrassingly long time bending CSS to my will.
  • Real World Gathering: I organized a real world gathering at a local hackerspace; unfortunately, everyone else bailed at the last minute, and Micah and I were the only ones there working on a game. Oh, well.
  • Theme: I was not (at all) inspired by the 10 second theme. It’s used in various mechanics in donut panic, but certainly not the theme of the game.

Conclusion:

I learned a ton, and I’m proud of donut panic both as a technical accomplishment and as a game. I’m super pleased that I managed to ship it on time. And I’ll be back for more!

Tags: postmortem