Pages

Sunday, May 05, 2013

Ludum Dare 26 - RogueOut

Why it's good to take a break

A few weeks ago, I wrote a note in my diary. "No more games. I am not writing another. I will find something else to do that is more suited to what I can actually achieve." In short, I didn't feel that I was making enough progress with the game I was writing, and most importantly, I was no longer enjoying writing it. So, I found myself something else to do in my spare time, and promptly went off and played lots of Borderlands 2, a bit of Skyrim, and I took Coursera's Pattern Oriented Software Architectures course. The course turned out to be excellent and I enjoyed it immensely. Then, when the course was nearing completion, I started looking for other courses, but couldn't find anything of interest. But I just didn't want to return to writing my game as it just wasn't fun to do any more.

Ludum Dare to the rescue

And then along came Ludum Dare 26 with a theme that appealed to me. "Minimalism. But what to write?"

My wife suggested Paper Pong.

"Maybe. But it needs two players. What if it was Paper Breakout?"

"How are you going to do the explosions?"

"Lego Breakout?"

"No."

"1970s Breakout, with chunky white rasters and a scanline effect ... wait, ASCII Breakout! I like ASCII games like Rogue and NetHack..."

At that point the idea popped into my head and RogueOut, the unholy offspring of Rogue and Breakout, was born.

The obligatory Ludum Dare post mortem

What went right?

The theme. Clearly the theme struck a chord, as the idea popped into my head about five minutes after sitting at the keyboard. That doesn't happen very often. Sometimes it has taken me until around 9pm on Saturday evening to think of an idea, so hitting the ground running with a good idea at around 11am bought a lot of time.

I could visualize the end result. To get an idea of what it should look like, I first created a mock-up. Normally this is an effort for me, as I can't draw, but ... I can do ASCII. I speak it. So I drew a picture in ASCII and printed on the screen, then took a screenshot so that I could have a look to aim for. This made the game seem real, because what was in my head translated onto the screen.

My wife was supportive. It is easy to underestimate the importance of having someone in your life who supports you. Normally my wife sees Ludum Dare as just one of those things I do, and she gives me space and lets me get on with it. But this time she was very encouraging and even watched me develop the game. This helped immensely, not least because she didn't let me get distracted by some of the "wouldn't it be neat if....?" ideas that I had, reminding me that I should write down a list of things to do and stick to it.

I wrote things down. This is something I do at work all the time, yet for my personal projects it doesn't always seem to happen. However, I am pleased to say that I took my wife's advice and wrote things down.

The trick is to write down features as if they are fact, without going into the technicalities of how they might actually be implemented. Implementation details are not tasks. The point of writing something down is that you end up with a finite list of things to do, and when that list has nothing else on it then you're finished. It's particularly important for Ludum Dare as there are only 48 hours in a weekend and I like to spend at least 12 of them sleeping.

Here's a sample:
  • The bat moves under the player's control, clamping to the left and right walls.
  • The top row is reserved for messages.
  • The bottom row is reserved for the score.
  • The ball moves around the screen, bouncing off walls.
  • The player is shown their score on a tombstone when they die.
All of these are short, simple statements about features. It's obvious when any of them are done.

I knew all my tools. Eclipse. Java. libgdx. Audacity. All familiar. All installed and set up. No learning curve to climb. I might not like some of them (Java, I'm looking at you) but I know how to use them.

The game was easy to implement in the timescales. Let's see. Graphics. None. They're text. Sound effects? That's me yelling into a microphone with a bit of echo added by Audacity. Title screen? It's a 5x7 font made up of ASCII characters. Death screen? It's an ASCII tombstone. Done. Done. Done.

What went wrong?

Nothing. Absolutely nothing. Around 8pm on Sunday, everything was done bar the packaging, so I packaged the game, checked that it all worked, uploaded it then went to bed.

What happens after Ludum Dare?

That's a tough one. I've already made a web build of the game, and there's even a rough and ready Android port. I know lots of people say they're going to do something more with their games after Ludum Dare, but I'm also very aware that many of those games never see the light of day. I'm not making any promises that I can't keep. But who knows. There's something about this game. It was fun to write. It is fun to play. And I have so many things that I'd like to put into it, so who knows?

No comments:

Post a Comment