CS378 - Game Technology

Course: Game Technology
CS 378
Unique Numbers: 53570
Instructor: Don Fussell
ACES 2.120 (until Feb. 4), GDC 5.510
Phone: 471-9719
Office Hours: TTh 2:00-3:00
Teaching Assistant: Randy Smith
Office: TBD
Office Hours: TBD
Lectures: TTh 12:30-2:00pm, PAI 3.14
Class Webpage: www.cs.utexas.edu/users/fussell/courses/cs378
Recommended Textbook: TBD
Prerequisites: Computer Graphics, C++ Programming

Course Objectives

The course is designed to give students a experience working with the key technological components of a computer game. Students will build a simple 3-d game engine out of existing public domain libraries and will use this engine to create one or more games. The result will be a large software system that runs on multiple platforms, including Windows and Linux. Projects will be done in a team context in order to allow students to gain experience working together with other programmers on relatively large projects. We will also expect students to "fend for themselves" to an extent greater than that of most other courses in the department. This means we'll minimize the amount of starter code and help with build environments that we provide in order to encourage students to leverage online resources and the expertise of colleagues to solve practical problems in getting systems working from scratch.

Student Evaluation

Your performance in this class will be evaluated through a sequence of projects of every greater complexity. These will be done in 3 person teams in most cases, with weekly milestones to be turned in by the team for projects that take longer than a week. There will be no exams or non-programming homework. Project grades will be assigned to teams based on the quality and timeliness of the projects they deliver as well as the quality of intermediate milestones in the project. In order to give individual grades, all students will evaluate their own and their team members' performance on each project as part of turning it in. This feedback will be used to offset individual grades from the team grades as appropriate. Each project grade will be weighted in the final grade in proportion to the fraction of the time in the semester it took.

There will be no final in the course. Instead, we will use the 3 hour final exam period to have a game demo festival in the lab. We will invite members of the local game industry to come and join us in playing each of your games. Evaluations by the invitees will be used along with the professor and TAs evaluations as part of determining your team's grade on the final game project.

Each team has a "late account" of 3 days for the term which it can spend to mitigate late project deliveries. For example, you can turn in three projects one day late each, or one project 3 days late, without penalty. A project is late if it is not turned in by the specified due date and time, with any fraction of a late day counted as a full late day. Once you have exhausted your late account, your team will lose 33% of the maximum assignment grade for each additional late day. Thus, assignments will be worth 0 points after 3 additional late days. Since assignments build on each other, you'll still have do to the work, so you might as well do it on time and get credit for it.

Academic Misconduct Policy

You are free to discuss the course material, game designs and engine architectures with your classmates and particularly your teammates. Teams are expected to make clear their division of labor for each project, and students are expected to do their own work on their portion of the project. Because these are team projects, we expect you to solicit help from teammates when you're stuck or need help making design decisions. Indeed, design decisions that impact interfaces to other team members parts of the project should never be made without consulting the rest of the team.

Leverage of existing software to solve programming problems is explicitly a goal of this course, unlike other courses in the department. You are free to use external software in your project provided that

Generally we will encourage appropriate use of open source libraries and engines to solve your problems. We are likely to frown the use of on other kinds of external software, however. University policy (see Dean of Students' policies on academic integrity) will be followed strictly.

Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

Your Responsibilities in This Class:

Other General Information

The programming assignments will require use of the Department of Computer Sciences instructional computing resources. All CS students should already have accounts on these machines. If you do not already have such an account, you can obtain one for the class here. Other important information about facilities, including where the labs now are in the new building:

Please note that the machines that we are using for this course are the 64bit linux machines with high end graphics cards. These machines are in the namespaces kol64, nethack64, or candy64, you can find out the names of suitable machines to use by issuing the command cshosts kol64, cshosts nethack64, or cshosts candy64 at any public cs linux workstation.

Last modified: 02/04/13 by Don Fussell fussell@cs.utexas.edu