Here’s a new game I’ve been developing on-and-off for a few months now. I’ve become pretty busy at “The Day Job” recently, and due to commuting time I haven’t found time to add all the features I’d like. I thought rather than sit on this game for many more months, I’d just release it as is. It’s polished enough to play … but you’ll need a friend (if you live in Melbourne … I’m happy to drop round and play it with you :) ).
Phobocore is a two-player hotseat game, where the aim is to capture all the planets onscreen by shooting them. It’s sort of a cross between Asteroids and Risk/Galcon, with a respectful nod to open field overhead shooters like Robotron, Bezerk or Gauntlet.
The experience of creating this game has been quite enlightening so far. It really got me thinking about aspects of game design I hadn’t thought deeply about. I threw around lots of ideas relating to ‘resources’ and ‘defenses’, particularly thinking about how RTSs like Starcraft require balance in play style between defense building, offensive maneuvers and resource gathering. Good players must multitask and proiritize to get the upperhand on their opponents. Key questions like “Should captured/neutral/enemy planets be solid objects or unhindering ?” occupied more than one dinner time conversation, bearing out all the ways these would changed the game. I had great fun testing the effect of different game rules, and how these changed the dynamics of the gameplay (with huge thanks to my long-suffering girlfriend for playtesting. The next best thing to writing an AI player :) ). If you are keen to fiddle with these game rules yourself, you can throw various flags in the phobocore.py sourcecode to test how these variations change the play style required to win.
I also spent considerable time tweaking things like fire rates and the “planets-held to ammo recharge rate” ratio to try and make the game somewhat fun. It works pretty well for players that are equally matched, but much like Galcon, once one player gets an edge, it can be hard to recover and things are over pretty quickly.
Big features I’d love to add in the future: an AI compurer player for single player mode, and maybe network play. I need to work on the collision detection, improve the graphics, add background music, and add a help screen / tutorial screen and slap on a license (probably GPL for code and Creative Commons for audiovisual assests).
Requires pygame and rabbyt. It’s under the MIT license. I’m regarding this as alpha, since it’s incomplete and poorly tested, (although I am using successfully it in a small game already).
simplemenu, as it’s unimaginative name suggests, is a simple set of classes to automatically lay out a vertical column of ‘buttons’ on the screen, with click and rollover effects. Like the about simplest sort of GUI you could imagine. I made it because I felt like I needed a quick and brainless way to make simple “Start”, “Options”, “Quit” menus at the title screen of games, and during a Ludum Dare 48 hour competition, you don’t want to have to mess around with the details of things like this.
There is nothing I’d call game logic in the classes. There is demo code under “if __name__ == ‘__main__’:” … again this is what I would call ‘functional documentation’, not useful game logic. It’s all still quite ugly.