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.
Curriculum
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:
- Select, design, and implement testing strategies appropriate to games development.
- Evaluate methods for synchronising concurrent processes and their effects in game execution environments.
- Design algorithms that execute on multiple cores or processors.
- Develop functional programs and integrate them into digital games.
- 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%
Recommended reading
- Modern C++ Programming with Test-Driven Development — Jeff Langr
- Game Programming Patterns — Robert Nystrom
- Game Engine Architecture — Jason Gregory
- C++ Concurrency in Action — Anthony Williams
- Parallel and Concurrent Programming in Haskell — Simon Marlow
- Programming Erlang — Joe Armstrong
Lecture slides
- 00 Course Introduction Download PDF ↓
- 01 Why Test? Download PDF ↓
- 02 Test Coverage Download PDF ↓
- 03 Test Coverage — Prime Path Coverage (PPC) Download PDF ↓
- 04 Finite State Machines (FSM) Download PDF ↓
- 04 Finite State Machines — Lecture Notes Download PDF ↓
- 05 Logic Coverage Download PDF ↓
- 06 Logic Coverage — Examples Download PDF ↓
- 07 Logic Coverage — Determination Download PDF ↓
- 08 Input Space Partitioning (ISP) Download PDF ↓
- 09 Design Patterns Download PDF ↓