Computer Games Programming BSc (Hons) module details
First year | Second year | Third year
First year
Block 1: Game Design & Development
This module covers the basic elements involved in the architecture and design of computer games software from a high-level perspective. 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 also involves the students in implementing their designs by developing simple games which illustrate a range of design features. For this purpose, a high-level games development system will be used, and students 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. The students will understand the processes used in industry in the production of a game. Design considerations are not limited to technical issues and so the module also includes discussion of the global sociological, cultural, age and gender issues and emphasises the ethical implications and consequences of content choice and player behaviour. Since this is an introductory level 1 module, it is considered crucial to create an appropriate level of responsibility in the games designer which can be carried through to more advanced modules in the area.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 2: Markup Languages and Scripting
This module will cover fundamental usage of scripting languages such as Python and Javascript for parsing and manipulating different types of structured data stored in data files using a variety of markup languages. This module will explore the underlying principles that underpin scripted languages such as type systems and interpretation versus compilation. Students will learn approaches to the manipulation of 2D graphics within a web browser using rasterisation processes such as scalar vector graphics (SVG) or the HTML canvas.
- Lecture 12 hours
- Practical 48 hours
- Assessment 20 hours
- Self-directed study 220 hours
Block 3: Maths & Computer Systems
This module gives an overview of a set of topics which are fundamental to successfully building video games. Students will learn to use command line tools and a version control system. A high-level model of modern computer architecture will be taught to give a knowledge of how processing works and where performance bottlenecks can occur. Students will be taught core math concepts which will be used and revisited throughout their studies.
- Lecture: 12 hours
- Practical 48 hours Assessment: 20 hours
- Self-directed study: 220 hours
Block 4: C++ Fundamentals
This module introduces the fundamental concepts of programming in C++ through to an introduction to Object-Oriented Programming (OOP). The module begins with fundamental but critical concepts of programming such as type, variables, arrays, sequence, selection, and iteration. There is a clear focus on practical programming and problem-solving skills which underpin much of the students' later studies. Lecture 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Second year
Block 1: 3D Modelling & Shader Fundamentals
This module addresses the principles, practice, and context of interactive 3D modelling, rendering and animation. This is approached in three distinct ways. The students will take a vocational tour of the 3D modelling pipeline using a professional toolchain. The theory underpinning these tools is explored in a more formal mathematical way. The implementation of 3D scenes using computer hardware is explored through a series of practical exercises. Each exercise will examine one of the many techniques used in modern rendering to create realistic scenes in real-time culminated in an interactive scene with simulated lighting.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 2: Mobile Games and AI for Simulation
Mobile Games can be broadly defined as being embedded, downloaded, or networked games
conducted in handheld devices such as mobile phones, portable consoles, and tablets. Unlike most platforms, mobile games must be created to run on hundreds of handsets. The module considers the challenges faced when developing for mobile, from concept to deployment, using major mobile games development tools, such as Unity, with emphasis on understanding the need for portability across devices and the issues arising from a reduction in resources.
This module will also study the concept and uses of Artificial Intelligence (AI) in games. Uses of AI are widespread globally. The module covers in outline the major techniques of AI and focuses on applications in computer games programming and simulation. The general methods of AI include knowledge-based reasoning, graph-based search algorithms, probabilistic reasoning, finite state machines, flocking and behavioural trees.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 3: Applied Mechanics and Progressive Game Engines
You will be introduced to the mathematical techniques required for these models as the need arises. The students will be able to model the motion of rigid bodies under constant and variable acceleration. This will be done through Newton’s equations of motion for constant acceleration and numerical approximations methods such as Euler’s method for variable acceleration. at the end of this module you will be able to detect collisions between pairs of convex rigid bodies using the SAT algorithm and be able to use simplified approaches for circles, axis-aligned bounding boxes, and oriented bounding boxes. Collision resolution will be explored through the conservation of linear and rotational momentum with simple coefficient simulations of elasticity and friction.
In this module, you will also learn about more industry leading game engines, such as Unreal. Students will also study the concept of visual scripting. At this point, students will have used other game engines, so learning how to move quickly between them is an important skill. This module is a comprehensive overview of industry leading game engines, such as Unreal engine, in terms of interface and game prototyping; thus, it will cover visual scripting. Though the focus will be visual scripting in terms of programming, programming languages, such as C++, will also be covered within the game engine.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 4: Production Level C++
The focus of this module is to expand the student's overall knowledge of the C++ programming language, in a professional software development context. The module will involve the significant development of skills to create high quality, technically proficient coding techniques. Outline content: OO design, genericity, pointers and referencing, memory management, testing and profiling, polymorphism, design patterns, and the integration of existing libraries.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Third year
Block 1: Advanced Game Engine Application
This module is a more complex overview of an industry standard game engine in terms of interface and prototyping with a professional approach. This module is intended to make students discerning, by enabling them to quickly decide which approach is the best to take: to provide bespoke solutions for a problem, by using a more-than-visual scripting C++ approach, or simply mocking up a Blueprint. As part of this, C++ will be employed to create constructors, classes and perform rudimentary memory management tasks. As noted, this C++ overview will not tackle the denser topics of memory allocation from the stack, but instead will focus on simple memory housekeeping tasks within a game engine. This module may also introduce further game engine-based functionalities, such as Multiplayer Networking, Saving Data, Cross Platform, and User Management.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 2: Advanced Shader Programming
This module addresses a range of techniques used in modern 3D rendering. Students will work through a range of exercises each exploring different techniques, all of which make use of shader programs. The subject is inherently made up of discrete topics which incrementally build to a modern rendering pipeline. Students will be encouraged to look at the output from commercial renderers to help with understanding the limits of their knowledge and appreciate the diversity and pace of change of the subject.
- Lecture: 12 hours
- Practical: 48 hours
- Assessment: 20 hours
- Self-directed study: 220 hours
Block 3: Performant Rendering with C++
This module explores the relationship between memory, CPU, threads, and the GPU in real-time rendering applications. The students work through ideas and techniques which change the performance characteristics of rendering applications. These theoretical and practical ideas are then supported and demonstrated using toolchain including CPU and GPU profiling and inspection tools.
Lecture: 12 hours
Practical: 48 hours
Assessment: 40 hours
Self-directed study: 200 hours
Block 4: Game Development Project
To emerge into the job market being able to understand how to produce a significant piece of work is vital, specifically in the context of the games industry. This module provides the student with the opportunity to produce a substantial piece of work that relates to the computer games industry and/or the application of such methodologies in a wider context. It allows the student to work in innovative and creative ways to develop software with an understanding of a structured development pipeline. Students will demonstrate the ability to self-manage a significant piece of work throughout the design, implementation, verification, and evaluation stages. The range of projects will be wide. Projects are obtained from a variety of sources including internal academic proposals, external organisation suggestions, and students themselves.
The students are required to produce an initial game or technical document that outlines the proposed software. This design forms the basis of the development process. Following this first submission, they will develop software that forms a game or component thereof that relates to implementation of game development skills within a wider context.
- Lecture: 4 hours
- Supervisor Meetings: 3.5 hours
- Assessment: 1 hour
- Self-directed study: 291.5 hours