1 free read left. Create a free account for unlimited reading + AI research.
Create free accountWhitepaperConcordia University
This analysis explores the architectural commonalities and differences between game engines by comparing the call graphs of two open-source C++ engines: Godot 3.4.4 and Urho3D 1.8. The primary objective is to move beyond surface-level feature comparisons and gain insight into how engine subsystems—such as graphics, physics, and audio—are organized, initialized, and integrated. By utilizing the Callgrind profiling tool, the study captures execution order, frequency, and method calls during the startup of a base game project, providing a high-level view of engine design that static analysis alone cannot offer.
The findings indicate that while Godot and Urho3D share a similar feature set, their internal execution flows differ significantly. For instance, Godot prioritizes window initialization before scene creation, whereas Urho3D initializes graphics objects first. Both engines exhibit a tendency to initialize various subsystems, such as UI and class registration, even when those features are not utilized by the base project. The analysis confirms that profiling tools are effective for visualizing the division of responsibilities within an engine, though the results remain dependent on the specific runtime environment and the active features triggered during the execution.
The research concludes that while game engines generally follow similar architectural structures to support standard development requirements, they diverge in their specific implementation of core tasks. This work serves as a foundation for future comparative studies, which aim to incorporate static analysis and broader engine samples, including proprietary solutions like Unreal Engine 5. By mapping these architectural patterns, the study seeks to better understand how design choices influence long-term engine performance, maintainability, and overall flexibility.
Comments