I've been programming since I was about 11 years old. It's always been a goal of mine to make games - but it has been a path I have deviated from, in order to explore different aspects of the profession. After joining and creating RentMi, launching the Anti-Social Club, and working on Grim Workshop for about a year, I realized that it was time to get back to what actually brought me into software development in the first place: games.

So, during 2017, I am attempting to create (and finish) one game a month. This is meant to be an exercise in game programming, design, the ancient art of actually finishing projects.

This month, I made Asteroid Quest.

Asteroid Quest

It's a space themed shooter where the goal is to collect as much money and upgrades as possible. To do so, you simply have to destroy asteroids, collect their ore, and sell it. It's not very deep - but it's fun.

I ended up using Unity for this game, just for rapid development. It was pretty nice - the 2D tools are well designed, and integrate nicely with everything else. They are lacking in a few places, however; most notably, there is no easy way to make a 2D particle system or trail renderer. Even with custom materials and depths, I was having issues with z-ordering.

The game is also UI heavy, and the Unity UI system is lacking, with no proper way to bind UI elements to variables. This meant that in order to make something like a simple money counter, I had to write an entire script to store a reference to the text element and then update it's value every frame. You could condense this sort of stuff all into one script, but that does not lend itself to code clarity and extensibility. I hope that Unity works on this in the future - I know that this is a feature of UE4 out of the box.

I was impressed, however, with how easy it was to make custom UI elements - in my case, it was a tooltip element.

Asteroid Quest

I wish I had more time to work on it. I think this game would be perfect for mobile. In fact, I started work on a mobile port of it, but other things got in the way. I will probably revisit it next year to expand on it, and release it as a mobile title instead.

What Went Right

  • Art. I wish I made all the art. The sprites are taken from various Kenney asset packs, as well as some Google material icons. I love how it ended up looking.
  • Music. I made the music myself, and felt pretty trendy while doing it. Considering it's the first music I have ever produced from scratch, I think it came out well.
  • Motivation. I had fun working on this, and I really want to come back to it in the future.
  • Theme. I love sci-fi, and I love grindy games with clear goals. This game just clicks with me.
  • Polish. I may have spent too much time polishing stuff up, but the game feels really nice, and I think it was worth it.

What Went Wrong

  • AI. The game has none, as I didn't have enough time. I wanted to make space pirates that chased you down and attacked you. Maybe next time.
  • Content. Nothing really happens once you get all the upgrades, and there's no way to save the game. Once you have seen all the ore types, there isn't much reason to keep playing.
  • Balance. I spent so much time writing the code for the game that I never actually did any in-depth playtesting. It's wildly unbalanced, and way too easy once you get past the first few upgrades.
  • The Idea. I spent more than half of the month making an entirely different game, and then I realized that it sucked, and I needed to change directions. I'm glad I did, though.

Asteroid Quest

Overall, it was a good month for me. I'm excited to see what else I can make throughout the year. I learned a ton of cool stuff that I plan to carry over to my future projects. You can purchase the game (it's pay what you want) for all platforms here.