In between zooming around from NS to NB this past weekend, I knocked out a Ludum Dare game. Neat little randomly generated retro style platformer. Posting this both on the Ludum Dare site and my own blog. So LDer’s enjoy an expository preamble!

Click to play

Preamble

So if you’re unfamiliar with Ludum Dare it’s an online, solo game development competition. They release a theme and you have to develop a game using that theme in a forty-eight hour timeframe.  A large list of themes is created and after a few rounds of voting , the list is culled to a dozen or so final themes to vote on. After the final round of voting is complete, the theme is released and a sleepless, hectic weekend begins. I was rooting for “Randomly Generated” to be selected as the theme and was already salivating at the prospect of making a roguelike.

Over the last few years the only games that really stick out to me as being actually fun and life destroyingly addictive were the new wave of roguelikes. Spelunky, Transcendence, and The Binding of Isaac have taken a mostly inaccessible genre and made it almost casual. If a player can get over how masochistic these games are, it really scratches their drive for mastery. There is nothing that can foster that “Just one more turn…” effect better than these games. But I digress, this is a subject worth a post all on its own.

Spelunky was a harsh mistress

The weekend of this Ludum Dare coincided with a friend’s Christmas party I few hours away. I didn’t want to lose six hours driving back and forth so I opted for twelve hours by train. After packing everything for the trip I settled in and waited for the theme reveal. “Alone” ended up hedging out Randomly-Generated by a few votes.  Even though I was bummed over my pet theme losing, I figured I could still work Randomly-Generated into my concept. What I roughed out, was that you were a monster created by the government, you wanted to escape their pursuit and be left alone. I pegged the gameplay as a platformer with randomly generated level sections. I wasn’t sure about combat and mechanics but I was hoping it’d grow organically throughout the competition. My main goal was to produce something playable that had some random level generation in it.

Could you, would you, on a train?

What went right?

Flixel and Flixel Power Tools

Even with the minor learning curve, Flixel and Photonstorm’s Power Tools were a huge boon. Flixel itself makes blitting ridiculously simple.  Power Tools is so feature rich it covers the majority of your bases. Projectiles, quick controllers, collision, health bars, etc. Really looking forward to having another excuse to play around with Photonstorm’s plug-in, since I’ve only scratched the surface.

Randomly Generated Levels

I feel the time was spent better generating the random levels, than building a few poorly designed levels. As there aren’t a ton of game mechanics the best I could do with level design would have been in the realm of jumping puzzles or a vertical maze. The randomly generated levels toss in a little replay value, and lay a foundation for a roguelike in further development.

In terms of the actual generation it was pretty quick and dirty. Originally I had created a system that would take sections of 5 rows, 10 rows, and 15 rows, each being 13 columns across. You’d pass the length and width (in sections) and it would stitch together the random sections into the full map.

Each section looked like this:

00,00,00,00,00,00,00,05,00,00,02,00,03
00,00,02,00,00,01,01,01,00,01,01,00,01
00,01,01,01,00,00,00,00,00,00,00,00,01
00,00,00,00,00,00,02,00,00,00,00,00,03
01,03,01,01,01,01,01,01,01,01,01,01,01

00 – Empty, 01 – Solid Tile. 02 – Enemy, 03 – Open Tile to Next Section, 05 – Possible entrance/exit door.

Due to the time constraint I wasn’t able to implement the 10 and 15 row sections. It definitely would have made the levels feel a bit more unique, but I think they come across as pretty varied just using the 5 row sections.

Pixel Art

First time playing around with pixel art, probably could have done better with the tiles, as the thick black outline doesn’t work really well. But otherwise everything turned out pretty swell. Animation was a bit of a pain, but I’m content with the results. The choice to make the main character limbless was a big timer saver.

My easily animated friend...

Organic Evolution of Mechanics

Setting out on Solitude my main goal was a Spelunky-esque platformer, but beyond the randomly generated levels I had no idea on what mechanics I’d need. Plopped in the basic melee attack and ranged attack. Bullet reflection when using a melee attack was a happy accident and a great alternative to making a shielding ability. Flight ended up being an accident as well. The terrain destruction was a response to the possibility of there being no direct path to a level exit.

Roguelike Resource Management

I didn’t have any initial plans for energy consuming attacks, but flight and and terrain destruction were easily abusable. Most roguelikes have a few finite resources that you have to manage I feel like I did a good job of integrating this with energy and life. You can only replenish energy by killing troops, and you need that energy to more easily traverse the level.

It doesn’t have a huge impact in the jam game, but I think it’ll be a much bigger deal if I continue on with development. Using a timer to push the player forward and keep the game fast paced, the health and energy trade off will be one of your main decisions.

Music

If I had hit the 48 hour deadline I definitely would not have had a chance to add music to the game, so the running over the deadline was a blessing in disguise. I had a friend put together my music. Ended up far better than what I could have ever produced, and has the perfect pacing for the game.

What Went Wrong

Time

Everything boils down to lack of time. Sparse mechanics, rough art, no sound, having to enter the 72 hour jam instead of the competition. Being tied up with real-life, and travel.

Arguably you could say my scope, goal, and choice of tech that I don’t have solid experience with is the real problem, but I set out to make a randomly generated game, make some pixel art, and learn Flixel. Those motivations went above making a fun polished game.

Difficulty

Seems to happen with every LD entry, but I think Solitude is too hard. You can only breeze through it once you start abusing mechanics. It’s likely you’ll lose interest in the game before you get that comfortable with the game.

It’s something I’m going to have to be more conscious of when pumping out an LD game. My group of friends aren’t the best for feedback in terms of a game’s difficulty. So maybe I should start harassing folks in IRC during the competition…

Conclusion

Unlike other LD’s there isn’t a ton of reflection to do here.  All in all,  really happy with the result of the LD despite my lack of time. Got to play around with Flixel and got to start off a bit of a roguelike.