Currently teaching CW208

Games Engineering II

A final-year module on engineering robust, high-performance games — software testing strategies (coverage, FSMs, logic and input-space criteria), concurrent and multicore programming, functional programming, and design patterns for games. Languages used include C++11/14, Erlang and Haskell.

Module information

  • Module title: Games Engineering II (CW208)
  • Credits: 10
  • Level: 8 (Final-year undergraduate)
  • Languages used: C++11/14, Erlang, Haskell

Learning outcomes

By completing this module, students will be able to:

  1. Select, design, and implement testing strategies appropriate to games development.
  2. Evaluate methods for synchronising concurrent processes and their effects in game execution environments.
  3. Design algorithms that execute on multiple cores or processors.
  4. Develop functional programs and integrate them into digital games.
  5. Apply suitable design patterns in games.

Indicative content

  • Testing: unit, automated, coverage techniques, and test management.
  • Concurrent programming: threads, multicore, GPU programming, and APIs (OpenMP, MPI, CUDA).
  • Game programming patterns: case studies and design patterns.
  • Game engine architecture: implementation techniques.
  • Functional programming: process creation, message passing, and distributed logic.

Assessment

  • Continuous assessment — 20%
  • Project — 20%
  • Practical labs — 20%
  • Final examination — 40%
  1. Modern C++ Programming with Test-Driven Development — Jeff Langr
  2. Game Programming Patterns — Robert Nystrom
  3. Game Engine Architecture — Jason Gregory
  4. C++ Concurrency in Action — Anthony Williams
  5. Parallel and Concurrent Programming in Haskell — Simon Marlow
  6. Programming Erlang — Joe Armstrong
  1. 00 Course Introduction Download PDF ↓
  2. 01 Why Test? Download PDF ↓
  3. 02 Test Coverage Download PDF ↓
  4. 03 Test Coverage — Prime Path Coverage (PPC) Download PDF ↓
  5. 04 Finite State Machines (FSM) Download PDF ↓
  6. 04 Finite State Machines — Lecture Notes Download PDF ↓
  7. 05 Logic Coverage Download PDF ↓
  8. 06 Logic Coverage — Examples Download PDF ↓
  9. 07 Logic Coverage — Determination Download PDF ↓
  10. 08 Input Space Partitioning (ISP) Download PDF ↓
  11. 09 Design Patterns Download PDF ↓