Basically, 2 (or maybe more) player have bases at opposite ends of a map. They have a starting amount of money, and they can release their own "Soldiers" and build their own "Towers". Each Soldier and Tower (both of which will have multiple types) cost some money to create. You earn money by destroying your opponents players, and getting a certain income every so often. To win, kill your other players base.
Each soldier can go down one of the multiple paths between bases. There will be a fog-of-war detail so you can't see what the enemy is doing unless you have soldiers around the area.
Work Currently Done
So far I've got the main skeleton for the code down. The 1st pieces Iv'e done are create some components and an entity factory.
The Components planned right now are: Physics, Graphics, Animation (later), Collision, Health, Soldier, Tower, Base, Projectile, Camera, Input, EnemyAI, NetworkPlayer, and Death.
Here's my current Soldier Component:
class TSoldier : public Esc::TComponent
TSoldier(cpFloat damageRange, uint32_t damageValue,
uint32_t refireRate, std::string weapon,
uint32_t cost, uint32_t userId) :
// Keep member public for easy consumption
A typical Soldier entity will contain a Physics, Graphics, Health, and Soldier. When it comes in contact with something it's concerned with, a Collision component will be added (and removed when separated). You'll also have the ability to individually control a Soldier. this might be good for the more powerful soldiers, for the player to have detailed control over. Which brings me to...
The EntityFactory. This will create all the entities for the game. When it loads, it should read from some xml files that details the entities. For example, here my current Soldiers xml data file:
When the player creates a soldier, the entity factory will know what it's default values are.
That's basically where I am. I plan on working on some of the systems next time.