Undergraduate study
Computer Games Programming

This course is in Clearing Clearing 2016

BSc (Hons) Computer Games Programming

UCAS code: GGK6 BSc/CGP

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 years (or 4 including a work placement year)

More full-time details

2016 entry

Part-time

  • Not available part-time

Contact details

£500

£500 cash available to kick-start your degree – for travel, accommodation or other living expenses

Eligibility criteria apply

£260m

Over £260m invested in our town-centre campus for your improved student and learning experience

More about the campus

88%

88% of students would recommend Teesside University to others
(National Student Survey 2016)

Why choose Teesside
 

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.

Modules

Year 1 core modules

Algorithms and Data Structures

We introduce you to problem-solving using an informal yet rigorous approach. Recreational problems, like games and puzzles, are used to convey important algorithmic concepts. The module introduces a variety of algorithmic techniques and provides an appreciation of the use and importance of data structures. It introduces the idea of classifying data according to its abstract behaviour, as distinct from its representation. A range of well-established data structures are examined and their properties are described so that it becomes clear which representations are appropriate under which circumstances. An understanding of the basic skills needed in algorithmic design and the interaction between algorithm and data structure in creating efficient code is emphasised. This module enjoys a close relationship with the module Java Programming.

C++ Programming 1

This module introduces the fundamental concepts of computer programming and problem solving using the (ANSI) C programming languages in a Unix (or similar) environment.

The software development processes of program design, documentation and testing are emphasised throughout the module. We also cover algorithm development for problem solving, and the program language construction for implementation.

On successful completion of this module, you will be able to:

  • compile, debug, run and test simple programs in C
  • develop test plans to demonstrate that programs meet given specifications
  • write and use C functions, with parameters passed via value or pointers, and select appropriate functions from a subset of the standard C library
  • identify and use simple C structures to represent data
  • use the Unix operating system and simple Unix commands.

Your achievement will be measured by one In-Course Assessment.

This module must be studied in conjunction with C++ Programming 2.

C++ Programming 2

This module builds on the computer programming and problem solving skills covered in the C++ Programming 1 module.

It will enhance your problem solving skills to take an object oriented (OO) approach to creating modular programs to meet a given specification.

You are taught how to use simple UML class diagrams in the design process. Programming, mainly in C++, will make use of the Unix (or Linux) platform and examples from the C++ Standard Template Library (STL) and will include inheritance and polymorphism.

On successful completion of this module, you will be able to:

  • make use of separate files to build a C/C++ application
  • design and code C++ classes and use these to provide programming solutions to clearly specified problems
  • construct programs using language features such as arrays, reference parameters, pointers and text files
  • use simple examples from the C++ STL in applications
  • implement a design in a given UML class diagram, with one or more interacting classes

Assessment is by one written examination at the end of the module.

This module must be studied in conjunction with C++ Programming 1.

Games Middleware

You learn how to create a 3D interactive environment using industry-standard game middleware and use a game engine to develop your own 3D game.

This module covers the set of programming techniques and concepts related to the creation of a modern computer game using industry-standard middleware products. You are introduced to game programming skills in general and illustrate game middleware components and their utilisation.

This module covers the game production pipeline and the issues faced when using industry-standard middleware.

Mathematics for Computing

Systems Design and Databases

You are introduced to the concepts and techniques of systems analysis and design. Industry standard approaches are studied (UML). The design and implementation of relational databases and the supporting data description and manipulation language (SQL) is also be covered.

 

Year 2 core modules

3D Graphics Programming

You are introduced to the essential algorithms and models used within interactive 3D computer graphics. It is useful for those interested in programming interactive visualisation applications such as computer games.

After completing the module you will be able to design and implement applications capable of interactive visualisation of a virtual 3D environment using a suitable graphics library such as OpenGL. Emphasis is placed on the practical implementation of the topics covered.

Animation and Simulation Programming

You are introduced to the essential animation and simulation algorithms and mathematics used to program 3D virtual environments. It is useful for those interested in developing interactive applications such as computer games.

Emphasis is on the practical implementation of the topics covered. After completing this module you will be able to design and implement algorithms to model the plausible motion of point masses within a 3D virtual environment.

Game Jam

You gain an intensive and immersive game-studio experience, relying on the Scrum development method, in the form of a four weeks full-time group project.? You develop 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 of programmers, the ability to follow a game design specification and the ability to adapt to change.

As a team, you create a game demo in collaboration with a game designer providing assets and game design documents.

Previous to the start of the project, lectures cover a variety of relevant topics to prepare you for planning and managing your project and to equip you with gameplay programming techniques.

Games Engine Construction

You gain an in-depth view into the design of core computer game architectures and their implementation using industry standard Application Programming Interface (API) and object oriented programming.

You develop your own basic computer game engine. This involves implementing and integrating computer game engine core components. A further emphasis covers the integration of scripting systems (e.g. Lua). Also the module includes the development of an Artificial Intelligence (AI) sub-component including real-time agent based simulation through the implementation of basic path-planning and finite-state machines.

Multimodal Interfaces for Games

You are introduced to the principles of Human-Computer Interaction and explore advanced multimodal interaction techniques, with an emphasis on their current and future use in computer games.
You cover topics such as perception, human factors, usability and experience design, along with GUI design and implementation with a practical application to a games programming tool or game design. You examine the changing aspect of user experience in modern games design – serious gaming, gameification and casual gaming.

We also provide a research-informed component, exploring technologies and implementations related to the future of interaction (especially in games and using console hardware), with an emphasis on multimodal and mixed reality applications.

Network and Concurrent Programming

We give you an overview of networking protocols, and their Quality of Services, and related APIs and introduce you to concurrent and distributed programming paradigms.

Issues faced when developing a concurrent or distributed application are tackled, including security and synchronization issues. Suitable abstractions are studied (design patterns, distributed objects models and architectures).

Case studies are used to illustrate the theoretic content of this module with appropriate technologies such as distributed architectures for online games, cloud, AJAX.

 

Final-year core modules

Advanced Games Development

You gain the experience of working as a member of a games development team that is as close to industrial practise as possible. We simulate the working criteria and mix of development skills that are required to produce a computer game.

The assessment is a group assignment in which team members develop a working game, product specification and individual report. This will consist of two components weighted at 70/30.

Artificial Intelligence for Games

You gain an integrated view of Artificial Intelligence (AI) and its application in Computer Games, building on the core AI concepts introduced previously such as AI scripting, finite state machines and basic path planning.

We bring you up to date with the exploration of advanced AI techniques within Computer Games.

This module:

  • introduces and discusses the latest AI techniques involved in computer games including planning for path finding, planning for virtual agents' behaviour definition and learning for real-time environments accounting for users involvement
  • develops your knowledge and understanding of current research progress and important research topics in the domain of AI applied to computer games
  • analyses, discusses and presents a particular topic using references to appropriate academic research papers.

Computing Project

The Computing Project is a large scale piece of work, undertaken by you under the supervision of a member of the academic staff. The project involves the production of a substantial artefact related to the computing field and culminates in the writing of a report and a viva consisting of the presentation, demonstration and discussion of the artefact.

You are guided to develop an appropriate sense of work-discipline coupled with a professional outlook. You take responsibility for the planning and execution of an extended piece of work including the consideration of associated legal, social, ethical and professional issues. You are able to explore in depth a chosen subject area, and thereby demonstrate your ability to analyse, synthesise, and creatively apply what has already been studied on the programme while demonstrating critical and evaluative skills and professional awareness.


 

and either Advanced Gameplay theme

Mobile Games Programming

You explore the technologies and tools available to develop professional mobile games. Emphasis is on the development of location-aware, mixed reality games rather than games which merely run on a mobile device.

After completing the module, you will be able to research and select appropriate technologies and techniques to implement a mobile game prototype using suitable hardware and software platforms. The module primarily examines development on the iOS and Android platforms.

Multiplayer and Social Games

You learn about the specificities of multiplayer networked games and their domain specific techniques as well as describing how to evaluate multiplayer games playability.

Covering: latency-hiding strategies, persistence and synchronisation in virtual worlds, group communication models, cheating and security issues, social networking services integration, casual online gaming and multiplayer game engine and middleware.

Classical and innovative game genres architectures and deployment are studied and you have the opportunity to experiment and practice with the issues studied through the use of suitable middleware and libraries.

After completing the module, you will be able to research and select appropriate algorithms and techniques to solve a problem and then construct an implementation using a suitable graphics library such as OpenGL.

 

or Game Engine theme

Physics Simulation

You cover the physical laws and numerical methods you need for the development and enhancement of physical realism in 3D games – following on from the particle animation covered in a previous module. You review the linear particle physics and then introduce new concepts such as rigid bodies and moment of inertia.

On completion you are able to assess and implement the physics required to simulate a specific scenario, which may form part of a computer game.

This module:

  • introduces you to common physical behaviours of objects simulated in computer games discusses basic laws governing linear and circular motion of point masses
  • introduces more complex rigid body dynamics including distributed masses, articulation and multi-body systems
  • reviews reliable numerical methods for real-time simulations
  • discusses constrained systems with collision detection and contact.

Lectures cover the fundamental physics and implementation issues related to computer games. These sessions are intended to be interactive and you are expected to engage with the content in class.

In the practical/tutorial sessions weekly exercises are set covering topics from the lectures. We encourage you to work on these in informal peer groups. Feedback is given in lectures and tutorials.

Outside the formal teaching sessions we expect you to read around the subject, continue work on examples set in class and work on the development of the simulation scenario set for your in-course assessment.

Real-time Graphics

You extend your understanding and abilities in graphics programming to include efficient high-speed rendering of high-quality imagery. Emphasis is on the rendering of 3D virtual environments. It is useful for those interested in creating interactive, high-quality graphical applications such as computer games.

After completing the module, you will be able to research and select appropriate algorithms and techniques to solve a problem and then construct an implementation using a suitable graphics library such as OpenGL.

 

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.

Professional placement

During your degree we advertise a variety of paid placement opportunities (subject to availability). You can apply for a year-long supervised work placement between your second and final year. A placement gives you a valuable opportunity to improve your employment prospects by developing new skills and deepening your understanding of your subject.

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.

Our students have been placed in games companies, such as Eutechnyx, Rare, and Team 17, but also in organisations such as Schlumberger, Imagination Technologies, and IBM.

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

Call us on 0800 952 0226 about our entry requirements

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

What is KIS?

How to understand the Key Information Set

Course information

Full-time

  • Length: 3 years (or 4 including a work placement year)

More full-time details

2016 entry

Part-time

  • Not available part-time

Contact details

Open days

Undergraduate prospectusRequest a prospectus

If you would like more information about our courses or the University, please register with us.