Game Engine Comparative Anatomy
Gabriel C. Ullmann, Cristiano Politowski, Yann-Ga\"el Gu\'eh\'eneuc,, Fabio Petrillo

TL;DR
This paper compares the architectures of two open-source game engines, Godot and Urho3D, using call graph analysis with Callgrind to gain insights into their design and performance implications.
Contribution
It demonstrates how dynamic analysis with Callgrind can reveal architectural insights of game engines, facilitating comparison and understanding of their design choices.
Findings
Callgrind reveals call order and frequency in engine architectures.
High-level architectural insights can be derived from call graph analysis.
Method can be applied to other engines for architectural comparison.
Abstract
Video game developers use game engines as a tool to manage complex aspects of game development. While engines play a big role in the success of games, to the best of our knowledge, they are often developed in isolation, in a closed-source manner, without architectural discussions, comparison, and collaboration among projects. In this work in progress, we compare the call graphs of two open-source engines: Godot 3.4.4 and Urho3D 1.8. While static analysis tools could provide us with a general picture without precise call graph paths, the use of a profiler such as Callgrind allows us to also view the call order and frequency. These graphs give us insight into the engines' designs. We showed that, by using Callgrind, we can obtain a high-level view of an engine's architecture, which can be used to understand it. In future work, we intend to apply both dynamic and static analysis to other…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsArtificial Intelligence in Games · Digital Games and Media · Scientific Computing and Data Management
