Queen's School of Computing

CISC 486/3.0 Game Engine Development

Original Author: Nicholas Graham
Last Revised: October 08, 2014

Calendar Description

An introduction to "engines" used in networked 3-dimensional games. Topics include game-engine architecture and components providing 3-dimensional rendering, physics simulation, sound, artificial intelligence and networking services.
Learning Hours: 120 (36L;48G;36P)

Prerequisites: CISC 226/3.0, CISC 326/3.0, CISC 324/3.0, (MATH-112/3.0 or MATH 111/6.0 or MATH-110/6.0)

Objectives

Complex 3-dimensional (3D) games are typically constructed using a game engine, a collection of components aiding the core elements of 3D games. These components typically include a graphics-rendering engine, a 3D sound engine, a physics engine, artificial-intelligence tools, a networking library, and possibly additional genre-specific components.

This course will teach students the fundamentals of game-engine design and development. The course will review the significant components of game engines, how they are implemented, and how they interact. Following the course, students will be capable of understanding the design of a game engine, and extending its functionality.

Using an existing game engine, students will learn the components typically making up a game engine, how they are implemented, and how the components interact. Student projects will involve extending the functionality of at least one engine component.

This will be the last content-based course in the Game-Development stream of the Software Design specialization. Students in other Computing programs/options may also want to take this course out of interest.

Topics

  • Engine architecture. Core components of game engines; interaction between these components.

  • Graphics Rendering. Scene graph architecture. Terrain managers. Cameras.

  • Artificial Intelligence (AI). AI algorithms for game engines- pathing, steering, planning. Script-based AI.

  • Physics. Algorithms underlying dynamics engines.

  • Networking. Networking abstractions for games. Client-server and peer-to-peer architectures. Security. Consistency maintenance. Game networking protocols and libraries.

  • Sound. Algorithms for simulating spatialized sound.

  • Input Processing. Asynchronous input handling. Device abstraction. Interpreting camera, accelerometer input.

  • Other Game Engines. Review of structure of popular gaming engines.

  • Student Project Presentations

Possible Texts

  • J. Gregory, J. Lander and M. Whiting, Game Engine Architecture, A.K. Peters, 2009.

  • D. Eberly, 3D Game Engine Design, Second Edition, Morgan Kaufmann, 2006.

  • A. Sherrod, Ultimate 3D Game Engine Design and Architecture, Charles River Media, 2006.