학술논문

An Exploratory Approach for Game Engine Architecture Recovery
Document Type
Conference
Source
2023 IEEE/ACM 7th International Workshop on Games and Software Engineering (GAS) GAS Games and Software Engineering (GAS), 2023 IEEE/ACM 7th International Workshop on. :8-15 May, 2023
Subject
Computing and Processing
Video games
Games
Computer architecture
Software quality
Visual effects
Rendering (computer graphics)
Resource management
software architecture
game engines
coupling
game development
Language
Abstract
Game engines provide video game developers with a wide range of fundamental subsystems for creating games, such as 2D/3D graphics rendering, input device management, and audio playback. Developers often integrate these subsystems with other applications or extend them via plugins. To integrate or extend correctly, developers need a broad system architectural understanding. However, architectural information is not always readily available and is often overlooked in this kind of system. In this work, we propose an approach for game engine architecture recovery and explore the architecture of three popular open-source game engines (Cocos2d-x, Godot, and Urho3D). We perform manual subsystem detection and use Moose, a platform for software analysis, to generate architectural models. With these models, we answer the following questions: Which subsystems are present in game engines? Which subsystems are more often coupled with one another? Why are these subsystems coupled with each other? Results show that the platform independence, resource management, world editor, and core subsystems are frequently included by others and therefore act as foundations for the game engines. Furthermore, we show that, by applying our approach, game engine developers can understand whether subsystems are related and divide responsibilities. They can also assess whether relationships among subsystems are appropriate for the game engine.