Gareth Williams

I Make Games

I make videogames, sometimes. Serial game jammer. Unity, C#. Made One Game a Month in 2013. Made PicaVoxel. Currently working on Jarheads. Senior developer at Future Visual.

1GAM May: RoboFight!

RoboFight! is an example of a six-week idea that was implemented in twelve days. By that I mean that I bit off more than I could chew. I had the idea for a side-scrolling brawler à la* *Golden Axe, Double Dragon, Streets of Rage etcetera back in April with a view to making it for my May game.

However, due to personal issues and general Real Life™ things occurring, I didn't get started on the idea until the 20th of the month. What I should have done at that point was save the idea for June and make a smaller game. But as it was the only idea I had, I went with it.

Chaos ensued.

RoboFight! is far from finished, but the codebase is so sloppy I have zero interest in continuing with development now, which is a shame because there are a couple of genuine moments of fun to be had while playing the game.

Here's a list of the things that are cool/that I like:

  • The never-ending level. While not fully randomly generated, there are five hand-crafted "sectors" of map with a common start and end point that are randomly chosen and placed down as the player progresses through the game.
  • Weapons. The player and AI opponents can pick up (and drop) weapons that have different stats (range, damage and life). The weapons degrade through use and are then destroyed. Each opponent has a chance of spawning with a weapon.
  • The HUD. I had this cool idea of using tessellated triangles to represent the player's health and weapon life. I think it looks really cool. When opponents die, they drop particles of health represented by the same red triangles, which the player picks up to replenish.Here's a list of things that would have been improved if I'd spent four to six weeks on the game:
  • Movement about the level. It was actually pretty tricky to do the stepped isometric level design you can see in the screens and video. It took me a few days to figure out how to do it, and it's still janky in places.
  • The default (no-weapon) attack. Without a weapon, the attack is a charged "energy fist" kinda deal. The player can hold down the attack button to charge up, then release. It works okay, but it's not as fun as using the weapons. That's bad because you spend more time without weapons than with. The game could use a couple of different attacks and perhaps a block.
  • Combat in general - needs a lot of tightening up, doesn't feel satisfying without a weapon, easy to get stuck in a gang of 4-5 opponents.
  • Enemy AI. It's not too bad, but they can get stuck on scenery at times, and perhaps don't react to threats as well as they should. 

June's game is going to be something extra small, as I don't have too much spare time at the moment, and I need to give myself a bit of a break. I'm maybe going to look at using F# just to see what the fuss is about. 

Tools Used

  • Monogame / XNA
  • Visual Studio 2012
  • Photoshop CS6
  • Tiled
  • Spine
  • Texture Packer


12 days. Probably ~35 hours total.


Windows. If it doesn't run, you may need to install OpenAL.

And Linux. This has been tested on Linux Mint 14 (Cinnamon), you may need to install libSDL-mixer (sudo apt install libsdl-mixer1.2). If still no joy, run from a terminal (mono RoboFight.exe) and copy/paste the output into a comment below.

  • RoboFight! - Linux .tar.gz