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!

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