Year 1 core modules
Algorithms for Games
Complex coding and scripting for a computer game requires an understanding of problem solving, data structures and algorithms needed to define the contents and behaviour of a virtual 3D world. You are introduced to these topics using an informal yet rigorous approach. The algorithms range from simple to advanced, widely used in AAA games. Recreational problems, like games and puzzles, are used to convey the important algorithmic concepts.
C++ Programming
You are introduced to C++ programming, focusing on the learning, development and application of algorithms and data structures within computer games, and the basics of class-based object-oriented programming using C++ language.
You demonstrate conceptual understanding and practical competence of programming by designing and implementing solutions to specific programming problems.
You study standard C++ libraries, and where appropriate one or more 3rd party libraries. You are required to demonstrate an understanding of professional practices and appropriate codes of conduct.
Games Development with C++
You study advanced aspects of C++ language and its continual evolvement, focusing on game development.
You develop your knowledge and practical application of object-oriented programming, including exception handling, polymorphism, design patterns and templates, and the standard library for containers and algorithms.
You are required to demonstrate an understanding of professional practices and appropriate codes of conduct.
Maths for Games
Knowledge of advanced mathematical concepts for building a games engine is essential for a games programmer. You learn basic and advanced mathematics in an applied context.
Systems and Game Technology
The production of a successful, robust, user-friendly system or application begins with the analysis of the stakeholders' requirements and a detailed design. This module introduces you to the concepts and techniques of systems analysis and design, enabling you to break down and simplify complex systems and represent these visually using industry standard approaches such as Unified Modelling Language (UML). In industry, the resulting models are used to communicate designs to the developers and to the stakeholders prior to implementation.
Games Technology is explored in the context of games development, with reference to the interconnection of hardware and the developmental processes involved in games' creation. You consider the development process and appreciate the various technologies, in both software and hardware that must be brought together in the creation of a computer game.
Visual Scripting
This module develops your introductory level skills in visual scripting using a contemporary game engine.
You consider the fundamentals of visual scripting including variables, functions and operators along with more advanced aspects such as player controllers and game modes. You use these concepts to implement gameplay functionality and interaction using a contemporary game engine.
Year 2 core modules
3D Graphics Programming
Essential algorithms and models used within interactive 3D computer graphics and animation are introduced in this module. It is useful for those interested in programming interactive visualisation applications such as computer games.
You will be able to design and implement applications capable of the visualisation and animation of a virtual 3D environment using C++, a graphics library such as OpenGL or Direct3D, and a shading language such as GLSL or HLSL.
Games Engine Construction
You will gain an in-depth view into the design of core computer game architectures and implementation using an Application Programming Interface and object oriented programming. You will develop your own computer game engine, which involves implementing and integrating computer game engine core systems eg graphics, simulation. Subsequently you will extend your existing C++ software engineering skills by integrating design patterns commonly used in game engine development.
You will be required to implement efficient C++ algorithms, both in terms of performance and memory use, and use profiling tools to inform your design choices and demonstrate knowledge of the underlying architecture.
Journeyman
You work in a team to produce a game experience within a current game engine. This provides you with experience of working within a production environment, and also with an opportunity to target specific production skills within your chosen field of study.
Network and Concurrency
You explore the area of networking protocols, their quality of services, and related APIs. You are also introduced to concurrent and distributed programming paradigms.
You tackle issues faced when developing a concurrent or distributed application, including security and synchronization. You explore suitable abstractions, such as design patterns, distributed objects models and architectures.
Case studies are used to illustrate the theory of this module with appropriate technologies, for example, distributed architectures for online games, cloud, AJAX.
Real-Time Simulation
You are introduced to the essential animation and simulation algorithms and mathematics used to program 3D virtual environments. It is useful for those interested in developing interactive applications such as computer games.
Emphasis is on the practical implementation of the topics covered. After completing this module, you will be able to design and implement algorithms to model the plausible motion of point masses within a 3D virtual environment.
Optional work placement year
Work placement
You have the option to spend one year in industry learning and developing your skills. We encourage and support you with applying for a placement, job hunting and networking.
You gain experience favoured by graduate recruiters and develop your technical skillset. You also obtain the transferable skills required in any professional environment, including communication, negotiation, teamwork, leadership, organisation, confidence, self-reliance, problem-solving, being able to work under pressure, and commercial awareness.
Many employers view a placement as a year-long interview, therefore placements are increasingly becoming an essential part of an organisation's pre-selection strategy in their graduate recruitment process. Benefits include:
· improved job prospects
· enhanced employment skills and improved career progression opportunities
· a higher starting salary than your full-time counterparts
· a better degree classification
· a richer CV
· a year's salary before completing your degree
· experience of workplace culture
· the opportunity to design and base your final-year project within a working environment.
If you are unable to secure a work placement with an employer, then you simply continue on a course without the work placement.
Final-year core modules
AI for Games Engines
You consider artificial intelligence (AI) and its application in computer games and explore advanced AI techniques.
Beta Arcade
You gain experience of working as a member of a games development team that is as close to industrial practice as possible. Beta Arcade simulates the working criteria and mix of development skills that are required to produce a polished prototype of a computer game concept which would be suitable for publication.
Game Programming Project
You undertake a large scale piece of work, supervised by a member of academic staff. You also produce a substantial computing artefact and compile a report and a viva with a presentation, demonstration and discussion of the artefact. You develop work-discipline and a professional outlook. You are responsible for the planning and execution and consider legal, social, ethical and professional issues. You explore a chosen subject and analyse, synthesise, and creatively apply what you have studied on the programme, demonstrating critical and evaluative skills and professional awareness.
Mobile and Gaming Devices
You expand your knowledge and skills of games programming, computer architecture and software development to include native development on mobile or gaming hardware. You build upon existing programming skills in C/C++ and knowledge of computing architecture and expand your games software programming skills, focusing on developing, analysing and optimising code for limited gaming devices.
Physics Simulation
You explore the physical laws and numerical methods necessary for the development and enhancement of physical realism in 3D games, and are introduced to new concepts such as rigid bodies, moment of inertia and soft body dynamics, with an emphasis on physics realism versus computation speed, stability and accuracy.
Modules offered may vary.
How you learn
It is essential for you to gain experience in being a programmer. Your modules use a combination of lecture sessions to study the theory, computer lab sessions to put theory into practice with tutor guidance, and controlled studio environments to practice your professional and teamwork skills.
In your second year you take part in our unique Journeyman module, highly praised by industry, in which all games art students work with games designers in a simulated game studio experience, outsourcing various essentials such as assets and animation to specialist teams. You work on games in Unreal and Unity to strict milestones in a scenario that is as close to industry practice as possible within an academic environment.
Learn using our industry-standard facilities including multiple games development labs, virtual reality lab, and state-of-art Vicon motion capture facilities.
How you are assessed
Our course focuses on the application of the knowledge and skills you acquire. Most of your modules require you to design and develop software to demonstrate your new abilities. Your assignments are set by your tutor and you work on them throughout the academic year whilst receiving valuable feedback to guide your work.
Our Disability Services team provide an inclusive and empowering learning environment and have specialist staff to support disabled students access any additional tailored resources needed. If you have a specific learning difficulty, mental health condition, autism, sensory impairment, chronic health condition or any other disability please contact a Disability Services as early as possible.
Find out more about our disability services
Find out more about financial support
Find out more about our course related costs