CSE 389/587 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.


CSE 287 or CSE 386, for 587: graduate standing or permission of instructor.

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:

1: Describe and use tools and programming techniques frequently used in game implementation

1.1: Describe and apply the common programming structures, patterns, and algorithms used in game development

1.2: Describe the purpose of, and be able to use, programming tools such as profilers and debuggers

2: Use game engines, physics engines, tools, and related libraries designed for 2D and 3D games

2.1: Develop interactive games in different genres that exhibit varying levels of complexity

2.2: Insert 3D models into computer games and manipulate those models programmatically

2.3: Apply advanced rendering and lighting techniques to improve the realism of the game

2.4: Apply animation techniques to support real-time, interactive games

2.5: Apply collision detection to a game

2.6: Apply a physics engine to a game

3: Apply different computer science disciplines to games

3.1: Describe and apply the common artificial intelligence techniques into games

3.2: Describe and apply common networking techniques for multi-player games

4: Describe and implement algorithms used in game engines

4.1: Describe the algorithms used for collision detection

4.2: Describe the algorithms used for real-time physics simulation

4.3: Describe and apply mathematical concepts commonly used in game development

Graduate Students: 

Students taking the course for graduate credit​ ​​will be required to independently study a game engine related topic and create learning materials related to that topic or present the topic to the class. Study topics are chosen in consultation with the instructor.​