Quick postmortem: Bombit Bob

bombit pic

Before I forget.

My goal for this LD was, as is my habit, to prove some engine tech. (I’m tired of building tech, but I’m also having trouble stopping while pursuing the games I want to make.) In this case, I had three major pieces going on:

MIDI Synthesizer

This thing is a bear, and it will probably continue to be one so long as I stay inside Flash and target my current machine(a 2009-era Intel dual-core laptop) as the baseline. Although I had enough ways to tune the quality to fit, it continues to suck up a ton of CPU with a relatively small number of voices(16-32). And I found flaws in my MIDI playback technique that made looping and dynamic tempo adjustment…”interesting.” Fortunately it works for the game to sound a bit hiccupy.

Stage3D

It works reasonably well, if you aren’t on Linux. I did have a last-minute performance issue where I was doing things wrong with the updates of the tilemap, but that was my fault and was more of an engine bug than anything.

Client-server architecture

Yeah…this game is actually doing a lot more work than you’d think, under the hood. It’s built on top of an engine that is intended to be multiplayer-ready… (someday, not now) and it sucked up so, so many hours figuring out solutions for things like “picking up items” or “timing the bombs going off.” A playthrough-stopper that I’m still unsure whether I solved or not, because it has a non-obvious trigger in normal play, is something related to the synchronization of entity despawning. All this added up to the game being very bare-bones, without some of the stuff I wanted like NPCs to oppose you or powerups or chain reaction explosions.

However…I managed to get through the jam without very many terrible hacks. So in the aftermath I can start going back and whittling away at the problems, and that is going to help make this codebase very strong…although I really want to get away from Flash at this point, I’m mostly waiting on Haxe/NME. It’s currently an NME-oriented engine, but I’m definitely considering dropping NME, porting towards the Haxe CPP and JS targets alone, and getting away from Flash for good \o/

A bit on the game design

It was actually pretty straightforward to come up with a design for this one, by shamelessly stealing from Wreck-It Ralph.

1. Villains tend to destroy things (but they don’t have to be evil mustache-twirlers)
2. Make a character whose ability is destruction and is driven to become the bad guy.
3. Give them a space to destroy.
4. Make the destruction engaging.

The only part I kind of missed on was the last, simply because of a lack of depth.