G. Ullmann, Cristiano Politowski, Yann-Gael Gu'eh'eneuc, Fábio Petrillo
{"title":"Game Engine Comparative Anatomy","authors":"G. Ullmann, Cristiano Politowski, Yann-Gael Gu'eh'eneuc, Fábio Petrillo","doi":"10.48550/arXiv.2207.06473","DOIUrl":null,"url":null,"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 devel-oped in isolation, in a closed-source manner, without architectural dis-cussions, 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 open-source engines to understand architectural patterns and their impact on aspects such as performance and maintenance.","PeriodicalId":420045,"journal":{"name":"International Conference on Evolutionary Computation","volume":"25 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-07-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Evolutionary Computation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.48550/arXiv.2207.06473","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
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 devel-oped in isolation, in a closed-source manner, without architectural dis-cussions, 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 open-source engines to understand architectural patterns and their impact on aspects such as performance and maintenance.