CU5011 - Advanced C++ for Games (2020/21)
|Module specification||Module approved to run in 2020/21|
|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|
|Running in 2020/21||
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.
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.
Traditional delivery, teaching and facilitating learning methods will be employed but the focus will be on the development of a significant case study based on the event model design and simulation (CW1 & CW2) in the light of their suitability for a game prototype development.
Both assignments are seeking to enhance the learning process and to ensure the student has understood what has been presented. Module assessment is composed of two components.
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
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.