CS191 - Assignment 5 - Final Project


For our final project, we had to create a game using (but not limited to, of course) techniques covered in the class. I started working on a DirectX 8.1 racing game (details below). This game runs in 1024x768 full-screen mode. The keys are:

Download now!

First-person view Top-down view
Chase-plane view Top-down view (larger area)

I had to leave out a lot of things from this implementation to try to get it done by the deadline. I really only had a chance to start coding this about 1.5-2 days before it was due (woops!). Here is what I have implemented thus far:

Since this is a block-based track system, collision detection with the track is very simple, as all of the geometry is well-defined and known. Collisions with the track walls are determined by essentially checking a ship's distance from the center of the track, based on the type of track block the ship is currently in. Ships are located relative to the track by using a quad tree implementation. Ship-ship collisions can be detected, but currently this is not being used because the computer ships do not react properly yet.

The computer ships use mainly one guiding principle to follow the track path: try to stay near the center of the track. This will be more complex and useful in the future, perhaps by implementing a form of boids/flocking behavior.

Note that this "race" does not ever end in its current state. Lap information is calculated, but it is not currently used. The original intent of this game was not to be just a racing game, but to allow weapons, ship damage, and several other features.

Things that I hope to implement eventually:

I rather enjoyed implementing this and I may try to make a more finished version of this if I can find the time to do so.

A few other notes: the ship model came with the DirectX 8.1 SDK, I made the track models in MilkShape 3D, and I downloaded the textures and sound from somewhere.