(1) Advanced programming (Introduction to & Advanced programming for games modules)
This module is designed to give you a strong basis in programming development in the context of the Games and Entertainment industries. From Z-buffering to lighting calculations, weather effects, curved surfaces, multiple layer Internet gaming, network programming, many of the major techniques needed to develop a competitive game engine shall be covered. Object Oriented programming represents the core methodology upon which the module is based using the C++ programming language, scripting (Python or Lua) and other technologies (such as Android or iPhone dev. for mobile, casual, on-line games; assembly for debugging). The module also puts an emphasis on special topics of current (and future) concern to the industry: procedural programming, multicore parallel processing and design, computer vision for gesture recognition and tracking.
(2) Computing in Geometry, Graphics and Vision (Maths & Graphics for Games, modules 1 & 2)
This allows you to build a strong basis in the mathematics and theory which is fundamental to the development of modern games, special effects, and entertainment systems. The module is divided into various modules.
- Mathematics module: linear algebra fundamentals (vectors, matrices, quaternions), calculus review (tangents, curvature, nth order derivatives, integrals, etc.), interpolation techniques, splines, surface meshing, complex numbers and fractals, etc.
- Computational geometry module: Advances cover state-of-the-art issues, such as: flocking behaviors (animation of crowds), space syntaxes (used in architecture and urban development), 3D bucketing and parallel processing.
- Computer graphics module: including rendering techniques, 2D and 3D graphics (in interaction, representations). The advances cover the recent issues in graphics, including Non-Photorealistic Rendering (NPR), procedural algorithmics, growth and evolutionary systems, etc.
- Perception and Vision module: (mainly visual): computer vision including image processing and pattern recognition, use of OpenCV, kinect platform from Microsoft.
(3) Games & Interactive Entertainment Industries (Business & Practice for Games module):
During this module you will develop a solid understanding of the industries of computer games and interactive entertainment, inclusive of special effects for films and animations. Gives an overview of the industries and teaches students the main management methods used in practice. Main topics covered include:
- How the industry works across all the domains.
- How games are made: considering games development from concept to shrink wrap; how development is different for different domains; approaches to developing games; the use of middleware and tools.
- Team work: the role of the team within development; how to make teams work (Tuckman, Empowerment, psychology, etc.); highlights the positive sides of crunch and the deathmarch, but also highlights the issues of those approaches.
- Entrepreneurship; how to do it yourself; IP; marketing and hiring.
(4) Additional modules and activities: (may vary from year to year)
- Tools and Middleware moduleAI in games modulePhysics and (3D) Animation moduleMobile technology (e.g. Android, iPhone, iPad, via workshops and special projects).
- Shaders and Renderers (typically covered between the programming and maths & gfx modules).
- Audio-visual processing (e.g. using Kinect, via workshops, coursework).
- Seminars (e.g. in collaboration with our industry partners).
- Workshops (e.g. on specific middleware, like Unity, Unreal, Houdini, Maya).
(5) Final Project
During this final project, you will undertake a project towards your dissertation, typically over the Spring-Summer period (May to September). We offer three options to our students:
Individual research project:
This is based on a research theme selected by you and agreed upon by the lecturing team. Recent examples include:
- Building a cheap kinect-like gesture tracking system;
- AI (rule-based) platform for game level design;
- Software development for our mobile technology projects (iPhone based);
Small team game development:
The project is based on a theme, e.g. “Myths and Legends.” The goal will be for each student to create a playable game on a common platform (e.g. a PC, handheld device, console or mobile phone). The project will demonstrate the use of skills, knowledge and programming techniques learned in each of the taught modules. Working in small teams, students will be required to build a level of a complete “First Playable” Prototype Game (or “The Vertical Slice”) for PC, or consoles or mobile platforms of a quality to be suitable to be shown to a Publisher.
Placement at a games or post-production studio or at a technology company:
Typically within the greater London area and for a minimum of three months, you will regularly report back on your experience during the placement and provide a final presentation/viva and report as for the other two options, but not necessarily with demos (proof of programming work is ensured via a designated mentor at the studio/company).
All students are required to write a report (alike a thesis format) and present their result/experience at a final viva in front of a small examination committee, usually by mid-September.
Companies offering placements include: Creative Assembly, Supermassive, Ideaworks (Marmalade), Rebellion, Roll7, Climax Studios, GameSys, SONY SCEE, Splash Damage, BeefJack, Playmob, Ubisoft Reflections.
Mainly based on coursework (involving programming), essays, final project and dissertation; some lecturers may also conduct exams/quizzes.
The taught programme is organised into three terms (full-time). The Autumn term runs from early October to mid-December, the Winter/Spring term from mid-January to the end of March, and the Summer term runs, typically, from late April to mid-September. Taught modules are given during the Autumn and Winter/Spring terms, while the Final Project takes place during a Summer term (in the second year for part-time students).