WM9M4-15 Games Engineering
Introductory description
Video game development is one of the most complex software engineering processes, requiring development in a number of wide ranging areas, including but not limited to computer graphics, physics, acoustics, AI, and networking. These typically take the form of sub-systems which can be programmed independently but with a firm understanding of the required specifications and always with sound engineering principles and high performance in mind. This module will provide students with the required set of tools to be able to develop all such subsystems and the right set of engineering practices to be able to integrate them into a coherent whole.
Module aims
This module aims to provide students with the fundamental algorithmic, mathematical and programming skills not related to computer graphics that are required to develop high-end video games. In particular it will focus on the software skills required to integrate many gaming sub systems.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
Games loop
Games software development - patterns etc.
AI for games - Pathfinding, Behaviour trees, Directors
Acoustics
UI
Multithreading
Events/messaging
Game Databases
Game networking
Current C++ standards as required in industry
Learning outcomes
By the end of the module, students should be able to:
- Have a comprehensive understanding of the critical components that make up modern video games
- Have the specialist knowledge required to design and develop multiple sub systems used in games
- Efficiently integrate multiple sub systems into a games engine
Indicative reading list
Nystrom, R. (2014). Game programming patterns. Genever Benning.
Gamma, E., Helm, R., Johnson, R., Johnson, R. E., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH.
Herlihy, M., Shavit, N., Luchangco, V., & Spear, M. (2020). The art of multiprocessor programming. Newnes.
View reading list on Talis Aspire
Interdisciplinary
The skills developed here can find application in a number of different fields in computing such as AI, networking, data bases, programming embedded systems etc.
Subject specific skills
Mathematical skills and programming skills.
Transferable skills
Technology literacy, adaptability.
Study time
Type | Required |
---|---|
Lectures | 10 sessions of 1 hour 30 minutes (10%) |
Seminars | 1 session of 1 hour 30 minutes (1%) |
Tutorials | 9 sessions of 1 hour 30 minutes (9%) |
Online learning (scheduled sessions) | 7 sessions of 1 hour 30 minutes (7%) |
Other activity | 29 hours 30 minutes (19%) |
Assessment | 80 hours (53%) |
Total | 150 hours |
Private study description
No private study requirements defined for this module.
Other activity description
29.5 hours of student self directed study in preperation for in class work. Guidance on self directed study will be provided in class.
Costs
No further costs have been identified for this module.
You must pass all assessment components to pass the module.
Assessment group A
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
PMA Project | 100% | 80 hours | Yes (extension) |
Write a small game engine in C++ and DirectX / OpenGL / Vulkan. |
Feedback on assessment
Written feedback.
Pre-requisites
To take this module, you must have passed:
Post-requisite modules
If you pass this module, you can take:
- WM9M5-15 Games Engine Design and Development
Courses
This module is Core for:
- MSc in Games Engineering