  Game engines are tools to facilitate video game development. They provide
graphics, sound, and physics simulation features, which would have to be
otherwise implemented by developers. Even though essential for modern
commercial video game development, game engines are complex and developers
often struggle to understand their architecture, leading to maintainability and
evolution issues that negatively affect video game productions. In this paper,
we present the Subsystem-Dependency Recovery Approach (SyDRA), which helps game
engine developers understand game engine architecture and therefore make
informed game engine development choices. By applying this approach to 10
open-source game engines, we obtain architectural models that can be used to
compare game engine architectures and identify and solve issues of excessive
coupling and folder nesting. Through a controlled experiment, we show that the
inspection of the architectural models derived from SyDRA enables developers to
complete tasks related to architectural understanding and impact analysis in
less time and with higher correctness than without these models.
