Super TransGalactian Hyper-Billiards: Postmortem

This was my second Ludum Dare compo entry and I’m really pleased with how far I’ve come since the first (LD30).

My game’s called Super TransGalactian Hyper-Billiards 2014 and you can play it here.

It’s kind of a real time physics-simulated puzzle game, but I like to think of it a sport played by higher beings in the far reaches of the galaxy.

I made it using libGDX, with the Box2D extension.

I had a few specific objectives for this LD compo: things I’d never really done before or wanted to improve on.

  • Create a game with multiple designed levels, clear rules and an ending (ie. not an procedurally generated infinite runner/jumper or puzzle, etc).
  • Have a consistent look and feel with graphics, colours, menus and so on.
  • Make some music (never done this before!).

What went right?

  • After a little initial exasperation at the theme, I had breakfast, watched an episode of Big Bang Theory and got an idea that clicked. I think that’s my favourite part of the process, thinking up something original and fun (I hope), a set of rules and tying up how it’s all going to fit together over a cup of coffee or two.
  • The title. I like the title.
  • Well, I did make some music, which I’m pleased with and a lot of people seem to like. I used Zynewave Podium free and a VST called Podolski by u-he and found a couple of nice atmospheric presets/arpeggiators/stuff (I don’t really know much about it) and spent some time putting different bits together. It’s simple but effective.
  • I’m pretty pleased with the graphics. It’s simple, but using just the three primary colours and simple shapes ties it all together nicely. I used a palette tool from mudcu.be to pick the colours (I started out with plain red, green and blue, but didn’t really stand out nicely). Also added particle effects and some camera shake. They’re not the best, but I think they add something.
  • I did indeed make different levels. I wanted to do more, but time ran out a bit fast at the end.
  • I’ve got some good feedback over the past two weeks.

What went wrong?

  • Performance isn’t great, especially in a web browser. That’s what you get for throwing in a bunch of explosions willy nilly with simulated particles, especially when they happen at the same time. It can drop a lot of frames.
  • I didn’t design as many levels as I would have liked or with any real plan as to how they work / progress.
  • There are a few bugs around winning conditions: you can still die after you’ve won and after you complete the game the winning music carries on playing indefinitely, so it’s probably a bit annoying to replay.
  • People have commented it plays too slow. I think they’re right and that it’s a combination of me choosing an arbitrary value for acceleration (and not iterating enough on different values) and the performance again.
  • Making the player one of the pieces doesn’t feel quite right, as a couple of people have said. I did it so there was a possibility of “dying” in the game, but there is still a lose condition when another team wins – and I could always add something else as a hazard to the player.
  • I think the capturing of other colours is the wrong way round. It wasn’t a typo – I thought that way would be better – but on reflection it doesn’t make sense. You should change other pieces’ colour, not your own.

A lot of these problems are the result of doing things quickly and picking arbitrary numbers for things that “seem about right”.

What next?

I’m really pleased with how the game turned out and excited about where it might go. It seems to be pulling in two directions: A slower more thoughtful single player puzzle game and a fast and crazy multiplayer explosion fest.

After ironing out the problems above, I want to make a local multiplayer mode and add some new features / types of level, perhaps with non-playable objects like planets / stars / black holes / miscellaneous stuff affecting things. Oh and an AI player (?).

Online multiplayer could be great, but I don’t fancy my chances trying that just yet.