Mage Wars

Game description

Imagine a land of hills and valleys where wizards compete in a deadly spell tournament hurling fireballs and other spells at each other. Featuring turn-based gameplay, hot seat multi-player mode, dynamic terrain generation, custom designed characters and key frame animation. Mage War is a feature-reduced clone of the classic Tank Wars game.


The primary goal of this project was to pass my Computer Graphics class with it. Therefore, it meant trying out a bunch of graphic related feature. This meant not spending time on complex gameplay or non-graphical feature like sound or network play.

A sad consequence is that there is no option menu for the many commands. You need to use the console to do simple things like changing the number of players, or changing the map dimension.


Map Play Bomb
Mages Nostalgia Debug


Inspired from games such as Tank Wars, Scoch Earth, Worms, and even the QBasic demo Gorilla.

Tank Wars


Ming Tang's contribution

David Lareau's contribution


Mage Wars
Release Date: 2006-04-07

Keyboard / Mouse Commands

Mousemove the lookAt point of the camera.
Up ArrowIncrease the attack angle.
Down ArrowDecrease the attack angle.
Left ArrowRotate the avatar counter clockwise.
Right ArrowRotate the avatar clockwise.
Page UpIncrease attack power (longer distance).
Page DownDecrease attack power (shorter distance).
APan camera to the left.
DPan camera to the right.
WMove camera forward.
SMove camera backward.
VMove camera lookAt to origin.
1Activate weapon fireball.
2Activate weapon cyclone.
3Activate weapon Nova.
`Open console.
FShows frame rate and triangle count
RReset the game (generate a new map, restore all players)

Console commands

Misusing the console may cause unpredicatable results

Prints all the available console commands on standard output
set radius_bomb_size size
Changes the size of the bomb
enable/disable lighting
Toggles if we are considering lighting
enable/disable light1
Toggles if we are using GL_LIGHT1
enable/disable material
Toggles if we are using GL_MATERIAL
enable/disable debug
Toggles debug mode view
enable/disable normalize
Toggles if we are using GL_NORMALIZE
enable/disable displaylist
Toggles if we are using display list optimization or not
set light1 ambient/diffuse r g b a
Set a color of light1
set shading flat/smooth
Selects which type of shading to use
set material back/front/front_back emission/ambient/specular/diffuse/ambient_diffuse
Change the material properties
set speed speedValue
Change the speed of the game
animate player_number animation_name time
This will make the specified player execute the specified animation in the specified number of milisecond.
animation_name cast, hurt, death
set players numberOfPlayers width height cannon-dx cannon-dy cannon-dz cannon-length
Change players detailed properties
set players numberOfPlayers scale
Change the number of players, and their overal size
set player id name
Change the name of a player
set grid width depth height
Change the terrain grid dimension
set gravity x y z
Set gravity
set wind x y z
Set wind
enable/disable wind
Toggles if we consider wind or not