Official course description:
This course teaches fundamental techniques for using C++ efficiently to implement 2D and 3D games.
Students learn the basics of game programming using both 2D and 3D graphics. They learn to integrate a physics engine and how game loops and time steps work.
After the course students are familiar with component architectures and other game programming patterns.
This course covers the following topics:
- Understanding the design and architecture of existing game engines
- Design and implementation of game engine components
- Efficient programming in C++
- Best practices for game programming from software engineering and system architecture
Formal prerequisitesThe essential skills and requirements are: - Good programming ability, since the course will involve several programming exercises and a final projects. - Basic mathematics understanding. Geometry, matrix algebra, etc. ----- Information about the course of study This course is mandatory for students who are enrolled in Master of Science in IT, study programme Games, Technology track.
Intended learning outcomes
After the course, the student should be able to:
- Design and implement components for a modern game engine using best practices of software engineering.
- Manage resources and memory in C++ efficiently.
- Create game engine modules with high cohesion and low coupling.
- Optimize performance bottlenecks on both the CPU and GPU.
- Generalize about the structure of, and similarities and differences between, modern 3D game engines.
- Implementing basic components of a game engine.
- Describe why system programming languages, such as C++, is needed in the games industry.
Ordinary examExam type:
D: Written report with oral defence, external (7-trinsskala)
.D22: Hand-in with following oral exam supplemented by the hand-in The duration of the oral exam is 30 minutes. The final submission consists of a game (source code and binaries) including a report about the project. The exam will cover both the curriculum as well the project. The exam project should be created in groups of maximum 3 people.