Tiny game #2: Neat-O-Droid

This game took about two weeks from start to finish. “Two games a month” instead of “a game a week” still doesn’t sound too bad, right?

The gameplay is somewhat inspired by the good old Paradroid C64 game, with some Pacman mechanics sprinkled in (gobble up the pellets, avoid and kill the monsters, clear the maze, you name it).

click on the image to open the game in a new window – webgl-enabled browser required!

The most interesting programming challenge was the map generator- I spent the bigger part of the first week on it. The levels in the game are fairly small, but the algorithm can generate arbitrarily big maps, which I hope will come in handy in future games. The general structure is a nested set of rectangular rooms and hallways, such as this:

a bigger maze

The algorithm is based on a simple binary space partitioning scheme, essentially going through these steps:

  • divide an initial rectangle with a few wide separators (the hallways)
  • recursively divide the parts with thinner separators (rooms separated by walls)
  • identify all separator spans shared by two rooms (potential doors)
  • create a random path covering all rooms (this will be the set of required doors)
  • randomly delete a subset of the remaining doors

This way, all rooms are guaranteed to be reachable with an adjustable overall amount of doors.

One major lesson: With the number of moving parts, the parameters that have to be balanced explodes. Even in a simple games as this, tweaking things like

  • size and complexity of the map
  • amount of initially distributed junk
  • player speed and fire rate
  • enemy speed and “litter rate”
  • rate of enemies respawning
  • speed of “junk unloading” at the chute
  • number of junk items the player can carry

do not only make the difference between easy and hard, but also change how the game needs to be played to win.

Tiny game #1: Elsie in the woods

Thinking more about how to unify my interests in programming and art, I’ve been turning to games again – it’s been a while! After spending nearly two months on a prototype platformer game, I had to realize

  • it would take a lot longer to properly finish the game with nice artwork and really smooth gameplay
  • even though developing the game was a lot of fun, I really don’t have that much experience with game design, so ultimately it wouldn’t even have been all that interesting to play.

Inspired by a video on “a game a week”, I decided to abandon the big project and go for way smaller, focused mini games that could actually be implemented in a short time. This is the first of them – situated in what used to be just the intro of my original larger game.

My main goal here was to have a “complete” game – with a beginning, middle, and end, revolving around a simple core game mechanic.

click on the image to open the game in a new window – webgl-enabled browser required!

Despite its simplicity, there were quite a few interesting technical bits here to experiment with:

  • importing the rigged player model from Blender into Unity
  • an outline shader for the player
  • some postprocess bloom in the background
  • Cinemachine virtual camera controls
  • a particle system for the exploding mushrooms
  • 2d physics