Modern 2D engine and editor focused on fast iteration - OpenGL 4.6, ImGui docking, LuaJIT scripting, and RTTR‑based scenes.
- Open
LunaticEngine.slnin Visual Studio 2022 (x64) and build. vcpkg manifest pulls deps automatically. - Run
LunaticEditor(viewport, Hierarchy, Inspector) orLunaticRuntime(loadsLunaticRuntime/scene.json).
Note
Cross-platform: the engine code is portable (GLFW/GLAD/ImGui/GLM/LuaJIT/RTTR). The provided solution targets Windows/Visual Studio today; Linux/macOS builds require generating project files (e.g., CMake) and integrating vcpkg. A first‑class cross‑platform build method (e.g., CMake presets) will be added in a future update.
Important
vcpkg is required and must be integrated with MSBuild for dependencies to resolve.
- Install vcpkg: https://learn.microsoft.com/vcpkg/get_started/overview
- MSBuild integration (Visual Studio): https://learn.microsoft.com/vcpkg/get_started/get-started-msbuild
- Manifests (how deps are declared): https://learn.microsoft.com/vcpkg/users/manifests
- Scene graph
- Basic renderer
- Lua coroutines
- Reflection based API
- JSON serialization/deserialization
- Audio support
- Physics integration
-
std::vectorusage reviewed (where can bestd::span?) - Reflection codegen
- 2D rendering (Camera, Sprite, Texture, Framebuffer) with an embedded default shader.
- Scene graph with reflection:
Instance,Renderable,Updateable(auto-registered with the Engine). - JSON save/load driven by RTTR properties;
construct(name)factory for typed deserialization. - Lua scripting via coroutines; access Engine, scene, and reflected properties/methods from Lua.
LunaticEngine/core library:core/,model/(incl.primitives/),render/,vendor/stb.cpp.LunaticEditor/app (ImGui dockspace, viewport/HUD, save & play/stop).LunaticRuntime/app, assets, andscene.json.
- Instance tree:
Sprite,Camera,Script,NativeScriptextendInstance(+ mixins). - Renderer uses a single main
Camera(registered on construction). Sprites share GL buffers. - Editor renders to a
Framebuffershown as an ImGui image; property UI is RTTR-driven. - Scripting: Lua gets
engine,root,script, plusvec2/vec4; call into reflected props/methods;yield()to step frames.
No license at this time. All rights reserved. Do not use, redistribute, or modify without prior written permission.
