AbstractThis 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.
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: Submission of written work with following oral, External (7-point scale)
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.