Undergraduate study
Computer Games Programming

BSc (Hons) Computer Games Programming

UCAS code: GGK6 BSc/CGP

UCAS code: I614 BSc/CGPFY for Year 0 entry
This degree is one of the UK’s leading games programming courses and is well respected by the industry. You have the opportunity to study on this specialist course taught by experienced developers and internationally recognised researchers.

Course information

Full-time

  • Length: 3, 4 or 5 years dependent on whether you undertake the foundation year, placement year or both.

More full-time details

Part-time

  • Not available part-time

Contact details

Further information

 

Note: this course is for Year 0 and Year 1 entry only in 2017. We currently operate a different structure for entry to Year 2 and final year. Please contact scm-enquiries@tees.ac.uk for more information.

Games programmers build games from the creative vision of designers and artists. Our course gives you the essential industry skills to do this. Games-specific modules take you beyond traditional software development, providing a head start for your future career. Each year culminates in producing a complete game demo, whether as a personal project using middleware, in a team of programmers working to a game design document, or in a multidisciplinary team of students. You will become a talented software engineer, technically skilled and an excellent problem solver with games industry-specific-knowledge and experience. You will have the technical expertise for a variety of careers within the games industry and mainstream computing.

The course is structured around the following themes:

  • programming and agile software engineering practices
  • gaming hardware and platforms (mobile devices and consoles
  • gameplay programming and user interfaces (multimodal interfaces) artificial intelligence
  • networked multiplayer games (from social gaming to massively multiplayer games) graphics, animation, physics, and simulation programming.

Professional accreditation

Creative skillset The Skillset accreditation scheme has been created with the games and animation industry to signpost courses which fulfil professional criteria and prepare students for the world of work.

This course has been accredited by the British Computer Society.

Course structure

Year 0 (foundation year) core modules

Critical and Contextual Studies

You gain an historical and contextual overview of the history of art, animation, film and games. Aimed at technical, arts, games and animation students, this module equips you with an introductory level of understanding in the context of your chosen field of study.

Through a series of lectures and seminars, you engage in research and discussion based on your chosen areas of art, animation and game history. You learn how to effectively seek out appropriate academic sources on which to base and construct these discussions in seminars and in writing.

Foundation Project

You are guided through the production of a small-scale individual project, defined in part by you with guidance from your tutor. The foundation project guides you to a more autonomous working approach developing your project management skills and consolidating other skills already learnt in other modules.

You develop original ideas and concepts for the pre-production of an appropriate project in your chosen field of study. This may take the form of a game design document, modest game prototype, animation or game pre-production, concept art or another appropriate form related to the games, animation and film industries.

Introduction to Mathematics

This module introduces the relevant mathematical notations and techniques if you are preparing to study a technical computing degree at undergraduate level. The emphasis is on developing the skills that enable you to understand technical specifications of computing devices.

Topics include the number systems prevalent in computing, algebraic manipulation and equation solving, and the concept of functions – both algebraic and graphical formulations.

The module is delivered through lecture and tutorial sessions. Worked examples illustrate how each mathematical technique is applied. Problem-solving tutorial exercises give you the opportunity to practise each skill or technique.

Introduction to Programming

This module is ideal if you have little or no experience of programming – it uses tools that are easily available, easy to use and familiar to anyone who has used a computer.

You learn how programming language constructs are applied to different problems of increasing complexity. All programming solutions are executed in a web browser although the module is not specifically targeting web development.

Modelling Principles

You learn some of the basic principles of 3D computer modelling, lighting and texturing. You use 3D software to produce a simple 3D model that will be textured and rendered with basic lighting. Through guided tutorial tasks, you learn some of the first principles of 3D modelling with the view to creating a small collection of elementary assets for computer games and animation. You create simple textures in appropriate software, such as Photoshop, and consider basic CG lighting.

Problem Solving Principles

You are introduced to problem solving, using simple tools and techniques. You develop your logical thinking and problem solving abilities. From recognising and defining problems to selecting an approach to problem solving or decision making, to evaluating the difference between the current and the desired state.

You may use recreational problems, like games and puzzles, to convey the important concepts and provide a more limited context to work within.

 

Year 1 core modules

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.

Game Middleware

You look at programming techniques and concepts needed to create a modern computer game using industry-standard middleware products.

You are introduced to general game programming skills, and a range of game middleware components and their utilisation.

You study the game production pipeline and the ethical and legal considerations of licencing and copyright when using industry-standard middleware.

On completion you are equipped to create a 3D interactive game environment.

Game Studies

You study and analyse computer games and computer games development, and the contemporary and historical issues affecting the games industry and wider society. Industry speakers share their experiences of games and professional development.

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 Design and Databases

Successful, robust and user-friendly systems or applications begin with a requirements analysis and detailed design. You are introduced to the concepts and techniques of systems analysis and design, enabling you to break down and simplify complex systems and represent them visually using industry-standard approaches such as Unified Modelling Language (UML). In industry, the resulting models are used to communicate designs to developers and stakeholders prior to implementation.

You learn to design and implement fully normalised relational databases as part of an information system. Using data modelling techniques you define how the system stores data and interacts with it. You implement your design using Structured Query Language (SQL): Data Definition Language for creating tables, and Data Manipulation Language for accessing the data.

You develop professional practice and transferrable skills essential for industry, including project management."

 

Year 2 core modules

3D Graphics Programming

Essential algorithms and models used within interactive 3D computer graphics and animation and 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 interactive 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.

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.

Game Jam

You are provided with an intensive game-studio experience relying on agile development methodologies in a controlled environment.

Game Jam concentrates on the skills and knowledge required in the development of a computer game, including important key transferable skills such as the ability to work in a team, the ability to follow a game design specification, and the ability to adapt to change.

Teams are drawn at the start of the module. You are then provided with a game design document written by a member of staff who act as the client throughout. Lecturers support the teams through practical sessions and lectures.
Lectures are delivered on topics to prepare you for the team working agile development process as well as covering standard gameplay programming techniques.

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.

Network and Multiplayer Gaming

This module will give an overview of networking protocols, and their quality of services, and related APIs. It will also introduce you to concurrent and distributed programming paradigms. Issues faced when developing a concurrent or distributed application will be tackled, including security and synchronisation issues.

Suitable abstractions will be studied (design patterns, distributed objects models and architectures), and case studies will be used to illustrate the theoretic content of this module with appropriate technologies, eg distributed architectures for online games, cloud, AJAX.

 

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.

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 helps students with additional needs resulting from disabilities such as sensory impairment or learning difficulties such as dyslexia
Find out more about our disability services

Find out more about financial support
Find out more about our course related costs

Work placement

Being able to include work experience on your CV makes you a much more attractive applicant. You have a much higher chance of improving your degree classification and the boost in confidence will give you the edge in job interviews.

98% of our students who complete a work placement achieve a high level degree classification and are offered a graduate job within six months of graduating.

We have established excellent long-term relationships with businesses giving you the opportunity to apply for summer, year-long and graduate placements with key organisations such as: Microsoft, Rare, Team 17, ZeroLight, R8 Games, Hammerhead VR, Dojo Arcade, Schlumberger, Sumo Digital and Coastsink.

Student selection is carried out by the employers through competitive interviews and often skills tests. Placements are not compulsory but are assessed and contribute to your final degree award.

Our placements team gives you help and support throughout the placement process, including guidance on applications and interviews, to help you get a placement that suits you.

Career opportunities

You are ideally suited for employment in the games development industry and similar creative industries. A variety of programming roles exist within these industries such as gameplay programmer, tools programmer, middleware developer, and mobile application programmer. The course gives you a strong foundation in computer programming also allowing for a career in mainstream software development.

Entry requirements

A typical offer is 104-120 tariff points including at least one A level (or equivalent) in a technical, science or numerate subject such as computing, physics or maths, or 64-80 for entry to Year 0 (Foundation Year). GCSE maths (grade C or equivalent) is essential. Key Skills Level 2 in Application of Number isn't accepted as an equivalent.

If you’re applying for entry to Year 0 (Foundation Year) please use UCAS code I614 BSc/CGPFY.

You're required to attend an interview, which also gives you an opportunity to visit our facilities and ask questions regarding the course. If the course is unsuitable for you, you may receive an offer for a related but more suitable course.

For additional information please see the entry requirements in our admissions section

International applicants can find out what qualifications they need by visiting Your Country


You can gain considerable knowledge from work, volunteering and life. Under recognition of prior learning (RPL) you may be awarded credit for this which can be credited towards the course you want to study.
Find out more about RPL

Foundation year

What is KIS?

How to understand the Key Information Set

Course information

Full-time

  • Length: 3, 4 or 5 years dependent on whether you undertake the foundation year, placement year or both.

More full-time details

Part-time

  • Not available part-time

Contact details

Further information