How galactickittenss/nebula works
Nebula is an early-stage Windows game engine with Nebula Storm as its editor application. The main workflow is to open a project, browse assets and edit scenes/entities, then run the scene with rendering, physics, and C# behaviors. Runtime layers cover project/asset management, scene state, scripting, and rendering; the editor exposes project content and scene hierarchy. The README documents these capabilities, while sampled source confirms application startup, frame/event dispatch, asset-registry behavior, camera input, and script-runtime behavior. Unsampled subsystem wiring is represented only where documented.
Main entry points: EditorLayer.cpp Editor layer · Scene.cpp Scene state · Application.cpp Application loop · ScriptEngine.cpp Script engine
Components 24
Editor
- Nebula Storm
Nebula-Storm/src/App.cpp - Editor layer
Nebula-Storm/src/EditorLayer.cpp - Content browser
Nebula-Storm/src/Panels/Content_Browser.cpp - Scene hierarchy
Nebula-Storm/src/Panels/Scene_Hierarchy.cpp
Projects Assets
- Project lifecycle
Nebula/src/Nebula/Project/Project.cpp - Project serialization
Nebula/src/Nebula/Project/ProjectSerializer.cpp - Asset manager
Nebula/src/Nebula/AssetManager/AssetManagerBase.cpp - Asset registry
Nebula/src/Nebula/AssetManager/AssetManagerBase.h - Asset importers
Nebula/src/Nebula/AssetManager/AssetImporter.cpp
Scene Runtime
- Scene state
Nebula/src/Nebula/Scene/Scene.cpp - Entities and components
Nebula/src/Nebula/Scene/Entity.cpp - Scene serialization
Nebula/src/Nebula/Scene/Scene_Serializer.cpp - 2D physics
Nebula/src/Nebula/Scene/ContactListener.cpp - Script engine
Nebula/src/Nebula/Scripting/ScriptEngine.cpp - Script bindings
Nebula/src/Nebula/Scripting/ScriptGlue.cpp - C# script API
Nebula-ScriptCore/Source/Nebula/Scene/Entity.cs
Engine Services
- Application loop
Nebula/src/Nebula/Core/Application.cpp - Window and events
Nebula/src/Nebula/Core/Window.cpp - Renderer
Nebula/src/Nebula/Renderer/Renderer.cpp - 2D and text rendering
Nebula/src/Nebula/Renderer/Renderer2D.cpp - OpenGL backend
Nebula/src/Platform/OpenGl/OpenGL_RendererAPI.cpp - Camera controller
Nebula/src/Nebula/Renderer/Camera_Controller.cpp - Input
Nebula/src/Nebula/Core/Input.h
Other components
- Editor user
Connections 24
- Editor user → Nebula Storm: opens editor
- Nebula Storm → Application loop: creates application
- Application loop → Window and events: creates window
- Application loop → Renderer: initializes and resizes
- Application loop → Script engine: initializes
- Application loop → Editor layer: updates and dispatches events
- Editor layer → Project lifecycle: manages project
- Editor layer → Content browser: renders panel
- Editor layer → Scene hierarchy: renders panel
- Content browser → Asset manager: browses assets
- Asset manager → Asset registry: reads and writes
- Asset manager → Asset importers: imports assets
- Project lifecycle → Project serialization: serializes project
- Scene hierarchy → Scene state: edits scene
- Scene state → Entities and components: manages entities
- Scene state → Scene serialization: serializes scene
- Scene state → 2D physics: handles contacts
- Scene state → Script engine: dispatches behavior
- Script engine → Script bindings: registers bindings
- Script engine → C# script API: loads managed API
- Renderer → 2D and text rendering: renders 2D and text
- Renderer → OpenGL backend: dispatches graphics calls
- Camera controller → Input: reads keys
- Editor layer → Camera controller: updates camera