I’ve started the OneGameAMonth (#1GAM) challenge for 2013! I just wasn’t making much progress on my “big idea”, so I thought it would be best to take smaller but more complete bites. With #1GAM, the idea is to build a very small but complete game each month, and I think that’s exactly what I need to get better.
For January I’ve started a game named, terribly, “Tactical Space”. It came to me while playing the demo of Angry Birds Space. The idea is that you, the player, have a planet on one side of a 2d map and the “enemy” has one on the other side. The goal is to destroy the enemy planet with various weapons, ranging from regular shelling to missiles. Between the two planets are a number of other planets and space debris that block and exert gravitational forces on your projectiles as they fly through space. A screenshot might help:
Let’s pick-apart this hideous excuse for entertainment:
- The player is the planet on the left, while the “enemy” is on the far right.
- The planets are obvious, but what isn’t obvious is the very lightly faded moon-looking outline on all of them. The texture is poor, but the idea is that it’s showing the field of influence of each of the planets. For example, the two bottom planets have very large fields of effect, and it’s easy to see because of the giant halo around them.
- The glowing dots are the projectiles that the player is currently shooting. There are many in this shot.
- The salmon-colored lines are for debugging and are drawn between planets and projectiles they’re affecting. On the right you can see a few that are under the influence of two planetary forces.
That’s about it for now, but I’m pretty excited. My next goal is to swap out some of the graphics with images from Indie Graphics Builder (I was part of the Kickstarter), which will help me establish a few more game-dev tools in my toolbox (Irfanview and Texture Packer). Though I think I’m going to go overboard and bloat the game several megabytes just so I can have a few cooler looking sprites. Then I want to add a few weapon options, maybe change the way the enemy planet is destructed, and a few more things I’m sure I won’t have time for in January.
The main tech behind the game is IceCream (modified by me), with Farseer Physics Engine handling hit detection when a sprite hits a planet. I’m not using realistic gravity simulation from Farseer, though I should be! Let me know if you have a great algorithm for handling gravity already written in C#. I just made mine up.