CS 428/528: Games and Virtual Environments
Prerequisites: programming languages (CS 210) and graphics (CS 324);
recommend networks (CS 240/420), or related programming experience
Texts:
-
Introduction to Game Development 2nd ed, Charles River Media 2010.
(bookstore; required)
-
draft manuscript of the Unicon Games book (class webpage)
-
Programming with Unicon (from unicon.org)
-
Graphics Programming in Icon, (from www.cs.arizona.edu/icon;
instructor will provide free hard copy)
Course Description and Goals
This course is about software design and programming issues involved in
constructing computer games and multi-user virtual environments. Students
will be introduced to game design, game genres, and algorithms and data
structures to support graphically rich multiuser games.
Students will also study and modify the architecture and source code of a
collaborative virtual environment, and write semester projects
consisting of games that run within the context of this environment.
The goals for this course include: insight into the technical issues
involved in constructing games and virtual environments, an understanding of
the existing state of the art, and an idea of the future potential for this
field.
Hardware Platforms
For Game assignments, you may use any language and operating system
platform on which I can compile and run your code. Generally this
constrains you a little based on what compilers and platforms I have.
Generally, assignments should be done and graded on Windows
or Linux; advance arrangements (and instructor permission) will be
needed for other platforms (say, cellphones or consoles) or non-standard
languages. If in doubt, ask.
The Virtual Environments portion of this class requires students to have
"developer-level" access to a computer with at least mid-range 3D graphics
acceleration for OpenGL applications. You will need to be able to install
applications (SecondLife, Lord of the Rings Online and/or World of Warcraft,
and CVE) and a compiler (Unicon). A 128MB dedicated card with proper
drivers probably constitutes an effective minimum; such cards can cost less
than $30. Laptops and integrated graphics machines might or might not be
sufficient for this segment of the course, but you should assume they will
not do the job. See the instructor for assistance
if you don't have and cannot readily obtain developer access on a GPU-equipped
machine for the large amounts of time typically required for CS homework
assignments. The CS lab machines in JEB 211 may be sufficient for our
purposes if you do not own your own 3D-capable machine.
If you own a Mac, go
get its X Windows server software (comes standard on newer Macs),
Xcode compiler, and X11/Xlib and jpeg development libraries
and headers, if you do not have them yet.
Schedule and Assignments
Each week the course will cover one or more topics
from each of: game design, game programming, and virtual
environments. The schedule is at
http://www2.cs.uidaho.edu/~jeffery/courses/game/schedule.html and
is subject to adjustments as needed.
Attendance and Grading
Attendance is required, as this course emphasizes collaboration.
The grading will be proportioned as follows:
40% for homeworks, 15% for the midterm exam, 15% for the final exam,
and 30% for a term project
The exams in this course will be take home exams.
The required meeting during the Final Exam period will be used
for demonstrations of students' semester projects.
CS 528 Students
This class is more than half graduate students. The significant graduate
student presence will mean that we will explore research topics in class
when appropriate. Feel free to make requests and suggestions. Also, for
graduate credit,
you will be expected to do more or better than undergraduate students.
Most assignments will have an extra "528" component that is required.
EO Students
We are excited to welcome several students who will be participating at a
distance this semester. This will affect how the class is delivered to
some extent.
Policy Statements
Cheating is strictly forbidden on exams, with severe penalties. For
most assignments you will be allowed to work alone, or complete a
larger assignment working in a team.