INDICATIVE CONTENT
Optimisation and Profiling of programs
Low-level memory monitoring and budgeting
Low-level memory allocation
Memory Pools
Generic parallel processing techniques for C++ (threading)
Parallel processing for Linux
User Level Threading
Game Console Architectures
Parallel processing algorithms
Understanding CPU Caching
Case Studies on optimisation in games
ADDITIONAL ASSESSMENT DETAILS
Assessment Component 1 – (Learning Outcomes 1, 2 and 3)
Base platform application weighted at 70% consisting of:
Continued development of a pre-existing codebase that focuses on optimsation techniques. Specifically centred on memory management (allocation and deallocation), multi-threading and low-level CPU techniques.
Evidence of techniques in relation to optimisation of the codebase in a forum thread.
Assessment Component 2 – (Learning Outcomes 2 and 4)
Porting exercise weighted at 30% consisting of:
In a team, plan and port a pre-existing codebase to an alternative platform and game console. Platform specific optimisation and parallel processing techniques will be used to improve the performance of the application.
Evidence of techniques in relation to optimisation of the codebase in a forum thread.
LEARNING STRATEGIES
2 x 1 hour lectures per week
2 x 2-hour tutorial workshops week
LEARNING OUTCOMES
Module Learning Outcome
1. Demonstrate a systematic understanding of the architecture and characteristics of a range of typical development platforms relevant to the problem of performance and optimisation of code.
University Learning Outcome
Knowledge and Understanding
2. Choose appropriate designs and techniques which optimise and enhance the performance of games-related code.
University Learning Outcome
Application
3. Assess the challenges of developing software suitable for multiple platforms.
University Learning Outcome
Analysis
4. Critically evaluate the techniques used to port software to other platforms.
University Learning Outcome
Communication
RESOURCES
Microsoft Visual Studio
Linux
VMWare (for Linux)
University provided games console development kit (e.g. PS4 SDK)
REFERENCE TEXTS
Video Game Optimization, Eric Preisz and Ben Garney (2010), Course Technology, ISBN: 1598634356
C++ High Performance: Master the art of optimizing the functioning of your C++ code, ISBN 978-1839216541
WEB DESCRIPTOR
Low-level Platform Optimisation provides the essential C++ low-level programming skills required for industry. Although the module is game-oriented, the knowledge applied is fundamental to any C++ programming project which requires optimisation and a fundamental knowledge of the underlying performance. The assessment will also test the ability to search for and apply platform specific techniques when porting an application.