• Stacks Image 42
  • Stacks Image 45
  • Stacks Image 47
  • Stacks Image 51
  • Stacks Image 54
  • Stacks Image 57

CISC 877 is an advanced course in the technologies, algorithms and methods used to develop video games. The course focuses on the techniques required to develop modern digital games. The course draws from many areas of computer science, including software engineering, graphics, artificial intelligence, human-computer interaction and distributed systems.

Digital games (encompassing computer games, console games and mobile games) have become tremendously popular, with game sales now exceeding Hollywood's box office. The development of a video game is a significant engineering endeavour, involving collaboration between designers, artists, and computer scientists. After completing this course, students will understand the elements from which games are constructed, and how to bring them together into a working video game. To this end, students will work on a group project to extend an existing video game. The project will allow students to examine and evaluate game architectures, as well as working with algorithms for planning, pathing and distribution. Students will be exposed to professional-quality game development tools.


There are no formal prerequisites, but the following may prove helpful: undergraduate-level background in network/distributed systems programming, database programming and artificial intelligence; ability to program in an object-oriented language such as C# using an IDE such as Visual Studio. Experience with the Unity game engine is helpful but not required.

Where and When

  • Tuesdays 10:30-12:30, Goodwin 521
  • Fridays 1:00-2:00, Goodwin 521

Office Hours

Office hours are in Goodwin 629:

  • Mondays, 1:00-2:00
  • Fridays, 2:00-3:00


Please check OnQ regularly for course information.


  • Video game design
  • Gaming platforms and fundamental technologies
  • Game development processes and pipeline
  • Software architecture of video games
  • Video games as distributed systems
  • Game physics
  • Game AI
  • Scripting languages
  • Game development tools
  • Social and ethical aspects of video games
  • User interfaces of games
© 2017 Nicholas Graham