Spring 2003
Steve Rotenberg (srotenbe@cs.ucsd.edu)
Office: AP&M 3832, Fridays, 3:30-4:30
Friday, 5:00pm – 6:20pm
Peterson Hall, room 102
April 4 – June 6, 2003 (10 lectures)
“Real-Time Rendering”, Moller, Haines
Game
Programming:
“3D Game Engine Design”, Eberly
“Game Programming Gems”, DeLoura
Computer
Graphics:
“Computer Graphics: Principles and Practice”, Foley, Van Dam
“Fundamentals of Computer Graphics”, Shirley
Physics:
“Physics for Game Programmers”, Bourg
“Dynamic Simulations of Multibody Systems”, Coutinho (*Advanced*)
This seminar will provide a broad introduction to some of the major software components of cutting edge 3D video games, including graphics, collision detection, physics simulation, character animation, 3D sound, special effects, and artificial intelligence. Each lecture will cover one of these major subjects and discuss some of the main issues involved. Some algorithms will be presented in detail, but some will be left to the reading material.
The intention is to familiarize the students with the key elements of game programming and give them a foundation upon which to pursue further knowledge on the subject. This seminar should also provide useful supplemental material for students concurrently taking CSE190 with Geoff Voelker, but the two courses are independent of each other.
Students taking this class should already be familiar with the fundamentals of 3D graphics programming and ideally, should have completed CSE167 or Math155A.
This class is for 2 units and grading will be on a pass/no-pass basis only. Students are required to attend at least 9 of the 10 lectures to pass. There will also be reading assignments and students will have to choose a special topic and either write a small report or computer program about it. There are no tests.
Steve is a visiting lecturer to UCSD working with the graphics group within the computer science department. For the last 10 years, he has worked at Angel Studios, a 150 person video game development company located up in Carlsbad (25 minutes north of UCSD). Steve has served as Director of Software, Director of Research, Project Director, and has worked on several video game and computer animation projects, including Midtown Madness 1 & 2, Midnight Club 1 & 2, Smuggler’s Run 1 & 2, Transworld Surf, and others. He specializes in character animation, physics simulation, procedural modeling, and high quality rendering.
Here is a rough outline of the course. This will be updated throughout the quarter with any changes.
Lecture 1: Introduction (April 4, 2003)
- Hardware platforms
- Game development process
- Software overview
- (Slides)
Lecture 2: Scene Management (April 11, 2003)
- Culling: bounding volumes, portals, PVS
- Level of detail
- Draw order
- (Slides)
Lecture 3: Collision Detection (April 18, 2003)
- Basic primitives: segments, spheres, triangles
- Optimization structures: octrees, BSP
- Pair reduction
- (Slides)
Lecture 4: Physics Simulation (April 25, 2003)
- Particle systems
- Rigid body motion & collisions
- Overview of advanced dynamics
- (Slides)
Lecture 5: Character Animation (May 2, 2003)
- Skeletons & skin
- Animation
- Locomotion & procedural animation
- Character production
- (Slides)
Lecture 6: Gameplay (May 9, 2003)
- Input devices
- Play control
- Camera
- Game design & fun
- (Slides)
Lecture 7: Artificial Intelligence (AI) (May 16, 2003)
- General AI goals
- Navigation & path finding
- Behavior & subsumption
- Practical game AI
- (Slides)
Lecture 8: Visual Effects (May 23, 2003)
- Lighting
- Alpha blending
- Vertex & pixel shaders
- Particles and other effects
- (Slides)
Lecture 9: Networking (May 30, 2003)
- Guest speaker: Mark Rotenberg, Technical Director on Midnight Club 2
- (Slides)
Lecture 10: Audio, TBD (June 6, 2003)
- 3D audio
- Music