Computer Games
CSCI-GA.3033-010, Spring 2012

General Information

Lecture: Wednesday 7:10 pm - 9:00 pm, Room WWH/CIWW - 1302
Office Hours: Wednesday 6:15 pm - 7:00 pm Room (CIWW 328), > 9:00 pm (classroom if necessary)
Instructor: Hubertus Franke,
Prerequisites: G22.1170 (algorithms), proficiency in a high level programming language like C, C++, Java ( C++ preferred as labs are based on C++). Some basic understanding of physics and mathematics ( linear algebra, matrix computation, vectors ) is required.
Text book:

3D Game Engine Design, by David Eberly, Hardbound, 1040 Pages, Published: NOV-2006
ISBN 10: 0-12-229063-1 , ISBN 13: 978-0-12-229063-3
Make sure you get the 2nd edition as shown in the following links: link1 link2
The index of the book is here: Content: 3D Game Engine Design
Class Mailing List: or

Course Description

This course gives students an introductory understanding on how computer games are decomposed into various subsystems, and how these subsystems operate and interact. We will elaborate on the various subsystems, which data structures and algorithm they utilize and what other criteria and technology lead to the succesful implementation of a good game.
Games can be decomposed into various modules and topics:
  1. Geometry
  2. deals with the representation of objects in space: coordinate systems, transformations etc.
  3. Rendering
  4. deals with the visual presentation of the physical model. This includes reendering at various levels of details, representations of scenes and graphics effects.
  5. Physics Engine
  6. basic engine that simulates the behavior of the simulated system including responses to changes in the environment and their impact on other objects in the system. This domain will include topics related to physical simulation and collision detection.
  7. Artificial Intelligence
  8. is the module that drives the overall logic and progression of a game
  9. Sound/Networking
  10. gives a basic overview of the sound subsystem and the networking subsystem required to interact with other players.

Using various projects the student will explore the subsystems and at the end of this course a student should be capable of building a small game out of generally available tools.


3D Game Engine Design, by David Eberly, Hardbound, 1040 Pages, Published: NOV-2006
ISBN 10: 0-12-229063-1 , ISBN 13: 978-0-12-229063-3
Make sure you get the 2nd edition as shown in the following links: link1 link2

Computer Accounts and Mailing List

Several labs across the semester will provide practical experience on the concepts of computer games.

Homework and Lab Assignments

The TA for this class is:

Please contact your grader with specific questions regarding homework and lab or better interact on the mailing list.

I make a distinction between homeworks and labs. Both are required and form part of your grade.

Labs are

Homeworks are

If you have questions regarding these assignments, please ask ASAP.

Doing Labs on non-NYU Systems

You may solve lab assignments on any system you wish, but ...

Obtaining Help with the Labs

Good methods for obtaining help include

  1. Asking me during office hours (see web page for my hours).
  2. Asking the mailing list.
  3. Asking another student, but ...
    Your lab must be your own.
    That is, each student must submit a unique lab. Naturally, simply changing comments, variable names, etc. does not produce a unique lab.

Required Resources

Additional material will be made availabe here through out the class


Grades are based on the labs, the midterm nad final exam, and the class participation, each being important. The weighting will be approximately:
Homeworks and Lab Assignments 50%
MidTerm/Final 40%
Class Participation 10%
This is a graduate level class, so I am looking for lively interactions during the class and not just presence. The final will be given on 05/09/2012.

LecturesDateTopicHandouts ReadingsAssignments
101/25 Introduction; Fundamentals Transformations-1 (see HW1)
Due: 02/01
202/01 Transformation, Projections, OpenGL-Intro Projections
Intro-to-OpenGL (a)
Intro-to-OpenGL (a1)
Intro-to-OpenGL (b)
Sect 2.2-2.4
OpenGL presentations
Due: 02/08
302/08 Culling/Drawing
Culling, Projections, Line/Obj Drawings Rest of Chapter-2 Lab2
Due: 02/15
402/22 Lights
Lights/Textures See lab assignment Lab3
Due: 02/29
502/29 Textures
Textures See lab assignment Lab4
Due: 03/11
603/07 Animation
Curves See lab assignment Lab5
Due: 03/21
703/21 Midterm

See lab assignment Lab6
Due: 03/28
803/28 Physics Engine
PhysicsEngine See lab assignment Lab7
Due: 04/11
904/04 Artificial Intelligence for Games
Artificial Intelligece for Games See lab assignment
paper assignments
Due: 04/11
1004/11 Artificial Intelligence for Games / Path Planning
Paper Reviews

2nd paper assignments Paper Reviews and Presentations
Due: 04/18
Improve your lab7 game with some cool stuff (final review of project
Due 05/02/2009
1104/18 Networking for Games
Networking for Games See lab assignment
paper assignments

1204/25 2nd Paper Reviews

1405/02 Final Project Review and Game Demonstration

1305/09 FINAL EXAM

See also

Graduate courses:
Graduate schedule:
Academic integrity policy: