I’m at the stage where I’m coding the basics of the core mechanics. I’ve moved away from the more interesting world of 3D and am using good old fashioned buttons and labels as my primary UI as I actually fit some gameplay into the game as only part of it will need to have fancy graphics. The rest is good old fashioned turn based fun and so I can afford to not have it looking very sexy while I make it actually be fun.
It’s far from that at the moment of course, although I am close to making it possible to win the game. I consider this to be an important step because of my experiences with coding non-game projects. To my mind it is vitally important to have your project working at the most basic possible level at the first possible opportunity so it can be used, tested and critiqued with client feedback. The game I’m working on is yet another 4x space game, mainly because I’m really disappointing by most of what is currently available for iOS in the genre and so my current victory condition will be to send ships to capture the entire universe. In this case the universe will be two systems and you will start with a ship to do it. There will be no resistance on the other planet. I didn’t say the game was fun yet.
It’s important to say that at the moment the actual game logic only has a few hours work as I’m doing this in my free time and I only see needing a couple more before I’ll hit this stage. The goal is to have a nice set of unit tests for the logic and so I’m going at the core C++ code with full TDD and letting the UI be a bit more fast and loose.
My priorities are probably really off but the idea of having something that is playable also extends to things like the icons, splash image on iOS and the like. The more it feels like an actual full game the better and so my next stage after the win condition is to go through and make the UI a bit more graphical. Part of this whole experiment is to find out if my experiences as a software engineer for many years apply well enough to game development, or if they just make me spend time working on the wrong bits too early.