Course - Game Programming - IMT3603
Game Programming
About
About the course
Course content
The lecture topics will focus on what the students need to know to to progress in the development of games using modern technology. The topics can include:
- Design patterns
- Graphics
- Physics in games
- Character development
- Animation
- Game specific AI
- Implementing game mechanics
- Game production process
- Project management in teams
- Memory management
- Algorithm efficiency
- Advanced programming techniques
Learning outcome
On completion of this course the students have:
Knowledge
The students can:
- explain the architecture and core subsystems of modern game engines (rendering, physics, input, animation, scripting, asset pipeline)
- describe how common design patterns (component-based design, state machines, event systems, ECS) are used in game programming
- explain how version control and continuous integration / continuous delivery (CI/CD) support game development workflows
- discuss typical approaches to game-specific AI (e.g. finite state machines, behaviour trees, navigation) and their impact on gameplay
- analyse social, cultural, and ethical issues in game development, including representation, player well-being, monetisation models, and online behaviour
Skills
The students can:
- design, implement, and iteratively refine a small but complete computer game as part of a group
- estimate the amount of effort required to implement various features in a computer game
- use project management tools to plan and monitor the development work
- integrate and manage assets (graphics, audio, animation) and implement basic UI/UX flows, including rapid GUI prototyping of interactions
- ask focused, critical questions about games, their mechanics, and the development process, and use the answers to guide design and implementation
General Competence
The students can:
- collaborate effectively in a development team, including taking roles, handling dependencies, and reflecting on group communication and dynamics
- give and receive specific, constructive criticism on game design, code, and player experience in a professional manner
- document the game and its development process (design documents, technical notes, changelogs) and present the results in both written and oral form
- reflect on their own strengths and weaknesses as game programmers and team members, and identify concrete steps for further professional development
This is a group project and so a significant part of the learning outcomes are related to working in a group and being able to scope the time taken to design and implement a game.
Learning methods and activities
- Lectures
- Exercises
- Project work
Further information: Students will work in groups to develop a game. In-class exercises and lectures will be linked to the current stage of the development process.
Further on evaluation
Assessment forms: One large project, which will include regular presentations of progress, and a video of the gameplay of the final product and a video description of the code developed. In cases where groups break down and are unable to work together students will be given an oral exam to assess their ability and learning. Re-sit: None
Specific conditions
Admission to a programme of study is required:
Computer Science - Engineering (BIDATA) - some programmes
Programming (BPROG)
Recommended previous knowledge
Course materials
Online materials and tutorials. Suggested reading will be provided at the beginning of the course.
Credit reductions
| Course code | Reduction | From |
|---|---|---|
| IMT3601 | 7.5 sp | Autumn 2022 |
Subject areas
- Information Technology and Informatics