IMT3603
Game Programming
Autumn
Gjøvik
English
About this 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 outcomes
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.
Teaching methods
- 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.