I haven’t done an LD in quite a while… This ought to be fun and the themes all look fairly interesting this time around. The last Game Jam I participated in was over a year ago at my local Cleveland Game Devs Meetup group. I’m expecting to be a little rusty but I’ve still been making games for a while now. I’m planning to work with Unity’s 2D mode, using Paint.Net for creating sprites, using Spriter for sprite animations and then a combination of BFXR, Caustic 3 and Acid Xpress for music and sound effects. Only 5 more hours to go!
About mattperrin (twitter: @mattperrin)
Automation Engineer, Indie Game Dev, Tinkerer and Family Man
It’s been a while since I’ve done a Ludum Dare and while I’m not too wild about the theme, I had a goofy idea I feel like putting together. Basically, I’m ripping off the cult classic movie CHUD and making a body snatcher lurking in the sewer sort of game… yeah, I have no idea what the hell I’m thinking but that’s the fun, right?
For tools, I’m going to use Unity’s 2D toolkit and Paint.Net for making sprites. Depending on how far I get tonight, I might look into using Spriter for animated sprites and try my hand at making distorted, 8-bit era synthesized speech.
Well, back to work!
This will be my fifth Ludum Dare event and the third game Jam for my local game dev group. I’ll be using a lightweight HTML5 framework that I’ve been using for game dev for a while now. I keep meaning to write some docs on it and share it on Github. Not sure I’ll be able to get that done this week though. Good luck everyone, there are a couple mind blowingly amazing themes this time!
IDE : Webstorm / Notepad++
Sound: SFXR and Caustic 2.0
Graphics: Paint.Net, maybe Spriter or PyxelEdit
Also: Chronolapse, Freemind / XMind, Dropbox for hosting
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.
If I could go back in time, maybe that’s what I should have named my Ludum Dare entry. Instead, though, here is “The ESCape”.
This was my first Ludum Dare and it was a fantastic experience. I’m very very tired, learned a ton about HTML5/JS I didn’t know about (freaking inaccessible vars from setIntervals created within the object), and I am looking forward to participating in the next event and seeing the other submissions!