Table of Contents
Fetching ...

SyDRA: An Approach to Understand Game Engine Architecture

Gabriel C. Ullmann, Yann-Gaël Guéhéneuc, Fabio Petrillo, Nicolas Anquetil, Cristiano Politowski

TL;DR

SyDRA addresses the challenge of understanding complex game engine architectures by recovering subsystem dependencies to produce architectural maps. It combines six analysis steps (system and subsystem selection, detection, include-graph generation, model generation, and visualization) and uses Moose for interactive visualization, enabling measurement of coupling and cohesion with $In\text{-}degree$, $Out\text{-}degree$, and Betweenness Centrality. Applied to 10 open-source engines and evaluated in a controlled experiment with 16 developers, SyDRA led to faster architectural-understanding tasks and maintained or improved correctness in impact analysis, without increasing perceived workload. The work provides practical insights for reducing coupling and improving folder cohesion, and lays a foundation for cross-engine comparisons and future extensions to broader software domains in game development tooling.

Abstract

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.

SyDRA: An Approach to Understand Game Engine Architecture

TL;DR

SyDRA addresses the challenge of understanding complex game engine architectures by recovering subsystem dependencies to produce architectural maps. It combines six analysis steps (system and subsystem selection, detection, include-graph generation, model generation, and visualization) and uses Moose for interactive visualization, enabling measurement of coupling and cohesion with , , and Betweenness Centrality. Applied to 10 open-source engines and evaluated in a controlled experiment with 16 developers, SyDRA led to faster architectural-understanding tasks and maintained or improved correctness in impact analysis, without increasing perceived workload. The work provides practical insights for reducing coupling and improving folder cohesion, and lays a foundation for cross-engine comparisons and future extensions to broader software domains in game development tooling.

Abstract

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.
Paper Structure (22 sections, 13 figures, 5 tables)

This paper contains 22 sections, 13 figures, 5 tables.

Figures (13)

  • Figure 1: Steps of our game engine analysis approach.
  • Figure 3: Graph metrics used in our analysis of SyDRA's results
  • Figure 4: Architectural Map showing files containing the word "camera" from Godot
  • Figure 5: Unreal Engine's architectural model.
  • Figure 6: FlaxEngine include relationships between subsystems and Third-Party SDKs (SDK)
  • ...and 8 more figures