This course will explore the algorithms, data structures, and tricks used
to program computer video games. We will be programming in Java and
focussing on arcade-style video games (new and "classic") rather than
text-based adventures or strategy games such as chess.
FINALS WEEK
Here is a list of topics for
the final exam (which is on Friday, May 14, 3:30PM). I will be
available for office hours during finals week on Monday, May 10 from
2-4PM and on Wednesday, May 12 from Noon-2PM.
This is a link to a directory of class demos stored by date.
They are not intended to be self-explanatory (although they might
sometimes be), but rather are created as visual aids to the lectures.
I'm making them available here so you can play with them and study
the examples further after class. In other words, I can't imagine how
you would take intelligent notes on some of this stuff, so here are
my "animated notes".
This page contains links to various interesting web sites related
to Computer Game programming. In particular, there are some links
about Maze Generation.
Exams
The first exam was a traditional, question and answer, written
exam on the topics of the first few weeks of class (
study guide). This worked fine, but
as we approached the second exam, it was less clear how to write
a test covering the next bunch of topics.
I came up with the following
on-line exam. The answers were still
written on paper, but the on-line presentation allowed me to present
active questions and expect the students to read through source code
(which was one of the important skills of this section of the course).
Graphics options
You can create GIF images by using GIMP
or with Raytracing. An easier, but less powerful
tool is my
ImgEdit applet.
This page from the Library of Congress/U.S. Copyright Office gives an
overview of copyright law. It is not specifically tailored to video game
issues, but it might still be of interest.
Sun has an extensive on-line tutorial for Java. They address basic
programming issues
as well as more specialized features of Java 1.1 and 1.2.
You can also read more about
Event Handling using the 1.1 model.
Some students have been a bit confused about the keyboard focus
concept. This applet shows how you can get focus with a mouseclick
and show the user that you have it.
The Java API (Application Programmer Interface) specifies all of the
methods of all of the classes built-in to Java. The
API User's Guide
might be a good place to start if you find
this too confusing. You also have a piece of the Java 1.0 API available
in the back of your textbook (Appendix B).