Principles of Computer Games Design and Implementation


  1. To introduce the main issues surrounding the computer games architecture.
  2. To introduce the fundamental concepts underpinning computer games development (game physics, game artificial intelligence, content generation).
  3. To provide practical experience of software engineering associated with computer games.


Computer Game Architecture

Introduction (2 lectures)

  • History of computer and video games
  • Game genres

Game Structure basics (1 lecture)

Game engines (4 lectures)

  • Introduction
  • Programming video
  • Programming audio
  • Programming user controls

Game Physics

3D Maths (2 lectures)

Collision detection and collision response (3 lectures)

Tracking and shooting (1 lecture)

Spatial data structures (2 lectures)

  • Octrees, KD-Trees, BSP Trees, Spacial hashing

Physics engines (1 lecture)

Game Artificial Intelligence

Decision making (3 lectures)

  • Playing board games: turn-based games; chance games
  • Event driven AI

Game agents (6 lectures)

  • FSM and reactive architectures
  • Sensing
  • Reactive planning and rule systems
  • Machine learning
  • Group behaviour.  Agent coalition. Flocking

Navigation and pathfinding (2 lectures)

Artificial stupidity

Content generation

Levels, Mazes, Quests (2 lectures)

Recommended Texts

  • Rabin, S. Introduction to Game Development. Charles River Media, 2005.
  • Ahlquist, J.B. and Novak, J. Game Development Essentials: Game Artificial Intelligence. Thomson learning, 2008.
  • Rabin, S. AI game programming wisdom series. Charles River Media, 2002-2008.

Learning Outcomes

At the end of the module, the student will have:

  1. An understanding of different design issues related to computer games development: game structure, game engine, physics engine;
  2. An appreciation of the fundamental concepts associated with game development: game physics, game artificial intelligence, content generation;
  3. The ability to implement a simple game using an existing game engine;

Learning Strategy

In a typical week, students will be expected to attend three hours of formal lectures and will have the opportunity of one hour of supervised computer lab time in which they can receive guidance regarding the continuous assessment tasks of the module.  Lectures will introduce students to the academic content and practical skills which are the subject of the module, while computer practicals will allow students to practise those skills.  In addition, students will be expected to devote 7 hours of unsupervised time to solving continuous assessment tasks and private study. Private study will provide time for reflection and consideration of lecture material and background reading.  Continuous assessment will be used to test to what extent practical skills have been learnt, in particular, assessment tasks will be solved individually and each solution comprises the resolution, using sound software engineering techniques, of the given problems expressed in terms of a requirements statement. A written examination at the end of the module will assess the academic achievement of students.