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.