CS 371 Spring 2006 Project Overview

On 1/20/06 the instructor informed the students that the 371 project would consist of the entire class working together on a group project. The students voted amongst several possible project topics and selected a first-person-shooter game. The students voted amongst possible development languages and selected C++. The instructor provided the constraint that the game must run on CS department machines (i.e. Linux). Windows would be optional. Students asked about various features such as audio; it will be up to them to decide the feature set within some broad constraints.

Requirements

Here are some constraints on the project.

The game must be animated, 3D and internet-multiplayer

Animated 3D graphics is a non-trivial requirement for a course such as this. Internet communications are also non-trivial.

The game implementation must be OO

We will do UML in this class.

The game must be non-proprietary

No commercial development packages with tricky licensing issues.

The students must develop the game

While you are free to use class libraries for 3d graphics and network communications, you are not free to download and turnin the C++ source code for an existing game. In particular, you must design the game and implement what you design.

The line between "graphics library we are using" and "graphics engine we are modding" is a gray area, so let me give an example or two. You can use any class library that does not limit your design, or do large portions of your design for you. A very high level class library that takes care of the rendering details for you is fine. The graphical entities and their behavior in the system should be up to you. Any class library or engine where this is not true, would not allow the learning we do in this course. You must get instructor approval for any library you intend to use. Best to do this early in the semester.

Frame of Reference

The page http://www.cs.unm.edu/~dlchao/flake/doom/ has a few screen shots of Doom, has hacked by folks who claim to have used it for system administration. There are links there to the Doom source code. While I can refuse to let you just turn in Doom and ask for college credit, it provides a useful frame of reference and basis for comparison.

In the full-disclosure department: some students working with Hue McCoy did a NMSU science hall level for "Half Life: Counterstrike" awhile back. The purpose of this class is not to learn how to edit levels using a level editor, it is to learn about software engineering.

3D Model

You will use the same human-readable 3D model file format I am using for NMSU's collaborative virtual environment. Among other things, this will give you a model of Science Hall 1st floor for free. Here it is: sciencehall.dat If you do other "levels" I potentially can browse them in our virtual environment; if you improve the model data the virtual environment stands to benefit from it. Note that I have some pending decorations and virtual objects added last semester; sciencehall.dat will get updated once or twice in the next few weeks. From your point of view: you are welcome to propose changes (improvements) to the format, but they must be ratified by me. Improvements to the actual data are welcome and do not typically require ratification, but I would like to know about them in detail.