Jump to content

April 2017 »

2324 25 26272829
- - - - -

Initial Work on Attack and Defend...

4: Adsense

Well, I've started my next little game, currently called Attack and Defend. I plan on it being a single player or multiplayer game which is part League of Legends and part Tower Defense. I'm planning on using my Escape Entity System mentioned in my last entry.

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) :
    UserId(userId) {}
    // Keep member public for easy consumption
    cpFloat DamageRange;
    uint32_t DamageValue;
    uint32_t RefireRate;
    std::string Weapon;
    uint32_t Cost;
    Esc::TEntityPtr TargetEntity;
    uint32_t UserId;

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:
<?xml version="1.0" encoding="utf-8"?>
This file details the soldiers in Attack and Defend

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.

Jul 24 2012 05:20 AM
Looking forward to seeing some more progress on your project!!! I programmed a DOTA type game a few years back with C++ and Allegro 4. The A.I. was a lot of fun to program, and I must say I really enjoyed the experience!! :)

Keep us posted!!!

Note: GameDev.net moderates comments.