New Building Website

CSA 487 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: CSA 386 or permission of instructor.

Course Objectives:
At the end of the course, the student will:

  • Describe and compare computer game architectures.
  • Use a game engine to implement a computer game.
  • Apply fundamental techniques of 2D and 3D game design.
  • Apply techniques of rendering, animation, shading, and others.
  • Implement basic intelligent behaviors.
  • Implement games of varying levels of complexity.

Learning Outcomes:

CSA487.1: Be able to describe the major areas related to game design
CSA487.1.1  The student can describe, compare, and contrast the different game genres
CSA487.1.2  The student can describe why people play games
CSA487.1.3  The student can describe the basic elements of effective game design
CSA487.1.4  The student can describe the role games have in society
CSA487.1.5  The student can describe the assets produced by digital artists  

CSA487.2: Be able to describe and use tools and programming techniques frequently used in game implementation
CSA487.2.1  The student can describe and apply the common programming structures, patterns, and algorithms used in game development
CSA487.2.2  The student can describe the purpose, and be able to use, of programming tools such as profilers and debuggers  

CSA487.3: Be able to use game engines, physics engines, tools, and related libraries designed for 2D and 3D games
CSA487.3.1  The student can develop interactive games in different genres that exhibit varying levels of complexity
CSA487.3.2  The student can insert 3D models into computer games and manipulate those models programmatically
CSA487.3.3  The student can apply advanced rendering and lighting techniques to improve the realism of the game
CSA487.3.4  The student can describe and apply animation techniques to support real-time, interactive games
CSA487.3.5  The student can describe and apply collision detection to a game
CSA487.3.6  The student can describe and apply a physics engine to a game  

CSA487.4: Be able to apply different computer science disciplines to games
CSA487.4.1  The student can describe and apply the common artificial intelligence techniques into games
CSA487.4.2  The student can describe and apply common networking techniques for multi-player games

CSA487.5: Be able to describe and implement algorithms used in game engines
CSA487.5.1  The student can describe and implement the algorithms used for collision detection
CSA487.5.2  The student can describe and implement the algorithms used for real-time physics simulation
CSA487.5.3  The student can describe and apply mathematical concepts commonly used in game development

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)