G. Ullmann, Cristiano Politowski, Yann-Gael Gu'eh'eneuc, Fábio Petrillo
{"title":"游戏引擎比较解剖学","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":"{\"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}","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}
. 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.