2D Game Programming:
undergrad Programming Project 4

Summary: Build a RTS technology demo

Due: Monday May 2nd at 11:59pm (we will have one more game design project overlappign this one.)


You will build a technology demo for a Real Time Strategy game. You may use any theme that you want but you need these features.

  1. You need a tiled background map with
    1. a size of at least 30x30
    2. a building near one edge of the map.
    3. make sure your map file is a text file so I can change it.
    4. at least one type of terrain should be non-traversable.
  2. You will need 8 animated enemies powered with simple game AI
    1. The enemies should start in the vacinity of the building
    2. You need to implement a simple FSA based AI with at least the following states
      1. Patrolling near the building
      2. chasing the player (when player is within 6 tiles.)
      3. returning to building (when player is more than 18 tiles from building
      4. caught the player (enemise should surround the player.
    3. the enemies cannot be caught by non-traversable terrain. (skirting it is fine - running against it is not.
    4. when more than one enemy is chasing the player they should arrainge their chase using the simple flocking algorithm that we used in class with one twist - a 4th vector should be added as an attractive vector toward the player.
  3. the player should have a player controlled (either via mouse or keyboard) animated sprite.
    1. the players sprite should be 10-20% faster than the max speed of the enemies.


As usual, you may reuse up to (But not more than) 20% of your code from other sources. Be sure to reference any such code.

Also make sure your game assets are in subdirectories of your actual project directory. Submit the entire directory tree compressed by email as usual.


The writeup will be extensive for this one. It needs to include
  1. Your name
  2. A Manual for the game
    1. how do I start it (which file do I run)
    2. how do I manipulate the player
    3. How is your map setup - how can I change it
    4. which is your non-traversable terrain type.
  3. how did you implement the game. especially including
    1. how did you implement your finite state machine (objects, arrays, if statements etc)
    2. how did you implement flocking and what turning did you use?
  4. References to any code or assets you used from elsewhere
  5. Anything left undone