graph LR
Game_Engine_Core["Game Engine Core"]
C_Python_Interface["C++/Python Interface"]
Asset_Management["Asset Management"]
Data_Definition_Nyan_["Data Definition (Nyan)"]
Asset_Converter["Asset Converter"]
Configuration_Data["Configuration & Data"]
Game_Engine_Core -- "Executes C++ via" --> C_Python_Interface
Game_Engine_Core -- "Requests Assets from" --> Asset_Management
Game_Engine_Core -- "Manages State with" --> Configuration_Data
Game_Engine_Core -- "Parses Definitions with" --> Data_Definition_Nyan_
Asset_Converter -- "Generates Assets for" --> Asset_Management
Asset_Converter -- "Defines Assets using" --> Data_Definition_Nyan_
click Game_Engine_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/openage/Game_Engine_Core.md" "Details"
click C_Python_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/openage/C_Python_Interface.md" "Details"
click Data_Definition_Nyan_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/openage/Data_Definition_Nyan_.md" "Details"
click Asset_Converter href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/openage/Asset_Converter.md" "Details"
click Configuration_Data href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/openage/Configuration_Data.md" "Details"
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
Game Engine Core [Expand]
The central orchestrator of the game. It initializes all systems, runs the main game loop, and manages the overall game state and flow.
Related Classes/Methods:
openage/main/main.pyopenage/game/main.py
C++/Python Interface [Expand]
A critical bridge that allows the Python-based scripting and logic layers to communicate with the high-performance C++ backend, enabling efficient execution of core engine functionalities.
Related Classes/Methods:
openage/cppinterface/
Provides a unified system for managing and accessing game assets. It uses a virtual file system (fslike) to abstract asset sources, allowing the engine to load resources like graphics and sounds seamlessly.
Related Classes/Methods:
openage/assets/openage/util/fslike/
Data Definition (Nyan) [Expand]
Implements the engine's custom "Not Your Average Notation" (Nyan) data language. It is responsible for parsing .nyan files that define game objects, rules, and configurations.
Related Classes/Methods:
openage/nyan/
Asset Converter [Expand]
A standalone tool responsible for processing and converting raw game assets (e.g., from Age of Empires) into the engine's optimized format.
Related Classes/Methods:
openage/convert/main.pyopenage/convert/tool/driver.py
Configuration & Data [Expand]
Manages game configuration variables (cvar) and other dynamic game data. This allows for easy modification of settings and game state at runtime.
Related Classes/Methods:
openage/cvar/