module specification

CU5011 - Advanced C++ for Games (2024/25)

Module specification Module approved to run in 2024/25
Module title Advanced C++ for Games
Module level Intermediate (05)
Credit rating for module 30
School School of Computing and Digital Media
Total study hours 300
210 hours Guided independent study
90 hours Scheduled learning & teaching activities
Assessment components
Type Weighting Qualifying mark Description
Coursework 15%   Coursework - make a simple application using pointers, functions, loops
Coursework 35%   Coursework - make a game with ASCII art to demo all C++ aspects learnt
Coursework 20%   Coursework - a 2D game showcasing everything taught in class
Unseen Examination 30%   Final exam covering all aspects of programming
Running in 2024/25

(Please note that module timeslots are subject to change)
Period Campus Day Time Module Leader
Year North Wednesday Morning

Module summary

The module provides further development of programming skills at application and system level across a range of platforms. Some of the problems of system independence will be addressed along with inclusion of library applications in the different environments.

Students cover the intermediate part of C++, and consider how to optimise code for different platforms.  The module makes use of a pre-built low-level game engine that helps students build a 2D game.

Students will be introduced to more advanced features of C++ such as operator overloading, templates, the STL, file handling and game/system design principles

The module aims are:
• to make students aware of the features in a programming language which makes it suitable for use in systems programming;
• to enable students to compare programming languages thus reinforcing transferable programming skills;
• to enable students to apply problem solving techniques in a specialised application area.
• provide overview of the main methods/techniques for model design, simulation, analysis;
• develop practical skills by practical coursework implementation;
• build awareness of coding practice for different platforms with respect to optimisation.

Prior learning requirements

CU4006 Game Programming or similar


1. Introduction to programming - control structures; simple and aggregate data types; pointer;  classes; functions; the preprocessor; libraries. LO1 - 2
2. Introduction to features of Object-Oriented Programming and problem solving in C++.
       3. Access to system services; program development with the Programmers` Workbench; conventions for writing Windows tools; initiating, controlling and monitoring processes.
        4. Three main aspects of simulation: modelling, execution, execution analysis & visualisation; LO3 - 5
        5. C++ memory management, file handling, the STL, game states and engine design
        6. A practical development of a simulation and/or game prototype as a coursework/project assignment using the introduction to the theoretical background introduced in this module and relevant tools.

Balance of independent study and scheduled teaching activity

Students will be expected to have gained the necessary confidence from their experience of learning a first programming language to enable them to develop programming skills in workshop work sessions plus self study .  Elements of the objected oriented programming will be introduced in lectures and tutorial sessions and the student’s understanding will be tested by practical exercises requiring the development of tools.

Learning outcomes

On successful completion of this module, students will be able to:

LO1 - Write programs using the class libraries and the Windows development environment;
have a good knowledge of the system utilities, and be able to incorporate them in problem solving.
LO2 - Describe the features of the objected-oriented programming in a specialised application area.
LO3 - Demonstrate self-awareness and understanding of the theoretical background, basic methods and specific tools used for the computer modelling and simulation process.
LO4 - Demonstrate the ability to apply the developed skills and techniques to create, edit, run simulations, and visualise simulation results;
LO5 - Be aware of constraints imposed by different platforms and understand how to deal with memory management.


Harvey M. Deitel (2005) C++ How to Program, 5/E, , Deitel & Associates, Inc. Paul J. Deitel, Deitel & Associates, Inc. Prentice Hall
Print ISBN: 0-13-185757-6, Web ISBN (SafariX):  0-13-186103-4. 

Walter Savitch (2008) Absolute C++, 3/e, Addison Wesley Higher Education
ISBN-10: 0321468937, ISBN-13: 9780321468932

Recommended Reading:
    John P Flynt, Ben Vinson () Simulation and Event Modelling for Game developers.
   Thomson Course Technology, ISBN: 1-59200-848-8.

   Jean-Marc Gauthier () Building Interactive Worlds in 3D.
   Focal Press, ISBN: 0-240-80622-0.