Game engines support video game development by providing functionalities such as graphics rendering or input/output device management. However, their architectures are often overlooked, which hinders their integration and extension. In this paper, we use an approach for architecture recovery to create architectural models for 10 open-source game engines. We use these models to answer the following questions: Which subsystems more often couple with one another? Do game engines share subsystem coupling patterns? We observe that the Low-Level Renderer, Platform Independence Layer and Resource Manager are frequently coupled to the game engine Core. By identifying the most frequent coupling patterns, we describe an emergent game engine architecture and discuss how it can be used by practitioners to improve system understanding and maintainability.
翻译:游戏引擎通过提供图形渲染、输入输出设备管理等功能支持视频游戏开发。然而,其架构常被忽视,阻碍了集成与扩展。本文采用架构恢复方法,为10个开源游戏引擎构建架构模型。利用这些模型回答以下问题:哪些子系统更常相互耦合?游戏引擎是否共享子系统耦合模式?我们观察到低级渲染器、平台无关层和资源管理器频繁与游戏引擎核心耦合。通过识别最常见的耦合模式,本文描述了一种新兴的游戏引擎架构,并探讨了从业者如何利用它提高系统理解与可维护性。