Tech Design Document - GangBug/AgeofEmpiresII GitHub Wiki

Game Concept

Our game will be a short campaign with 3 missions based on the mechanics found on the classic Age of Empires II, with a Feudal Japan aesthetic.

Technical Goals

  • 2D World.

  • 3 missions with different objectives.

  • Unique boss/es.

  • Classic Age of Empires II Gameplay.

UML

Code Style

  • Classes: Upper camel case.

    Example: ModuleRender

  • Variables: Lower camel case.

    Example: archerUnit

  • Functions/Methods: Upper camel case.

    Example: CleanUp()

  • Enumeration: Everything in lower case, with underscore between words.

Example: unit_type

  • Enumeration components: Everything in upper case, with underscore between words.

Example: DEFAULT_UNIT

  • Braces always open and close on a line by their own.

    Example:
    if(example)
    {
    return;
    }

  • Override: We use override when overwriting any virtual method of a class to make it easier to read and to avoid possible errors.

Target Hardware

For now our main goal is to be able to play the game on our university's (CITM) equipment, specifically the laptops on class 101. They have the following components, which will be our minimum requirements for now: * Intel I3 * 2GB RAM * Windows 10 Ports for other platforms could be studied after launching the game on PC.

Performance Budget

Our main goal in performance is to be able to run the game with 60fps on the minimum requirements. We will calculate the ms it takes for each module of our code, and while it's too early in development to tell we expect the pathfinding/unit management side of the game to be quite consuming, so we'll try to optimize it as much as possible. If other modules take more time than needed we will also need to find a way to optimize them, even if that means deleting some of their features.

Branching Policy

We hope not to need the use of branches during the development of the game. However, this could be changed if we find ourselves without time when deliveries are near.

Version List

There are no releases of our game as of yet, but we hope to be able to follow the following schedule:
  • V0.2(Vertical Slice):

    Movement of one unit fully animated.
    First version of our map.
    Basic UI in game.

  • V0.3(Pre-Alpha):

    UI menu done.
    First mission almost finished.
    Villagers, Samurai, Knight and Archer included.
    Zerglings included.
    Resource system.
    Town center, barracks, stable and towers included.

  • V0.5(Alpha):

    Almost every unit in the game, including enemies.
    Almost every building fully functionable.
    Dialogues.
    Second mission.
    Demons included.
    Full map.

  • V0.7B(Beta):

    All missions including dialogues.
    All units, buildings and enemies (boss).
    Basically, all the game's features in the GDD.

  • V1.0(Gold):

    Full game with the least amount of bugs possible.

Delivery Method

The game is developed using Visual Studio 2015 for coding, Tiled for map creation. We will deliver the versions we just mentioned using Github and Github Webs, announcing each major release on all of our social networks and including video updates on YouTube to let everyone know what's new!
⚠️ **GitHub.com Fallback** ⚠️