
Contents:
1. Introduction
2. How to Play
3. Camera Control
4. Genetic Algorithms Mode
5. Level Editor
6. Directories
7. Downloads
8. Credits
9. Contact
1. INTRODUCTION
Towers of Reus is an interactive tower defense game that also contains a Genetic Algorithm component. A player can face off against preset levels or task the computer to beat the game, which it will do using Genetic Algorithms. The game also comes with a level editor, which the player may use to create their own levels and further try their skill!
2. HOW TO PLAY
To begin a game, the player must first select which level they want to play. The main menu contains a "Select Level" button which navigates to the folder where all level files (.tor) are stored. Once a level is chosen, select "Start" and let the fun begin!
The object of the game is to place towers strategically and destroy all of the enemy mobs before they reach your base and destroy it. Your base's health, the amount of money you currently have to spend on towers, and the current enemy wave you are on are displayed in the top right corner of the screen.
To build your first tower, use IJKL to move the red selector icon around the screen and then press the "Build" button (also accessible through the 'T' key). This pauses the game and brings up a menu of the six types of towers in the game. The towers (followed by prices and descriptions) are as follows:
Gun Tower ($100 Fast rate of fire, low damage, medium range)
Laser Tower ($200 Fast rate of fire, medium damage, medium range)
Artillery Tower ($300 Medium rate of fire, medium damage, very long range)
Lightning Tower ($400 Slow rate of fire, high damage, very short range)
Chrono Tower ($700 This is a special tower--all mobs within range of the tower's bubble have their speeds slowed by 50%)
Nuke Tower ($700 This is a special tower--every 60 seconds it unleashes a nuclear missile which does large amounts of damage to all mobs on the screen. Due to its special nature, you may only have one Nuke Tower on the screen at any given time.)
Simply click the name of the tower you wish to build, and if you have enough money the tower will be built in the location you selected. If you change your mind and do not wish to build a tower at any given time, simply escape the menu by pressing the 'T' key.
At the bottom of your screen is a hotkey menu. The images turn gray when you don't have enough money to purchase that kind of tower. They are also a reminder that towers can also be build simply by pressing the number keys--keys 1-6 build towers in the order displayed through these hotkeys (also the same order described above).
When you are done placing your first towers, press the "Begin" button to begin the game. Enemy mobs will teleport in and begin heading down the path toward your base. Each mob you successfully kill will add to your money count, and each mob that makes it to your base alive will do damage to your base's health. Try and beat each level with the most money and the most health!
3. CAMERA CONTROL
The in-game camera is controlled with the WASD keys. The spacebar moves the camera directly up, and the O key moved the camera directly down. Holding down Shift increases the speed of the camera movement. Hold down the right mouse button to change your view direction.
4. GENETIC ALGORITHMS MODE
The Genetic Algorithms mode can be accessed by navigating to the Dev Tools menu. The purpose of the Genetic Algorithms mode is for use by level designers to see if their level is balanced. The computer with use the Genetic Algorithms learning technique to try and beat whatever level you give it under the conditions you place upon it. This is a valuable tool for level designers, and it will help you in testing the balance of your own levels. It can take several hours for the GA to successfully reach a solution, so remember this when using it for testing.
5. LEVEL EDITOR
-------
Layout
-------
-Down the right side of the screen-
Tooltips: This button lets you toggle the displaying of the tooltips which appear when you mouse over certain buttons.
Grass: This selects the grass tile type. Towers can only be built on grass tiles.
Straight: This selects the straight path tile type. This is a tile that enemies walk on.
Corner: This selects the corner path tile type. This is a tile that enemies walk on.
Rock: This selects the rock tile type. Towers cannot be placed on rocks.
Tree: This selects the tree tile type. Towers cannot be placed on trees.
"R" (Rotate) button: rotates the Preview Window counter-clockwise by 90 degrees. You can also right-click to rotate the Preview Window.
Preview Window: This picture shows the currently selected tile and its rotation. You can either click and drag it onto the map to assign its value to the square of the grid where you drop it, or you can simply left click onto the grid to assign its value on the clicked square.
Start Flag: Drag and drop this onto the first square of the path that the enemies will have to travel to reach the base. The start must be at the edge of the screen.
End Flag: Drag and drop this onto the last square of the path. When enemies reach here, they have made it to the base. The end must be at the edge of the screen.
Clear: Erases the current map
Save: Saves the current map as a .tor file which can be loaded in the editor or played in the game
Load: Loads a previously saved map
--Tabs--
There are three tabs on the bottom of the screen which you select between by using the W, M, and T buttons. These stand for Waves, Mobs, and Towers
-Waves Tab-
On the left of the screen are 6 input boxes arranged as such:
Input Hovercraft Input Helicopters
Input Hummers Input Tanks
Input Mob Delay Input Wave Delay
The four enemy inputs are for how many of each type of enemy you want to be in the wave
Mob Delay is the time between each individual enemy entering the map. The delay is measured in milliseconds
Wave Delay is the time the game will wait before starting the next wave. This timer begins when this wave starts. The delay is measured in milliseconds
The input boxes recognize numbers and backspace
Add: Adds a wave to the list using the numbers in the 6 input boxes to the left of the Add button
Remove: Click an ID in the list to the right and then click this button to remove that wave from the list
The Wave List
ID: the number of the wave. 0 is the first wave, 1 is the second, 2 is the third, and so forth. This value cannot be edited
Hover: the number of hovercraft in the wave. This number can be edited here by clicking the one you want to change and backspacing/typing a new value
Hummer: the number of hummers in the wave. This number can be edited too.
Heli: the number of helicopters in this wave. Also editable
MDelay: the Mob Delay for this wave. Again this is the time between each mob entering the map
WDelay: the wave delay for this wave; the time after the start of this wave before the start of the next wave
up arrow: click to scroll up through the wave list should you have more waves than can be displayed on screen
down arrow: click to scroll down through the wave list should you have more waves than can be displayed on screen
-Mobs Tab-
This tab lets you edit the stats for each type of enemy. From left to right, the enemies are Hovercraft, Hummers, Helicopters, and Tanks. They all have three stats you can change:
Health: This is how much damage the enemy can take before being destroyed
Speed: How quickly the enemy can move down the path
Value: How much money the player is awarded for destroying this enemy type
-Towers Tab-
This tab lets you edit the stats for each type of tower. From left to right, the towers are: Gun, Laser, Lightning, Artillery, Nuke, Chrono. You can edit the damage of each tower that actually does damage, and how much each tower costs.
Damage: how much damage the tower inflicts per shot. Chrono tower does not do damage directly
Cost: how much money the tower costs to build.
The last two buttons to the right of the tower inputs are:
Starting Health: How much health the base has. Each enemy that reaches the end of the path takes one health point away
Starting Money: How much money the player will start the game with.
-----------
Creating an example map
-----------
Load up the editor application.
Select the Straight or Corner tile type. The Preview Window will change to the selected tile type. You can either drag the preview window onto the map grid to place the tile or you can left-click the square you want to assign that tile to.
As an example: click "Straight" and then drag the tile to the bottom left square of the map.
Now left-click and hold on the start flag from the right side of the screen and drop it onto the shiny new straight path tile that you placed onto the grid.
Next click "Corner". The Preview Window will change to a road with a 90 degree turn.
Click the R button one time to rotate it. It should now have an exit down and an exit to the right
Left click on the map square directly above the straight path/start flag to place the corner path there.
Click on Straight again
Right-click one time to turn the tile horizontally
Left-click on the square to the right of the corner you just placed
Click on Corner again
Right-click three times to rotate it so that it now exits left and up
Left click on the square to the right of the last straight path you placed
Click on straight
Left-click on the square above the last corner you placed, and then on the square above that one.
Click on Corner
right-click twice so that the corner exits down and left
Click on straight
Left-click on the square to the left of the last corner you placed
Left-click on the square to the left of the last straight path you placed
Left-click and hold on the end flag and drop it onto the last straight path square you placed.
Congratulations you have just set a very simple and short map!
But it needs enemies!
Go onto the "Waves" tab which is the active tab when the program starts. At the very bottom left of the screen are the six inputs.
Click the input box for hovercraft and type in "10"
Now do 7 hummers (the box directly below hovercraft)
Set the mob delay to 2
Now on the next column type 5 for helicopters and 2 for tanks
End it all with a wave delay of 500
Click the Add button
The data you entered into the input boxes has now been copied over to the wave list to the right!
Click the "M" button to change to the mobs tab
You will see the default values for each type of mob. You can click any of the fields and edit them if you want.
Click the "T" button to change to the towers tab
You will see the default values for each type of tower. Let's make the nuke free! Set its cost (next to the $) to 0.
Alrighty we're all set! Click the "save" button (blue folder with a green down arrow at the bottom right of the screen) and save the map!
6. DIRECTORIES
Levels folder: My Documents/Towers of Reus/Levels/
Analysis folder: My Documents/Towers of Reus/SaveAnalysis/
Install (default): Program Files/Towers of Reus/
7. DOWNLOADS
VERSION 1.1.0 - Release Notes - September 2, 2010
Towers of Reus v1.1.0 - Windows Installer (XP/Vista/Win7 32 & 64bit)
Towers of Reus v1.1.0 Source - Visual Studio 2005 files and INNO setup
VERSION 1.0.0 - Initial Release - August 26, 2010
Towers of Reus v1.0.0 - Windows Installer (XP/Vista/Win7 32 & 64bit)
Towers of Reus v1.0.0 Source - Visual Studio 2005 files and INNO setup
8. CREDITS
Graphics Programming
Cameron Ferguson
James Jenkins
Artificial Intelligence
Wendi Kidd
Heath Wickman
Map Editor
Vincent Espinoza
James Jenkins
GUI Interface Programming
Cameron Ferguson
James Jenkins
GUI Design and Functionality
Wendi Kidd
Heath Wickman
3D Modeling
Dan Glosier
Sound Programming
Wendi Kidd
Music
Adrian Stiegler
Michael MacArthur
Team Leads
Project and Graphics Lead: Cameron Ferguson
Program Infrastructure Lead: Heath Wickman
Artificial Intelligence Lead: Wendi Kidd
Map Editor Lead: Vincent Espinoza
Libraries
FMOD
TinyXML
Inno Setup
Sound Effects
Wyoming Web Design
Partners In Rhyme SFX
Sound Bible
Special Thanks
Dr. Corey Clark
Ghaleon and Zire at #gamdev on irc.eftnet.org
9. CONTACT
If you have questions or comments about our project, it's source, or comments, you can contact individual group members here.
Project Lead and Graphics Programming
Cameron Ferguson - camferg22@hotmail.com
Artificial Intelligence, Sound Programming, and Menu Systems
Wendi Kidd - kidd.wendi@gmail.com
Genetic Algorithms and Infrastructure
Heath Wickman - wickmanh@ascendancyretail.com