Overview

The course project is to design an implement a racing game. You will work in groups of four to five students and will be expected to make frequent, but informal, presentations about your project in class. This page will include links to various documentation, code, and game assets that you may find helpful for your projects.

We will provide some basic infrastructure to get you started (although you are not required to use it). At minimum, your game should have the following features:

  1. it should be playable both by a single player or multiplayer (i.e., at least two players)
  2. to should have AI drivers in addition to human players (it might have other AI agents too)
  3. it should have a graphical interface with keyboard and/or mouse controls

Milestones

It is important that you work steadily on your project throughout the term. The help you gage your progress, here is a list of initial project milestones with target dates. There will also be regular group presentations, which are listed below.

Milestone 0: group formation (Tuesday; April 4)

By Tuesday of the second week, you should have formed your groups. You should also start thinking about breaking up the project into parts and assigning responsibilities.

Milestone 1: design document (Tuesday; April 11)

An important part of any large software project is a document that lays out the architecture of the application. For the first project milestone, each group should produce a design document that covers (at least) the following issues:

You should view this document as a living document that will be refined as the term progresses.

Milestone 2: basic physics engine (Thursday; April 20)

By Thursday of 4th week, you should have a basic engine up and running that allows a player to drive a vehicle around a track. For this milestone, you do not need fancy graphics (a 2D view would work). The physics engine is the heart of game, since it manages the state of the player and AI vehicles.

Milestone 3: basic AI (Tuesday; May 2)

At this point, you should have enough physics and AI infrastructure implemented that your AI agents can navigate around the track without crashing into the walls, or each other.

Presentations

Over the course of the term, there will be four to five group presentations (including final demos).

Presentation 1: Game design (Thursday; April 13)

Groups will describe their game and their architecture.

Presentation 2: Status report (Tuesday; April 25)

Groups will describe the current status of their project; any issues that they have encountered; and give preliminary gameplay demos.

Presentation 3: Status report (Thursday; May 4)

Groups will describe the current status of their project; any issues that they have encountered; and give preliminary gameplay demos.

Presentation 4: Status report (Thursday; May 18)

Groups will describe the current status of their project; any issues that they have encountered; and give preliminary gameplay demos.

Final Presentation (Thursday; June 1)

Groups will give final demos of their games.

Specifications

Assets

Here are some assets that you can use in your game.
oval.trk
A simple, hand-generated, oval track.
barbell.trk
A medium sized track with a barbell shape
wide-barbell.trk
A wider version of barbell.trk (20 units wide vs. 12) with four lanes (instead of 3).

Last revised: April 12, 2017.