Constructing a game engine: A proposed game engine architecture course for undergraduate students

Neil Patrick Del Gallego
DOI: https://doi.org/10.1016/j.entcom.2024.100657
IF: 2.072
2024-03-16
Entertainment Computing
Abstract: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. Once the paper is accepted, we will provide a public link to our learning materials that contains the working source code, PowerPoint files, and recorded lectures.
computer science, cybernetics, interdisciplinary applications, software engineering
What problem does this paper attempt to address?