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:

CSE 386

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
    • 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
  2. 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
  3. 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
  4. 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