CS398 - Design and Implementation of Computer Games
Time
2:30 PM - 3:45 PM, Monday and Wednesday
Location
Keyes 102
Textbook
- Fan, J., Ries, E., & Tenitchi, C. (1996). Black art of Java game
programming.
Corte Madera, CA: Waite Group.
Other readings
Supplementary texts
- Holder, W., & Bell, D. (1998). Java game programming for
dummies.
Foster City, CA: IDG Books Worldwide.
- Lamothe, A. (1998). Windows game programming for
dummies.
Foster City, CA: IDG Books Worldwide.
- Tieskoetter, K. (1996). Black art of Macintosh game programming.
Corte Madera, CA: Waite Group.
- Lamothe, A., Ratcliff, J., Seminatore, M., & Tyler, D. (1994).
Tricks of the game programming gurus.
Indianapolis: Sams Publishing.
Tools
We will explore most of the game implementation concepts using Java.
The textbook comes with a Java compiler from Sun, but it is somewhat
out of date and not very friendly to use. I recommend using one of the
following:
- Code Warrior, which is installed on the Macintosh and Windows NT
machine in the Mudd lab
- Visual Cafe, which we have a college-wide license for (I believe
for both Macintoshes and Windows machines)
- Microsoft Studio's Visual J++, which we have a college-wide license
for, and you can install from a CD-ROM at the library
For your final project you can use whatever language and hardware platform
you like. Many types of games will be fine using Java. However, if
you find Java doesn't give you the performance you need, I recommend
using C++ (or C if you have to) on either a Windows or Macintosh machine.
If you want very high performance, your best choice is probably to use
C++ on a windows machine. I have a copy of Microsoft's DirectX Software
Development Kit, which is currently the state-of-the-art toolkit for
developing high performance multimedia applications (like computer
games). DirectX will be installed on the Windows NT machines in the
Mudd lab, and we will try set you up with it if you want to work at
home.
Course content
This course emphasizes the hands-on development of computer games, as
well as the study of computer games from the perspectives of technology,
science, and art.
Designing good computer games requires knowledge of
- appropriate technologies
- programming languages
- operating systems
- networks
- simulation engines
- computer science
- simulation and modeling
- graphics and animation
- real-time processing
- networking
- game theory
- artificial intelligence
- art and design principles
- software engineering
- human computer interaction
- thematic structure
- gender and social issues
- graphic design
- choreography
- music and sound
- esthetics
I hope to cover (at least) the following general topics during the course
- History of computer/video games
- Computer game genres
- Critical review of computer games
- Design principles
- Event loops and execution threads
- Two-dimensional graphics and animation
- Terrain/background representation
- Modeling physics
- Storylines and integrated puzzles
- Three-dimensional graphics and animation
- Programming toolkits
- User interface design
- Working with input devices
- Sound and music
- Networking
- Agents in games
Evaluation
The course will include a variety of papers and projects, class presentations,
and a mid-term exam.
Projects will involve
the implementation of all or part of a computer program,
using principles
of design covered in class, and using modern tools for game development.
Students will complete final class projects in groups of up to three people.
Each student group will create a complete computer game, generating
a concept, design, storyboard,
software specification, implementation, documentation, and system evaluation.
Final projects will be presented to the Colby Community at a Computer
Science Festival, tentatively scheduled for Wednesday, May 5.
The mid-term exam will take place approximately two-thirds of the way
through the semester. There will be no final exam.
Grading
I will compute final grades for the course using the following proportions:
- 15%: Class participation, including attendance at lectures,
participation in discussion, keeping up with reading, and short response
papers
- 40%: Class projects
- 20%: Mid-semester exam
- 25%: Final project
Assignments will generally receive a score on a 100 point scale. These
will not map directly to letter grades until everything is tallied at
the end of the semester. However, as a rough guide, I try to give
90 points or more to what I consider ``A'' work, 80 points or more to
``B'' work, 70 points or more to ``C'' work, and 60 points or more to
``D'' work.
Randolph M. Jones
(rjones@colby.edu)