This paper presents a structured series of lessons for teaching undergraduate computer science or game development students how to construct a game engine using C++ and standard graphics APIs such as OpenGL or DirectX. Our proposed course content discusses rendering topics, game object management, scene management, and rigid body physics where learners are tasked to incorporate them into a fully functional prototype scene editor. By incorporating actual coding into the course, students can gain a better understanding of low-level engine features and also hone their programming skills. In addition to the learning content, we provide recommended assessment methods. We include discussions about our teaching experience in handling a game engine architecture course, titled GDENG03, which 36 students have passed. Our paper stands out from related works by providing a framework for interested educators on how to write a 3D game engine and how to teach the same in class. Based on our actual delivery of GDENG03, all 36 students achieved high scores of >80% out of 100 which demonstrates the effectiveness of our learning content. We received positive student feedback, such as a better appreciation of game engines, while suggestions for course improvement were raised, such as using simpler terminologies and better workload management. Based on student scores and feedback, we can attribute the success of our students’ learning to our inclusion of practical coding examples and discussions, highlighting their relevance to mainstream game engines. The learning materials and accompanying source code can be accessed in the following link: .
Read full abstract