CSCI 475
3D Game Programming
Coordinator: Chris cain
Credits: 4.0
Description
This course will provide students with the skills necessary to design, develop, and deploy: 3D games and related entertainment technology applications. The intent of the course is to provide the student with a solid technical foundation for developing, animating and controlling articulated systems used in interactive computer games, virtual reality simulations and high-end animation applications. Topics include: 3D game programming, 3D graphics, programming video game controllers, collision detection, force and motion calculations, networking multiplayer games, manipulating sound objects, physical modeling, projectiles, particle systems, physical constraints, deformation of virtual 3D objects, surface deformation, and computer animation.
Prerequisites
C- or higher in CSCI 362.
Sample Textbooks
Course Outcomes
Major Topics Covered
- Introduction
- course organization
- background
- motivation for course
- basic concepts
- terminology
- demos
- History of Computer Games
- successes
- failures
- game design principles
- Game Genre
- role-playing
- real-time strategy
- sports
- adventure
- action
- simulations
- real-time versus turn-based games
- Game Play Elements:
- what is game play
- storytelling
- challenge
- conflict
- interactivity
- relationships
- supporting learning with consistent challenges and appropriate feedback
- communicating with the player regarding challenges
- actions and abilities within the game world
- Review of 3D Graphics:
- Linear algebra review
- 3D coordinate systems
- Vector spaces
- coordinate transformations
- texture mapping
- 3D models
- Using a Game Engine:
- API programming
- OPENGL and XNA programming
- simulation techniques and modeling
- camera models
- mouse programming
- 3D objects in the scene
- 3D models geometry
- texture mapped objects
- movement
- human animation
- Collision Detection
- bounding boxes collision detection
- ray - plane collision,
- spherical collision detection
- visibility and occlusion
- quad trees
- BSP trees
- First Person Shooter Games
- camera manipulation
- explosions
- projectiles
- bullets
- Sounds:
- Loading sound files
- playing sound files
- manipulating sound objects
- 3D sound
- Basic Physics
- Newton's Laws of Motion
- angular velocity
- Inertia
- Computer Animation
- Keyframe animation
- Motion capture animation
- Procedural animation
- Forward Kinematics
- Inverse Kinematics
- Interpolation,
- Bezier curves,
- Catmull-Rom Splines
- Introduction to Behavioral Animation
- Boids
- Flocking,
- Fleeing,
- Avoid,
- Swarm,
- Wander
- Networking for multiplayer computer games massive multi-player online games
- client-server software
- UDP vs TCP/IP
- socket programming
- network packet or message sending
- Game Design Process
- player motivation
- teasing the user
- hidden secrets
- longevity
- perceptive boundaries
- reward structures
- reward growth, and stories
- creating the right balance of obstacles/aids/penalties/rewards
- User Interface Design:
- rules and boundaries,
- specific hardware constraints
- controllers (force feedback)
- keyboards,
- joysticks
- headsets
- Simple Artificial Intelligence (AI) techniques
- finite state machines in games
- min-max trees
- path finding
- Dynamic Effects
- surface deformation
- deformation of virtual objects
- physical modeling
- mass-springs-damper physics
- particle systems
- special effects: smoke, fog, fire