Enter The World of Apotheosis

Description

Apotheosis is a two player turn-based strategy game where each player takes turns moving his/her army across a playing field, advancing on the other player. The goal of the game is not simply to wipe out the other player's army, but to eliminate the player’s Hero.


World Setup

Game play commences on a user-defined map which is generated at run time. The map is read in from a file and player units are placed on both the near and far sides of the map, occupying only the first and last 3 rows.

=============================================
THE MAP
=============================================

The data for the gamboard ("map") is found in a text file named WorldDesc.txt. This file can easily be altered by the user to create new and completely original maps for play. Keep in mind the following, as for the map to read in correctly all must be true:

  • The end of each line must be punctuated with a #
  • All entries in the file (except #) must be positive integers between 1-9 inclusive
  • The map must have more than 6 rows in it. This is due to the fact that the first 3 rows on the far sides of the map are reserved for initial random placement of Player 1 and Player 2 units
  • There must be at least 2 columns in the map
  • The largest army count must be no more than 3 times the number of columns (this would result in overflow of the first 3 placement rows)

    ==========================
    Terrain Representations
    ==========================

    The numbers in the text file correspond to both the movement points per map tile and also the visual representation of the tile:

  • 1 => grassland
  • 2 => mountains
  • 3 => desert
  • 4 => water
  • 5 => electricity
  • 6,7,8,9 => chaos

    Each terrain type has different movement penalty points which affect how far any unit can move in one turn (with the exception of the marauder who flies over the terrain and can always move the same distance). The above values correspond to these movement penalty points, where grassland is easiest to cross, and chaos map tiles can potential be impossible to cross.
    So, for example, a unit with a movement cap of 6 can, at most, pass over 6 grassland squares, or 1 desert square and 1 mountain square and 1 grassland square, or 2 desert squares, etc…

    =============================================
    THE ARMIES
    =============================================

    As command arguments when the game is run, players will specify the number of specialized units they want to have. Each player will create their army in this fashion, allowing completely unique armies to be created as the player desires, with the command prompt to run the game in the format of the executable name, followed by 10 integers:
    executable_name # # # # # # # # # #

    The corresponding number of units will be created and placed on the board (if valid) where each # above stands for:
    #p1_slingers #p1_dragoons #p1_marauders #p1_saints #p1 elementlists #p2_slingers #p2_dragoons #p2_marauders #p2_saints #p2_elementlists

    An easy way to remember the order is alphabetically, as Archers, Fighters, Fliers, Healers, Mages...

    If Apotheosis is not run from the command line, and thus the needed 10 arguments are not supplied for army creation, the user will be prompted to enter 10 numbers so that the game may commence.
    *It is important to note that even if the two armies are of unequal size, the game will still run. This is incase someone wants to play with a handicap, or just likes more of a strategic challenge, they can.


    GAME COMMENCEMENT

    Once the map has successfully been read in and opposing armies have been created, the players enter their world, armies at hand and ready to do battle.

    =============================================
    Apotheosis: Hero Selection
    =============================================

    apotheosis \uh-pah-thee-OH-sis; ap-uh-THEE-uh-sis\, noun plural apotheoses \-seez\:

  • Elevation to divine rank or stature (as to that of a God); deification.
  • An exalted or glorified example; a model of excellence or perfection of a kind; one having no equal Apotheosis comes from Greek, from apotheoun, "to deify," from apo- + theos, "a god."

    Upon entering the world, the first player will select the unit he wishes to apotheosize (this unit is known as the player's "Hero.") Immediately after, the second player will follow suit and select his own Hero. When an apotheosis takes place, the apotheosized unit does not only gain a newly founded importance in the player's world, but is instilled with part of the player's own essence. As such, the Hero's and the player's fates become entwined, and the game continues while both players have their heroes alive. Once a player loses a hero he loses himself - the game ends and the other player emerges victorious (this is to make the game more strategic, as the goal is to protect your Hero, rather than to simply to wipe out opposing forces). To keep an opponent guessing, any unit may be apotheosized, whether it be a tough dragoon or a magic-wielding elementalist.


    SOLDIERY

    A player's legion is his support column, his batallion of faith, and, most importantly, the only means of conquering his opponents. Choosing wisely, a player apotheosizes a single entity in his army, and entrusts his own fate to a single unit.

    =============================================
    Units of The Legion
    =============================================


    =============================================
    The Slinger (Archer)
    =============================================
    STATS:
    ARCHER_MAX_HP = 80;
    ARCHER_MAX_MP = 20;
    ARCHER_MOV_PTS = 5;
    ARCHER_ATT_PTS = 3;
    ARCHER_ACC = .85;
    ARCHER_DEF = .24;
    ARCHER_ATT = 1.00;
    ARCHER_EVA = 15;
    ARCHER_FOV = 7;
    ARCHER_DAMAGE_DONE = 25;


    =============================================
    The Dragoon (Fighter)
    =============================================
    STATS:
    FIGHTER_MAX_HP = 100;
    FIGHTER_MAX_MP = 0;
    FIGHTER_MOV_PTS = 5;
    FIGHTER_ATT_PTS = 1;
    FIGHTER_ACC = .95;
    FIGHTER_DEF = .30;
    FIGHTER_ATT = 1.00;
    FIGHTER_EVA = 6;
    FIGHTER_FOV = 4;
    FIGHTER_DAMAGE_DONE = 30;


    =============================================
    The Marauder (Flier)
    =============================================
    STATS:
    FLIER_MAX_HP = 100;
    FLIER_MAX_MP = 0;
    FLIER_MOV_PTS = 7; (unaffected by terrain)
    FLIER_ATT_PTS = 1;
    FLIER_ACC = 1.00;
    FLIER_DEF = .10;
    FLIER_ATT = 1.00;
    FLIER_EVA = 25;
    FLIER_FOV = 10;
    FLIER_DAMAGE_DONE = 23;


    =============================================
    The Saint (Healer)
    =============================================
    Stats:
    HEALER_MAX_HP = 55;
    HEALER_MAX_MP = 100;
    HEALER_MOV_PTS = 7;
    HEALER_ATT_PTS = 2;
    HEALER_ACC = .95;
    HEALER_DEF = .30;
    HEALER_ATT = 1.00;
    HEALER_EVA = 20;
    HEALER_FOV = 9;
    HEALER_DAMAGE_DONE = 15;


    =============================================
    The Elementalist (Mage)
    =============================================
    STATS:
    MAGE_MAX_HP = 65;
    MAGE_MAX_MP = 50;
    MAGE_MOV_PTS = 6;
    MAGE_ATT_PTS = 3;
    MAGE_ACC = .95;
    MAGE_DEF = .27;
    MAGE_ATT = .85;
    MAGE_EVA = 18;
    UNIT_TYPE = 5;
    MAGE_FOV = 6;
    MAGE_DAMAGE_DONE = 20;


    NAVIGATING THROUGH APOTHEOSIS

    Keyboard Commands:

  • f : Toggles on/ff field of view spheres
  • s : Switch the texture on the skybox
  • t : **CHEAT** Look at other player's units
  • m : During Hero selection only, change your army color/material (16 choices)

    Moving the Camera:

  • 8 dolly forward
  • 2 dolly backward
  • 6 strafe right
  • 4 strafe left
  • + zoom in
  • - zoom out

    Interacting With the World:

  • Use arrow keys to move select cursor
  • INSERT to make a selection on a unit
  • HOME undo a selection


    THE BATTLE WHEEL

    Each unit type has a specific affinity for dealing more damage to another unit type. This is referred to as the 'Battle Wheel." The cycle is as follows:

    mages->fighters->archers->fliers->healers->mages

    *It is important to keep the wheel in mind when planning strategies, as traversing the wheel backwards results in less damage being done!


    CSC 476 STUFF

    Features that have been implemented to fulfill the given specs include (but are not limited to):

  • View Frustum Culling
  • Bounding Spheres
  • Collision Detection
  • Real-time Movement (camera)
  • Texture Mapping & Blending
  • Free camera control
  • Skybox Modeling
  • Animation (2 per unit, plus battle animations!)
  • Display lists
  • Particle systems
  • Fun!


    MISCELLANEOUS ODDS AND ENDS

    The following links were helpful in creating Apotheosis from scratch:

  • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc02_8sa0.asp
  • http://www.hypersolutions.org/pages/rgbdec.html
  • http://www.codeproject.com/opengl/
  • http://nehe.gamedev.net/default.asp
  • http://fly.cc.fer.hr/%7Eunreal/theredbook/
  • http://www.morrowland.com/apron/tut_gl.php
  • http://www.sulaco.co.za/tut.htm
    Email: Dustin Anderson @ dranders@calpoly.edu
    Email: Kris Yano @ kyano@calpoly.edu


    WORK BREAKDOWN

    Apotheosis was completely a collaborative effort!!!

    Dustin:

  • Models generated from scratch
  • Map generation (from reading in the text file to display)
  • The two selected & unselected animations for each unit
  • The sky box
  • View frustum culling
  • Bounding spheres
  • Collision detection
  • Real time camera movement
  • Splash screens

    Kris:

  • Selection Textures
  • Most gameplay elements (moving, selecting)
  • Battle animations for all units
  • Particle systems
  • Display lists
  • Camera control Both:
  • Cool game stuff :)
  • Texture mapping & blending


    DOWNLOAD APOTHEOSIS

    ==================
    DOWNLOAD
    ==================

    Thanks to Zoe Wood! Remember, "Less is More!"