# ryuu3160/directx11_base architecture

> Architecture diagram of the GitHub repository ryuu3160/directx11_base, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-05-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ryuu3160/directx11_base
- Repository: https://github.com/ryuu3160/directx11_base

## Overview

1. **What this repo is**
   This is a Windows C++ DirectX 11 game framework, not a single game. The codebase is organized as an engine plus reusable gameplay/system layers, with assets and generated binaries checked in alongside source.

2. **Top-level build and project structure**
   The solution `DirectX11_Base.sln` builds the engine project `DirectX11_Base.vcxproj`. A separate `ProjectSetUp.exe` and template project under `Engine/Templates/ProjectTemplate` indicate the framework is intended to spawn or rename game projects from a standard skeleton.

3. **Runtime entry path**
   Execution starts in `Engine/EntryPoint/Main.cpp` and `EntryPoint.cpp`, which hand off into the engine/project layer. The project-facing abstraction lives under `Engine/Core/System/Project`, where `GameProject` and `NuGetRestore` suggest project initialization, dependency setup, and launch orchestration happen before the actual scene loop.

4. **Core engine boundary**
   The main engine boundary is `Engine/Core/DirectX11`. This contains the DirectX 11 device/core layer, render context, render manager, shader/resource abstractions, and concrete renderer classes. Everything here is responsible for translating engine objects into GPU work.

5. **Rendering pipeline**
   Rendering is split into specialized render components and renderer implementations:
   - `ModelRenderer`, `SpriteRenderer`, `SkyBoxRenderer`, `RTSpriteRenderer`, `LineRenderer`, `InstancedModelRenderer`
   - `RenderComponent` acts as the common bridge between scene objects and the renderer layer
   - `RenderManager` and `RenderContext` coordinate frame-level draw submission
   The checked-in HLSL shaders and compiled `.cso` binaries show a data flow from source shader files to precompiled runtime assets.

6. **Resource and asset management**
   The engine centralizes asset loading through managers for models, textures, shaders, materials, instanced models, and render targets. Resource types live in `Engine/Core/DirectX11/Resource`, while loader/cache orchestration is in `ResourceManager`. This boundary keeps file parsing and GPU resource creation separate from scene logic.

7. **Scene, object, and component model**
   Gameplay state is organized with `SceneRoot`/`SceneBase` at the scene layer, `Object`/`GameObject`/specialized objects at the entity layer, and `Component` subclasses for behavior. Key components include `Transform`, `Camera`, `MovementComponent`, `PlayerController`, and colliders. `ComponentRegistry` and the `Generated` folder suggest a code-generated registration system for attaching components dynamically.

8. **Simulation systems**
   Several cross-cutting systems operate on the scene graph:
   - `InputSystem` and `Input` handle player/device input
   - `CollisionManager` with `OctreeCell`/`TreeData` provides spatial collision management
   - `CameraManager` manages active camera selection/control
   - `FadeManager` handles transition effects
   - `SoundManager` drives BGM/SE playback from the `Assets/Sound` tree
   These systems are separate from rendering and are likely updated each frame before draw submission.

9. **Editor and debug tooling**
   The framework includes built-in editor/debug support:
   - `DebugManager` with ImGui windows, modals, popups, and item abstractions
   - `SpriteManager` with hierarchy, inspector, loader, scene selector, and window classes
   - `imgui.ini`, `DebugManagerData.csv`, and sprite JSON/CSV files show UI/editor state is data-driven
   The readme’s hotkey note indicates the sprite manager is runtime-accessible, not a separate tool.

10. **Data-driven content formats**
   Several asset formats define behavior without code changes:
   - Scenes: `Assets/Data/Scene/Root.cpon`
   - Sprite editor data: `Sprites.json`, `Scenes.csv`, scene-specific sprite JSON files
   - Model material bindings: `*_MaterialShaderInfo.csv`
   - Debug configuration: `DebugManagerData.csv`
   These files are the main content/config boundary between artists/designers and engine code.

11. **Shader/material binding rules**
   The readme documents a strict contract between CPU-side shader parameter packing and HLSL registers. Material-specific shader selection is driven by `*_MaterialShaderInfo.csv`, and pixel shader constant buffers must align with `ShaderInfo` slot numbers. This means the engine’s material system is not just a file loader; it is the mechanism for per-material GPU binding.

12. **Assets and compiled outputs**
   The asset tree contains source models (`.fbx`, `.obj`, `.blend`), compiled shader objects (`.cso`), fonts/icons, and audio. Runtime code appears to prefer preprocessed binaries for shaders and content files for models/textures/sounds. The presence of `DirectXTex`, `ImGui`, `NlohmannJson`, bundled Python, and NuGet indicates the repo is self-contained for asset processing and editor functionality.

13. **Generated and scripted build support**
   `BuildScripts/GenerateComponentRegistry.py`, `ProjectPreBuild.bat`, and `RunCodeGeneration.bat` show the build is augmented by generation steps. The engine also includes templates and helper utilities for Visual Studio/project file management, which reinforces that repository architecture includes both runtime code and project scaffolding.

14. **Useful diagram boundaries**
   If you draw this architecture, the key boxes are:
   - Project bootstrap / template setup
   - Engine core and DirectX11 backend
   - Scene/object/component gameplay layer
   - Resource loading and GPU resource management
   - Debug/editor UI subsystems
   - Asset/data files and generated binaries
   - External libs and build-time tooling
   The main data flow is: content files and generated metadata → resource managers / scene loaders → runtime components and systems → render submission through DirectX 11 → shaders/GPU output.

Main entry points: [`DirectX11_Base/Engine/Core/System/Scene/SceneRoot.cpp`](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Scene/SceneRoot.cpp) (Scene Root), [`DirectX11_Base/Engine/Core/System/Project/GameProject.cpp`](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Project/GameProject.cpp) (Project Setup), [`DirectX11_Base/Engine/Core/DirectX11/ResourceManager/ModelManager.cpp`](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/ResourceManager/ModelManager.cpp) (Resource Managers), [`DirectX11_Base/Engine/Core/System/Managers/DebugManager/DebugManager.cpp`](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/DebugManager/DebugManager.cpp) (Debug UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_grp_bootstrap["Bootstrap"]
  node_node_solution["Solution<br/>build<br/>[DirectX11_Base.sln]"]
  node_node_entrypoint["Entry Point<br/>runtime start<br/>[Main.cpp]"]
  node_node_project["Project Setup<br/>scaffold<br/>[GameProject.cpp]"]
  node_node_template["Project Template"]
end

subgraph group_grp_engine_core["Engine Core"]
  node_node_dx11core["DX11 Core<br/>engine backend<br/>[DX11_Core.cpp]"]
  node_node_renderctx["Render Context<br/>frame submit<br/>[RenderContext.cpp]"]
  node_node_rendermgr["Render Manager<br/>frame orchestrator<br/>[RenderManager.cpp]"]
end

subgraph group_grp_gameplay["Gameplay Model"]
  node_node_scene["Scene Root<br/>scene model<br/>[SceneRoot.cpp]"]
  node_node_objects["Game Objects<br/>entity layer<br/>[GameObject.cpp]"]
  node_node_components["Components<br/>behavior model<br/>[Component.cpp]"]
  node_node_registry["Component Registry<br/>generated binding"]
  node_node_input["Input<br/>[InputSystem.cpp]"]
  node_node_collision["Collision<br/>spatial query"]
  node_node_camera["Camera Manager<br/>view control<br/>[CameraManager.cpp]"]
  node_node_sound["Sound Manager<br/>audio<br/>[SoundManager.cpp]"]
end

subgraph group_grp_rendering["Rendering"]
  node_node_resman["Resource Managers<br/>asset cache<br/>[ModelManager.cpp]"]
  node_node_resources["GPU Resources<br/>resource layer<br/>[Shader.cpp]"]
  node_node_renderers["Renderers<br/>draw stages<br/>[ModelRenderer.cpp]"]
  node_node_shaders["Shaders<br/>HLSL + cso<br/>[VS_Model.hlsl]"]
end

subgraph group_grp_tools["Tools"]
  node_node_debugui["Debug UI<br/>editor runtime<br/>[DebugManager.cpp]"]
  node_node_sprite["Sprite Manager<br/>editor tool<br/>[SpriteManager.cpp]"]
end

subgraph group_grp_assets["Content"]
  node_node_assets["Assets<br/>content tree<br/>[Root.cpon]"]
  node_node_thirdparty["Third Party<br/>vendor libs<br/>[imgui.cpp]"]
  node_node_buildscripts["Build Scripts<br/>codegen/build"]
end

node_node_solution -->|"builds"| node_node_entrypoint
node_node_solution -->|"includes"| node_node_project
node_node_project -->|"spawns"| node_node_template
node_node_entrypoint -->|"launches"| node_node_project
node_node_project -->|"initializes"| node_node_dx11core
node_node_dx11core -->|"creates"| node_node_renderctx
node_node_renderctx -->|"drives"| node_node_rendermgr
node_node_rendermgr -->|"dispatches"| node_node_renderers
node_node_renderers -->|"uses"| node_node_resources
node_node_resman -->|"loads"| node_node_resources
node_node_assets -->|"feeds"| node_node_resman
node_node_shaders -->|"compiles to"| node_node_resources
node_node_scene -->|"contains"| node_node_objects
node_node_objects -->|"composes"| node_node_components
node_node_components -->|"registers via"| node_node_registry
node_node_scene -->|"updates"| node_node_input
node_node_scene -->|"updates"| node_node_collision
node_node_scene -->|"updates"| node_node_camera
node_node_scene -->|"updates"| node_node_sound
node_node_scene -->|"exposes"| node_node_debugui
node_node_debugui -->|"shares ui"| node_node_sprite
node_node_assets -->|"defines"| node_node_scene
node_node_buildscripts -->|"generates"| node_node_registry
node_node_buildscripts -->|"supports"| node_node_template
node_node_thirdparty -->|"powers"| node_node_debugui
node_node_thirdparty -->|"supports"| node_node_resman

click node_node_solution "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base.sln"
click node_node_entrypoint "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/EntryPoint/Main.cpp"
click node_node_project "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Project/GameProject.cpp"
click node_node_template "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Templates/ProjectTemplate/GameProject.vcxproj"
click node_node_dx11core "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/DX11_Core.cpp"
click node_node_renderctx "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/System/RenderContext.cpp"
click node_node_rendermgr "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/System/RenderManager.cpp"
click node_node_scene "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Scene/SceneRoot.cpp"
click node_node_objects "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Object/GameObject.cpp"
click node_node_components "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Component/Component.cpp"
click node_node_registry "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Component/ComponentRegistry.cpp"
click node_node_input "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Input/InputSystem.cpp"
click node_node_collision "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/CollisionManager/CollisionManager.cpp"
click node_node_camera "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/CameraManager.cpp"
click node_node_sound "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/SoundManager.cpp"
click node_node_debugui "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/DebugManager/DebugManager.cpp"
click node_node_sprite "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/SpriteManager/SpriteManager.cpp"
click node_node_resman "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/ResourceManager/ModelManager.cpp"
click node_node_resources "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/Resource/ShaderResource/Shader.cpp"
click node_node_renderers "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/Renderer/ModelRenderer.cpp"
click node_node_shaders "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Shaders/VertexShader/VS_Model.hlsl"
click node_node_assets "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Assets/Data/Scene/Root.cpon"
click node_node_thirdparty "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/ThirdParty/ImGui/imgui.cpp"
click node_node_buildscripts "https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/BuildScripts/GenerateComponentRegistry.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_node_solution,node_node_entrypoint,node_node_project,node_node_template toneBlue
class node_node_dx11core,node_node_renderctx,node_node_rendermgr toneAmber
class node_node_scene,node_node_objects,node_node_components,node_node_registry,node_node_input,node_node_collision,node_node_camera,node_node_sound toneMint
class node_node_resman,node_node_resources,node_node_renderers,node_node_shaders toneRose
class node_node_debugui,node_node_sprite toneIndigo
class node_node_assets,node_node_thirdparty,node_node_buildscripts toneTeal
```

## Components

### Bootstrap

Solution, entrypoint, and project/template setup.

- [Solution](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base.sln): build · Top-level Visual Studio solution that builds the engine project. · `DirectX11_Base.sln`
- [Entry Point](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/EntryPoint/Main.cpp): runtime start · Process start and handoff into engine initialization. · `DirectX11_Base/Engine/EntryPoint/Main.cpp`
- [Project Setup](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Project/GameProject.cpp): scaffold · Project bootstrap, NuGet restore, and template-based game project creation. · `DirectX11_Base/Engine/Core/System/Project/GameProject.cpp`
- [Project Template](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Templates/ProjectTemplate/GameProject.vcxproj): template · Reusable skeleton used to spawn or rename game projects. · `DirectX11_Base/Engine/Templates/ProjectTemplate/GameProject.vcxproj`

### Engine Core

DirectX 11 runtime core and frame orchestration.

- [DX11 Core](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/DX11_Core.cpp): engine backend · DirectX 11 device/core boundary and low-level engine backend. · `DirectX11_Base/Engine/Core/DirectX11/DX11_Core.cpp`
- [Render Context](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/System/RenderContext.cpp): frame submit · Per-frame render state and draw submission coordination. · `DirectX11_Base/Engine/Core/DirectX11/System/RenderContext.cpp`
- [Render Manager](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/System/RenderManager.cpp): frame orchestrator · Coordinates renderer execution across the frame. · `DirectX11_Base/Engine/Core/DirectX11/System/RenderManager.cpp`

### Gameplay Model

Scene, objects, components, and cross-cutting gameplay systems.

- [Scene Root](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Scene/SceneRoot.cpp): scene model · Scene lifecycle and root scene ownership. · `DirectX11_Base/Engine/Core/System/Scene/SceneRoot.cpp`
- [Game Objects](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Object/GameObject.cpp): entity layer · Base object hierarchy for gameplay entities and specialized scene objects. · `DirectX11_Base/Engine/Core/System/Object/GameObject.cpp`
- [Components](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Component/Component.cpp): behavior model · Attachable behavior and state modules for objects. · `DirectX11_Base/Engine/Core/System/Component/Component.cpp`
- [Component Registry](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Component/ComponentRegistry.cpp): generated binding · Generated component registration and dynamic attachment support. · `DirectX11_Base/Engine/Core/System/Component/ComponentRegistry.cpp`
- [Input](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Input/InputSystem.cpp): device input · Input state capture and per-frame input processing. · `DirectX11_Base/Engine/Core/System/Input/InputSystem.cpp`
- [Collision](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/CollisionManager/CollisionManager.cpp): spatial query · Collision management and octree-based spatial partitioning. · `DirectX11_Base/Engine/Core/System/Managers/CollisionManager/CollisionManager.cpp`
- [Camera Manager](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/CameraManager.cpp): view control · Tracks and selects active camera control. · `DirectX11_Base/Engine/Core/System/Managers/CameraManager.cpp`
- [Sound Manager](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/SoundManager.cpp): audio · BGM and sound effect playback orchestration. · `DirectX11_Base/Engine/Core/System/Managers/SoundManager.cpp`

### Rendering

GPU-facing renderers, resources, and shader pipeline.

- [Resource Managers](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/ResourceManager/ModelManager.cpp): asset cache · Model, texture, shader, material, instanced model, and render target caching. · `DirectX11_Base/Engine/Core/DirectX11/ResourceManager/ModelManager.cpp`
- [GPU Resources](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/Resource/ShaderResource/Shader.cpp): resource layer · Meshes, textures, materials, shaders, and shader parameters. · `DirectX11_Base/Engine/Core/DirectX11/Resource/ShaderResource/Shader.cpp`
- [Renderers](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/DirectX11/Renderer/ModelRenderer.cpp): draw stages · Specialized renderers for models, sprites, skyboxes, lines, instancing, and render-target sprites. · `DirectX11_Base/Engine/Core/DirectX11/Renderer/ModelRenderer.cpp`
- [Shaders](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Shaders/VertexShader/VS_Model.hlsl): HLSL + cso · Source HLSL and precompiled shader binaries used by the renderers. · `DirectX11_Base/Engine/Shaders/VertexShader/VS_Model.hlsl`

### Tools

Editor/debug UI and content authoring helpers.

- [Debug UI](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/Managers/DebugManager/DebugManager.cpp): editor runtime · ImGui-based debug windows, modals, popups, and item controls. · `DirectX11_Base/Engine/Core/System/Managers/DebugManager/DebugManager.cpp`
- [Sprite Manager](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Core/System/SpriteManager/SpriteManager.cpp): editor tool · Runtime-accessible sprite/editor management and scene selection UI. · `DirectX11_Base/Engine/Core/System/SpriteManager/SpriteManager.cpp`

### Content

Checked-in assets, prebuilt binaries, and data-driven config.

- [Assets](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/Assets/Data/Scene/Root.cpon): content tree · Checked-in models, textures, sounds, debug data, and scene data. · `DirectX11_Base/Engine/Assets/Data/Scene/Root.cpon`
- [Third Party](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/ThirdParty/ImGui/imgui.cpp): vendor libs · Bundled libraries and runtimes such as ImGui, DirectXTex, NlohmannJson, NuGet, and Python. · `DirectX11_Base/Engine/ThirdParty/ImGui/imgui.cpp`
- [Build Scripts](https://github.com/ryuu3160/directx11_base/blob/master/DirectX11_Base/Engine/BuildScripts/GenerateComponentRegistry.py): codegen/build · Prebuild, registry generation, and code-generation helpers. · `DirectX11_Base/Engine/BuildScripts/GenerateComponentRegistry.py`

## Connections

- Solution → Entry Point: builds · The solution builds the executable entry path.
- Solution → Project Setup: includes · Engine project and setup code are part of the solution.
- Project Setup → Project Template: spawns · Template project files define the reusable game-project skeleton.
- Entry Point → Project Setup: launches · Entrypoint hands off into project initialization.
- Project Setup → DX11 Core: initializes · Project bootstrap leads into the engine backend.
- DX11 Core → Render Context: creates · Backend creates and feeds the render context.
- Render Context → Render Manager: drives · Frame context is consumed by the render manager.
- Render Manager → Renderers: dispatches · Manager dispatches work to specialized renderers.
- Renderers → GPU Resources: uses · Renderers consume GPU resources and shader bindings.
- Resource Managers → GPU Resources: loads · Resource managers build and cache GPU-facing resources.
- Assets → Resource Managers: feeds · Checked-in content is the source for runtime loading.
- Shaders → GPU Resources: compiles to · HLSL source is compiled into runtime shader binaries and consumed as resources.
- Scene Root → Game Objects: contains · Scenes own the object hierarchy.
- Game Objects → Components: composes · Objects are extended by attachable components.
- Components → Component Registry: registers via · Generated registry supports dynamic component creation and attachment.
- Scene Root → Input: updates · Scene update loop consumes input state.
- Scene Root → Collision: updates · Scene state feeds spatial collision management.
- Scene Root → Camera Manager: updates · Scene state drives active camera selection and control.
- Scene Root → Sound Manager: updates · Scene loop advances audio playback and events.
- Scene Root → Debug UI: exposes · Runtime scene state is surfaced to the debug UI.
- Debug UI → Sprite Manager: shares ui · Debug and sprite managers work together for runtime editor workflows.
- Assets → Scene Root: defines · Scene and editor data are loaded from data files.
- Build Scripts → Component Registry: generates · Build scripts generate component registry code and related artifacts.
- Build Scripts → Project Template: supports · Build and scaffolding scripts support project/template setup.
- Third Party → Debug UI: powers · ImGui and related libs power debug/editor windows.
- Third Party → Resource Managers: supports · Vendor libraries support asset loading and serialization.
