CSE 389 Game Design and Implementation (3 credits)
Catalog description:
Study of architectures, algorithms, and software design patterns used in computer games. Students work with a game engine to design and implement several kinds of games. Topics include animation techniques, physics simulation, user controls, graphical methods, and intelligent behaviors.
Prerequisite:
Required topics (approximate weeks allocated):
- Introduction (0.5)
- Games and society
- Game genres
- Languages for Games
- Game Design and Development (1.0)
- Visual design
- Interface design
- Storyboarding
- Goals and objectives
- Choices and outcomes
- Debugging
- Game Architectures (2.0)
- Game Engines
- Transformation review
- Scene Graphs
- Spatial partitioning
- 3D Modeling (1.0)
- Terrain Models
- Character Models
- Procedural Modeling
- 3D Modeling applications
- 3D Model file formats
- Advanced Rendering (1.5)
- Local lighting model review
- Surface effects
- Texture Mapping
- Parametric Surfaces
- Particle Systems
- Animation (1.0)
- Keyframing and interpolation
- Forward and inverse kinematics
- Motion capture
- Character animation
- Artificial Intelligence in Games(2.0)
- Agents
- Finite state machines
- Pathfinding
- Collision Detection and Resolution (1.0)
- Overlap testing
- Intersection testing
- Bounding volumes
- Physics for Game Developers (2.0)
- Particle physics
- Translational and rotational motion
- Collision response
- Rigid-body simulation
- Sound (1.0)
- Digital representation of sound
- Audio hardware
- 3D audio
- Multi-User Games (1.0)
- Network programming
- Communication Architectures
- Management of Dynamic Shared State
- Exams/Reviews (1.0)
Learning Outcomes:
- Describe and use tools and programming techniques frequently used in game implementation
- Describe and apply the common programming structures, patterns, and algorithms used in game development
- Describe the purpose of, and be able to use, programming tools such as profilers and debuggers
- Use game engines, physics engines, tools, and related libraries designed for 2D and 3D games
- Develop interactive games in different genres that exhibit varying levels of complexity
- Insert 3D models into computer games and manipulate those models programmatically
- Apply advanced rendering and lighting techniques to improve the realism of the game
- Apply animation techniques to support real-time, interactive games
- Apply collision detection to a game
- Apply a physics engine to a game
- Apply different computer science disciplines to games
- Describe and apply the common artificial intelligence techniques into games
- Describe and apply common networking techniques for multi-player games
- Describe and implement algorithms used in game engines
- Describe the algorithms used for collision detection
- Describe the algorithms used for real-time physics simulation
- Describe and apply mathematical concepts commonly used in game development