GAMES PROGRAMMING TECHNIQUES - 2026/7

Module code: DMA2020

Module Overview

Programming is a valuable skill which is the bedrock of video games design and development. This module builds upon the programming knowledge and scripting skills students develop in their first year and looks in more depth at programming techniques with languages such as C++. You will learn how to programme games using simple graphical libraries, rather than relying on existing video game engines. By taking this more stripped-back approach to coding you will gain a deeper understanding of how programming languages interface with the memory and hardware architecture of computers and games consoles. You will also take part in coding reviews, where you peer-review coding techniques with your classmates, providing space to discuss and enhance your understanding of best practices. By engaging in these coding reviews, you will be gaining experience of practices which are widely used by programmers in the video games indust. This module takes students on the next stage of their programming journey, as they go beyond standard video game engines and apply their programming skills in various contexts and with different technologies. As such, it provides a foundation for other games design and programming modules on the degree, including modules that utilise coding in the second and final year of the programme.

Module provider

Music & Media

Module Leader

WEINEL Jon (Music & Med)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 5

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 96

Lecture Hours: 12

Laboratory Hours: 24

Guided Learning: 12

Captured Content: 6

Module Availability

Semester 1

Prerequisites / Co-requisites

N/A

Module content

Indicative content includes: 

  • Programming with languages such as C++
  • Relationships between code memory and hardware
  • Gameplay programming
  • Coding mechanics and behaviours
  • Graphical libraries
  • Compilers
  • Coding reviews
  • Coding style and best practices
  • Applied object-oriented techniques
  • Designing and planning gameplay mechanics
  • Developing gameplay mechanics

Assessment pattern

Assessment type Unit of assessment Weighting
Coursework Weekly Lab Tasks 30
Coursework Programming Project with Report 70

Alternative Assessment

N/A

Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate achievement of the module learning outcomes. Laboratory sessions provide students with a series of structured tasks that they will submit and complete, providing the foundations for this module. Building on this, a substantive programming project will give scope for indepedence and flexibility in applying the concepts learned on the module. Students will thereby be assessed on their ability to analyse and apply coding techniques, design and test gameplay solutions, and situate their creative and technical work. 

Assessment 1: Weekly Lab Tasks

This summative assessment is an opportunity for students to demonstrate their understanding of the games programming techniques on the module, by submitting their completed solutions to a series of lab tasks.

Assessment 2: Programming Project with Report

This summative assessment represents a culmination of the module's output with students presenting a substantive programming project and report, which provides scope to apply the principles of the module on an indepedent project. 

Formative assessment and feedback will be provided throughout this module during lectures and labs. Lab sessions will provide opportunities for students to receive feedback from the tutors on their work-in-progress. This module will also incorporate coding reviews, in which students will engage in peer-review feedback sessions with each other, fostering peer-learning and developing communication skills for discussing programming, modelling practices used in industry.

Module aims

  • Extend and deepen the understanding of programming game mechanics for video games
  • Gain experience of programming and compiling using simple graphical libraries
  • Develop an improved awareness of how programming interfaces with memory and system architecture
  • Provide experience of evaluating programming techniques and taking part in code reviews
  • Develop improved communication skills for articulating programming strategies and problems using appropriate terminology

Learning outcomes

Attributes Developed
001 Apply complex programming concepts to design gameplay mechanics using graphical libraries CKP
002 Demonstrate an understanding of how programming languages interface with memory and hardware architecture CKP
003 Evaluate and review programming techniques to critically assess the strategies used CPT
004 Communicate and reflect on programming techniques utilised and justify decisions using appropriate terminology KPT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

The learning and teaching strategy is designed to support students in developing programming skills and thinking which builds upon their earlier study of coding on the games degree. Students will adapt their existing programming skills to explore other languages such as C++ which they may not have encountered yet. The module also moves away from scripting in the context of game engines, in favour of programming with simple graphical libraries. Students will be guided through a series of programming tasks before being challenged to apply these to their own game project which gives scope for flexibility and indepedence. The module also builds in code reviews, giving students experience of peer feedback techniques in coding, which are widely used in industry.

The learning and teaching methods on this module include lectures and labs. Lectures will introduce fundamental programming principles and provide space for discussion about programming techniques. Labs will provide students with structured programming tasks, and later the opportunity to work on a game project which fosters increased indepedence and problem solving. Feedback will be provided both by tutors and through peer code review exercises, allowing students to iteratively improve their programming techniques, building resilience and communication skills which will help them to pursue programming roles and/or roles where working and communicating with programmers is necessary.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: DMA2020

Other information

The Department of Music and Media is committed to developing graduates with attributes encompassing Employability, Digital Capabilities, Global and Cultural Capabilities, Sustainability, and Resourcefulness and Resilience. 

Employability: This module deepens the technical expertise of students and their problem solving abilities when working with games programming techniques. These skills complement a range of specialist disciplines and industry roles, preparing students for work in roles such as gameplay programming, technical design, technical art, technical audio design and others. 

Digital Capabilities: Digital capability is fundamental to this module, which immerses students in the technologies and workflows used across professional game development. Through this work, students develop not only their coding skills but also their understanding of how different technologies interact to support complex production processes. 

Global and Cultural Capabilities: The module recognises that games technology and digital tools are part of a global creative and technical ecosystem. Where relevant, students are encouraged to consider how technical tools, workflows, and coding practices are shared and adapted across diverse studios, cultures, and platforms worldwide.

Sustainability: Where relevant this module will encourage students to engage with sustainable production practices. Students will consider aspects such as efficiency in code and the implications and impact of AI technologies within modern workflows.

Resourcefulness and Resilience: Developing technical systems with games programming techniques requires persistence, experimentation, and problem-solving. Students will be challenged to design, test, and debug their own code and tools, learning to adapt to problems and revise their solutions based on feedback. These activities help students to build confidence, independence, and the resilience required to work effectively in professional technical and creative contexts. 

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2026/7 academic year.