How ridhwandll/surge_expired works
Surge is a mobile-first game engine with a Windows-only editor and Windows/Android runtime. The main authoring path is editing a project and importing assets, which the editor can cook when the engine loads them; the runtime then loads scenes and renders them. The graph also preserves the documented renderer, audio, physics, and UI capabilities. Asset loading, Lua setup, and pipeline creation are sampled; editor/player orchestration and several subsystem connections are inferred only from the tree and README, so uncertain links are omitted.
Main entry points: Scene.cpp Scene system · AssetManager.cpp Asset manager · VulkanRHI.cpp Vulkan RHI · Renderer.cpp Renderer
Components 21
Editor and assets
- Editor
Editor/Source/Editor.cpp - Editor panels
Editor/Source/Panels/PanelManager.hpp - Asset importer
Editor/Source/Asset/AssetImporter.cpp - Asset cookers
Editor/Source/Asset/Cookers/AssetCooker.cpp - Asset manager
Engine/Source/Surge/Asset/AssetManager.cpp - Asset serializers
Engine/Source/Surge/Asset/Serializer/IAssetSerializer.hpp
Runtime and scenes
- Player runtime
Player/Source/Player.cpp - Scene system
Engine/Source/Surge/ECS/Scene.cpp - Physics
Engine/Source/Surge/Physics/Physics.cpp - Audio engine
Engine/Source/Surge/Audio/AudioEngine.cpp - Lua scripting
Engine/Source/Surge/ScriptEngine/ScriptEngine.cpp - UI system
Engine/Source/Surge/Graphics/UISystem/UIManager.hpp
Rendering
- Renderer
Engine/Source/Surge/Graphics/Renderer/Renderer.cpp - Render graph
Engine/Source/Surge/Graphics/RenderGraph/RenderGraph.cpp - Render passes
Engine/Source/Surge/Graphics/RenderGraph/Passes/GeometryPass.cpp - Vulkan RHI
Engine/Source/Surge/Graphics/RHI/Vulkan/VulkanRHI.cpp - Pipeline creation
Engine/Source/Surge/Graphics/RHI/Vulkan/VulkanPipeline.cpp - Shader management
Engine/Source/Surge/Graphics/Shader/ShaderManager.cpp - Shader reflection
Engine/Source/Surge/Graphics/Shader/ShaderReflector.cpp
Other components
- Developer
- Windows / Android
Connections 19
- Developer → Editor: authors in
- Editor → Editor panels: renders
- Editor panels → Asset importer: requests imports
- Asset importer → Asset manager: registers assets
- Asset manager → Asset serializers: loads and saves
- Asset manager → Asset cookers: editor load callback
- Developer → Player runtime: runs game
- Player runtime → Scene system: runs scenes
- Scene system → Physics: uses physics
- Scene system → Audio engine: uses audio
- Scene system → Lua scripting: uses scripts
- Renderer → Render graph: builds frame graph
- Render graph → Render passes: dispatches passes
- Render passes → Vulkan RHI: issues rendering
- Vulkan RHI → Pipeline creation: creates pipelines
- Shader management → Shader reflection: reflects shaders
- Pipeline creation → Shader reflection: uses reflection data
- Renderer → UI system: extracts UI data
- Vulkan RHI → Windows / Android: uses Vulkan platform