On this course you will study the latest techniques and resources for developing stand-alone, web-based and mobile games, featuring exciting graphics and animation. You will become familiar with the basic architecture and design elements of computer games and programming languages and paradigms relevant to games development.
Computer Games Programming at DMU is accredited by BCS – The Chartered Institute for IT, enabling graduates to register as a Chartered IT Professional.
This course includes teaching on a range of topics, including an introduction to C++ programming, game architecture and design, and game engine architecture.
Benefit from our industry-standard game development studios, featuring some of the latest technologies for playing and developing games on a range of platforms. They are equipped with a mixture of high-specification gaming PCs, consoles and game development software.
Graduates have pursued careers as games programmers, artificial intelligence programmers, graphics programmers, 3D modellers and web systems developers.
Become a part of a vibrant community by joining our Games Society or eSports Society. You can build on what you learn on the course by playing games, taking trips to professional gaming events and competing in tournaments. Our Games Development Society will give you the chance to work alongside Game Art students in Games Jams.
Structure and assessment
- Introduction to C++ Programming – This module provides an introduction into 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 into 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.Outline content: Classes and objects, association, inheritance, windows and rendering, event handling, basic audio and basic animation.
- Computer Ethics – The module introduces students to the ethical theories affecting cyber security, software engineering, computer science and digital forensics. It requires them to 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 – The module introduces students to the legal and professional context of cyber security, software engineering, computer science and digital forensics, it addresses legal framework, legal and professional responsibilities of the software engineer, systems manager, computer forensic and security practitioner. The module will address computer ethics, data protection law, UK and international law affecting cyber security, digital engineering, systems management and digital forensics.
- Computer Systems – This module provides a foundation in computer architecture and operating systems with a specific emphasis on their security.
Students will learn about computer hardware, software, operating systems, and demonstrate practical knowledge of these during lab sessions.
Studying this module student will be able 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 students will also learn to develop shell scripts.
- Computer Networks – This module provides a foundation in modern computer networks with a specific emphasis on their security. Students studying this module will be able to explain how modern computer networks functions and be able to demonstrate a practical knowledge of computer networking. Students will 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 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 inimplementing their designs by developing simple games which illustrate a range of design features.
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. 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.
- 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 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 and ethical aspects that are within the workplace.
- Applied Mechanics – The mechanics presented on this module can be split into three areas all concerned with rigid bodies: the simulation of motion, the detection of collisions and the resolution of collisions. The students 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. The students 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.
- Artificial Intelligence for Simulation++ – Many applications of modern computing involve processes of assessment and decision making which used to be solely within the domain of human beings. Uses of Artificial Intelligence are widespread globally – from search engine algorithms on the internet to making decisions on credit worthiness to route finding in virtual worlds. This module covers in outline 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. Students 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++ – The starting point of the module is that the student has done a module of C++ programming and understands the fundamentals of the Object Oriented (OO) approach. The purpose of this module is to further the students’ knowledge of the C++ programming language in a professional software development context. The course will involve 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 is concerned with expanding the students’ 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.
- 3D Modelling – This module provides students 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 students 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.
- Development Strategies for Mobile Games – 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 . They stand apart from standard games design due to their portability, accessibility, networkability, interaction techniques and revenue strategies.
The mobile games industry is one of the fastest growing segments of the games industry, however mobile games can be some of the most challenging products to develop and distribute. Unlike most areas of the business, mobile games must be created to run on hundreds of handsets, must pass quality assurance tests from dozens of organizations, and are marketed and sold unlike any other entertainment product.
Students studying this module will gain an insight into the mobile games industry- market trends, developments in mobile devices and technology, mobile games genres, the major technology platforms, quality assurance standard and deployment.
Outline content: business plans and monetization, storing and using data, location information, optimisation, user interfaces, input and controllers, future developments.
- Mobile Games Development – This module has two themes that can be broadly categorised as- (i) an understanding of the mobile games industry, and (ii) practical skills in the development and deployment of a mobile game.
This module challenges the student to develop a game, from concept to deployment, using major technology platforms such as Unity or Java. The emphasis is on meeting quality benchmarks, understanding the need for portability across devices and the issues arising from a reduction in resources.
- Game Engine Architecture – This module is concerned with the techniques and technologies which go to make up a modern component based data driven game engine. As with all game engine development, run-time execution speeds are critical, as such the C++ programming language will be used throughout as it gives good access to hardware at a low-level whilst maintaining many of the design advantages of an object-oriented language, which are essential when considering a piece of software the size of a game engine.
The students will explore the component design pattern and the ways this idea can form the basis of a modern game engine architecture. The content then moves on to approaches to asset management, storage strategies and data-driven approaches to scene creation. Input and camera control is also covered so the scenes can be explored. Modern approaches to animation using rigged models which can be manipulated through quaternion interpolation techniques are also explored.
- Game Engine Development – The project provides students 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 enables students to apply and integrate previous material covered on the student’s course as well as to extend the work covered on the course through research and self-learning. Students will be expected to demonstrate appropriate and proactive project management, and written/verbal presentation skills throughout the period of the project. As well as analysing, designing, delivering and appraising a product of suitable quality, they will be expected to undertake, research, analyse, design, evaluate and report on some aspects of a subject explicitly allied to the project.
- Fuzzy logic and Knowledge Based Systems – This module will introduce Fuzzy Logic and explain how to use it in the context of decision making.
- Mobile Robotics – This module will explain the functioning of autonomous mobile robotics and learn how to remotely control a robot.
- Telematics – This module will teach the basics of telemetry, that is the use of a transmission system to monitor and control remote and distributed systems.
- Multi-service Networks 1 – The 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 largely on the TCP/IP networks while the subnet covers recent and emerging developments in LANs, MANs and WANs, for both fixed and wireless network technologies. The Internet will be used as the driving vehicle to deliver the module. Familiarity is assumed with the basic concepts, but not necessarily the detail of data communications and the mechanisms by which a communications subnet transfers data segments between remote machines. Typically, these will have been studied in Year 2 modules but this is not a prerequisite. The module does have a strong software and algorithms orientation. Cisco technologies (Cisco Routers and Switches and Cisco Packet Tracer) will be used within the labs and tutorials.
- Multi-service Networks 2 – The module provides analysis of problems and solutions found in networks and covers the mainly the communication stack (Transport and Application layers). The Networks 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. The recent and emerging developments in local and wide area networks, for both fixed and wireless network technologies, are considered and the role each of these can play in providing a suitable broadband intra/internet infrastructure is discussed. The protocols developed for each of these technologies is developed and contrasted with conventional OSI Model. A recurring theme is how the network can provide the necessary Quality of Service requirements for the various types of traffic. Cisco Routers and Switches and Cisco Packet Tracer) will be used within the labs and tutorials.
Students are assumed to complete multi-service networks 1 as a prerequesite. The module does have a strong software and algorithms orientation.
- Shader Programming – This module explores the use of the programmable graphics pipeline to achieve graphical effect realised on a real-time scene.
The module builds on the concept of the programmable graphics pipeline. The core concepts of transformations and the pipeline stages are reviewed and extended with the introduction of quaternions for transformations, animations and camera simulation.
The module then moves on to look at series 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 actual techniques taught on the course will vary as the technology and techniques in this area are constantly evolving requiring cutting edge scholarship. However, students can expect to explore light mapping, alpha mapping, normal mapping, deferred shading, tessellation shading, parallax mapping, animation Shaders and rotational Shaders
Facilities and features
Game Development Studios
Our Game Development Studios bring together the most up-to-date technology created for playing and developing games on a range of platforms.
Each of the studios is equipped with high specification machines that are regularly updated to ensure we stay in-line with emerging technologies and the games industry; ensuring you have the most relevant knowledge and practical skills needed when you go into the workplace.
The main Kimberlin Library is open 24 hours a day, 365 days a year (other than in exceptional circumstances) and offers a huge range of online resources, all of which can be remotely accessed from anywhere you choose.
The library is run by dedicated staff who offer additional support to students, including help with academic writing, research strategies, literature searching and reference management and assistive technology, and mathematical skills for non-maths students. There is also a Just Ask service for help and advice, available via email or telephone.
Our comfortable and well-equipped study areas provide a range of environments to suit your needs.
Our Learning Zones and The Greenhouse provide flexible spaces, whether you are working as a group, practising a presentation or working quietly on your own.
They feature workstations with power supplies for laptops, plus bookable syndicate rooms with plasma screens, laptops and DVD facilities. Wi-Fi is available across all campus locations.
Opportunities and careers
Work placements are offered as part of this course and they are one of the best ways to boost your skills and experience while studying, as well as improving your chances of gaining a graduate level job and can often lead to an offer of employment for when you graduate.
We have numerous links with organisations both in the UK and internationally, and the placements team will help you find a placement to suit your and you interests and aspirations.
This is our innovative international experience programme which aims to enrich your studies and expand your cultural horizons — helping you to become a global graduate, equipped to meet the needs of employers across the world.
Recently, our Computing students gained valuable insights into San Francisco’s tech industry while others put their skills to the test at New York’s Spyscape Museum.
The computer games and leisure software industry has grown dramatically in recent years and now matches the film industry in terms of financial output. Many of the world’s most famous and respected names in games development are based in the UK, including Rockstar North, Rare and Codemasters, creating exciting possibilities for careers in this fast moving and creatively stimulating environment.
Graduates can pursue careers as; games programmers, artificial intelligence programmers, graphics programmers, 3D modellers and web systems developers. The course also equips you with core computing skills so that you can pursue more traditional computing careers outside of the games industry.
Recent graduates are now working as programmers both in and out of the games industry and also as mobile or web developers.