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 open-source engines to understand architectural patterns and their impact on aspects such as performance and maintenance.
翻译:视频游戏开发者使用游戏引擎作为工具来管理游戏开发的复杂方面。 虽然引擎在游戏的成功方面起着很大的作用, 并且我们最清楚的是, 引擎往往是以封闭源码的方式, 以封闭源码的方式开发的, 没有建筑讨论、 比较和项目之间的协作。 在这项工作中, 我们比较两个开放源码引擎的调用图表: Godot 3. 4. 4 和 Urho3D 1. 8。 虽然静态分析工具可以为我们提供没有精确调用图解路径的全景, 但使用 Callagrind 这样的配置仪可以让我们也查看调用顺序和频率。 这些图形让我们洞察到引擎的设计。 我们显示, 通过使用 Callgrind, 我们可以得到对引擎结构的高级视图, 可用于理解它。 在今后的工作中, 我们打算将动态和静态分析应用到其他开源引擎上, 来理解建筑模式及其对性能和维护等方面的影响 。