First year | Second year | Third year
First year modules:
Introduction to C++ Programming
This module provides an introduction to the basic aspects of writing computer programs in the C++ language. The module covers three areas: input/output through console and files, storage of data in computer memory through primitive variables, arrays, pointers and vectors and algorithm design strategies and implementation of algorithms.
Introduction to Object Oriented Programming in C++
This module provides an introduction to the core concepts of Object Oriented Programming (OOP) through the C++ language. These core concepts include the class, the object, inheritance and association. The module then explores a contemporary OOP library which provides the functionality required for building games and simulations such as windowing, graphics, event handling and audio. An overview of good software development and testing practice is also given.
This module introduces you to the ethical theories affecting cyber security, software engineering, computer science and digital forensics. You will develop critical analytical skills in applying ethical theories to technological outcomes regarding cyber security, software engineering, computer science and digital forensics.
Computer Law and Cyber Security
This module explores the legal and professional context of cyber security, software engineering, computer science and digital forensics. It addresses the legal framework, legal and professional responsibilities of the software engineer, systems manager, computer forensic and security practitioner. You will study computer ethics, data protection law, UK and international law affecting cyber security,digital engineering, systems management and digital forensics.
This module provides a foundation in computer architecture and operating systems with a specific emphasis on their security. You will learn about computer hardware, software, operating systems, and demonstrate practical knowledge of these during lab sessions. You will learn to relate the abstract concepts of logic and number systems to their concrete representation on real machines and identify the security risks in common configurations of computer operating systems and suggest appropriate mitigations. In the practical lab sessions, you will also learn to develop shell scripts.
This module provides a foundation in modern computer networks with a specific emphasis on their security. You will be able to explain how modern computer networks functions and be able to demonstrate a practical knowledge of computer networking. You will also be able to identify security risks in common configurations of computer networks and suggest appropriate mitigations.
Game Architecture and Design
This module covers the basic elements involved in the architecture and design of computer games software. It describes the building blocks of a typical game and introduces a range of design aspects which contribute to an effective global game experience. The module includes discussion of the global sociological, cultural, age and gender issues and emphasises the ethical implications and consequences of content choice and player behaviour.
Game Prototype Development
This module is concerned with using industry-standard tools to prototype basic game ideas and functionality. For this purpose, a high-level games development system will be used and you will learn how to add extra functionality using an associated script-programming language. To support this development, the module introduces some key development management methods such as team management and simple project management in order to reflect the way computer games are developed across an international industry. You will understand the processes used in industry in the production of a game and ethical aspects that are within the workplace.
Second year modules:
The module focuses on three areas concerned with rigid bodies: the simulation of motion, the detection of collisions and the resolution of collisions. You will be able to model the motion of rigid bodies under constant and variable acceleration. This will be combined with the ability to detect collisions between pairs of rigid bodies combined with the use simplified approaches for circles, axis-aligned bounding boxes and oriented bounding boxes. You will also explore collision resolution through the conservation of linear and rotational momentum with simple coefficient simulations of elasticity and friction.
Artificial Intelligence for Simulation
This module outlines the major techniques of Artificial Intelligence and focuses on applications in computer games programming and simulation which use these techniques. The general methods of AI include knowledge based reasoning, graph-based search algorithms, probabilistic reasoning, finite state machines, flocking and behavioural trees. You will be required to explore the implications of their knowledge and use of these intelligent technologies with reference to ethical codes of relevant professional bodies and legal responsibilities.
Object-Oriented Programming in C++
This module furthers your knowledge of the C++ programming language in a professional software development context. The module involves significant development in softer skills critical to successful software development and the creation of high quality code.
Advanced Object-Oriented Programming in C++
This module expands your technical knowledge of the C++ programming language. The module looks at basic memory management and performance profiling, unit testing, polymorphism, design patterns, integration of existing libraries with a constant view of the quality of the code being produced.
This module provides you with an introduction to the principles, practice and context of interactive 3D modelling, rendering and animation. This will be done via presentation of the theoretical basis and through practical work using an industry-standard graphics library, such as OpenGL, and a modelling tool, such as Maya.
Introduction to Shaders
This module provides you with an introduction to the principles and practice of interactive 3D rendering and with a programmable pipeline. This will be done via presentation of the theoretical basis and through practical work using an industry-standard graphics library, such as OpenGL, with the associate shader language such as GLSL.
Understanding the mobiles games industry, focusing on the main considerations when developing for a handheld device, such as interaction and portability. This knowledge and understanding is applied in the development of a mobile game, which demonstrate these characteristics.
Physics Engine Programming
Use 2D and 3D physics engine to simulate real-world motion, collisions and interactions between simulated physical objects. These simulated physical characteristics are integrated into a wider projects to create fully simulated scenes.
Third year modules:
Game Engine Architecture
This module addresses the techniques and technologies which make up a modern component-based data-driven game engine. You will explore the component design pattern and the ways this forms the basis of a modern game engine architecture. You will also cover approaches to asset management, storage strategies and data-driven approaches to scene creation, as well as input, camera control and modern approaches to animation. The C++ programming language will be used throughout as it gives good access to hardware whilst maintaining many of the design advantages of an object-oriented language.
Game Engine Development Project
This project provides you with the opportunity to carry out a significant piece of work involving critical analysis and reflection to provide an effective solution to a given technical and/or research-based problem. It is expected that you will apply and integrate material covered across the course as well as extend it to deliver a final product. Throughout the module you will be required to demonstrate appropriate and proactive project management alongside written/verbal presentation skills.
Fuzzy logic and Knowledge Based Systems
This module deals with, arguably, the two most successful techniques in artificial intelligence. Fuzzy logic is a technique for modelling uncertainty and imprecision, and appears in many applications. You will gain an understanding of fuzzy sets and how these are used in systems that contain fuzzy if-then rules for decision making. You will then have the skillset to create a fully functioning fuzzy inference system based on your subjective understanding of a problem domain.
This module explains the functioning of autonomous mobile robotics. You will learn how to remotely control a robot.
This module provides an understanding of how distributed telematic systems are designed and implemented. This will include a detailed study of a range of telematic standards and protocols. You will gain the skills to develop telemetry software for use in the automotive sector, and as part of a wider pervasive network of intelligent distributed computers that are linked by wireless technology.
Multi-service Networks 1
This module provides a comprehensive analysis of problems and solutions found in modern networks and covers the communication stack (Physical, Data-link and Network layers). The module concentrates on the TCP/IP networks, while the subnet covers emerging developments in LANs, MANs and WANs, for both fixed and wireless network technologies. The module has a strong software and algorithms orientation. You will use Cisco technologies (Cisco Routers and Switches and Cisco Packet Tracer) within the labs and tutorials.
Multi-service Networks 2
This module provides analysis of problems and solutions found in networks and focuses on the communication stack (Transport and Application layers). The module focuses exclusively on very high speed networks, which carry integrated multi-service traffic such as voice, video and data. A recurring theme is how the network can provide the necessary Quality of Service requirements for the various types of traffic. You will consider recent developments in local and wide area networks, for both fixed and wireless network technologies, and discuss the role each of these can play in providing a suitable broadband intra/internet infrastructure. You will use Cisco Routers and Switches and Cisco Packet Tracer) within the labs and tutorials.The module has a strong software and algorithms orientation, and Multi-service Networks 1 is a prerequisite.
This module explores the use of the programmable graphics pipeline to achieve graphical effect realised on a real-time scene. You will review and expand the core concepts of transformations and the pipeline stages with the introduction of quaternions for transformations, animations and camera simulation. The module also covers a series of graphical effects which are programmed directly in a shader language for implementation on the graphical processor unit. The focus is around cube mapping a scene with a range of materials using a range of lighting approaches.
Advanced Shader Programming
This module analyses a wide range of techniques for improving realism and reducing computation in simulated 3D scenes. The techniques taught on the course will vary as the technology and techniques in this area are constantly evolving. However, you can expect to explore light mapping, alpha mapping, normal mapping, deferred shading, tessellation shading, parallax mapping, animation Shaders and rotational Shaders.