Hello everyone. This was a fantastic Ludum Dare for me and I wanted to share a postmortem for my game, NanoBot Adventures. All in all, this was a pretty good game jam for me.
Here’s a link to my game: http://www.ludumdare.com/compo/ludum-dare-23/?action=rate&uid=4263
Using Legos to build my NanoBot sprites worked out really well. My sons love playing with Legos so while I worked on the game, they built an army of little Lego robots. I picked my favorites, setup an impromptu white backdrop and used my cellphone camera to take pictures of them. I wanted the graphics in the Viewport to have a bit of a grainy, pixelated look to them so I took the original images and in Paint.Net I cut out the white backdrop, saved the file as an extremely low-quality JPG, reopened the file and cut out the white background so I had a transparency again and resaved it as a PNG. This process worked out so well that I will be using it again in the future.
Another good thing was my HTML5 canvas framework. I wrote it a few Ludum Dares ago for the Escape theme and it has served me well. I use JQuery for the UI pieces and it has a very basic Update/Draw game loop. I am planning on sharing it on Github in the near future once I get the basics for music/SFX put in as well. Follow me on Twitter (@mattperrin) or follow the #LD48 Twitter tag and I’ll put it up there.
Another good thing was that my local community of game dev friends (www.clevelandgamedevs.com) really came together for this event. We had a LD kickoff event at a local start-up incubator and collaborated for a few hours Friday night together before splitting off. To keep in contact with each other and show progress, we setup an IRC channel that was used all weekend long. Seeing my peers working helped keep me committed and interested too.
I still haven’t gotten sound or music working in a LD game. I tried with this one but I couldn’t quite get it to work properly. I used Caustic on my Android phone to create a chiptune-esque drum and bass song. When I connected my phone’s headphone jack to my laptop’s microphone jack, I either got an ear-splitting loud feedback tone or a barely audible recording of the song. Caustic has a song export feature that I used to make an OGG file but when I tried to get it looping in my game it wouldn’t play. After all of those headaches, I decided to skip trying to do sound all together and focus on some UI polish.
I never got around to adding power-ups or boss fights. I had wanted the exploration of the “tiny world” to be a bit more dynamic. Visiting the Capacitor Forests, Resistor Swamps or LED Ruins was supposed to trigger dynamic events like boss battles, upgrades or NPCs with storyline clues. I ran out of time though and only the basic quest of “Find the broken CPU Chip” were completed.
The Draw calls I use to make the minimap are extremely inefficient. Instead of having a global frame counter and incrementing across the pixel color arrays for each TerrainGameObject I instead have individual frame counters in each TerrainGameObject that are incremented during the Update call. For the glowing circuit traces, I used the X coordinate of the tile to offset the pixel color arrays so that’s how I get the shifting glow effect. Kind of cool to look at, horribly executed by me. The reason I went this way was because as part of the boss battles I was going to have the minimap change to become more “alive” as you beat them. LEDs would start glowing again, resistors/capacitors would generate more circuit traces.
I should have added arrow key buttons to the UI instead of relying on only the keyboard arrow keys. I could have then added Touch Events to those buttons allowing for the game to be played on mobile/tablet devices as well.
Issues with sound and my family took up way more time than I intended. I used Chronolapse to make a timelapse of my work and the amount of time lost dealing with squabbling kids or just “being a Dad” are clearly shown. I’ll be posting this video sometime this week (I’ll share on Twitter) . I think I maybe only got to spend 20 hours or so on the game as a whole.