CS 428/528: Games and Virtual Environments

Professor: Clinton Jeffery Class Meets: TTh 2:00-3:15 in EP 203
Office: JEB 230 Office Hours: MW 2:30-3:30 and by appointment
Phone: 208-885-4789 Web: http://www2.cs.uidaho.edu/~cs428/
E-mail: jeffery@uidaho.edu        Forum: https://forums.cs.uidaho.edu/viewforum.php?f=31
Prerequisites: programming languages (CS 210) and graphics (CS 324); recommend networks (CS 240/420), or related programming experience

Texts:

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.