Written in C++, with Lua scripting and a built-in editor.
Made with Lumos |
Screenshots |
Features |
Building |
Docs |
Dependencies
Made with Lumos
Everything below is a Lumos project written in Lua: no engine code of its own, exported to desktop and iOS with the same prebuilt templates.
Orion
A space trading and exploration game set among the real stars of the HYG catalogue. Haul cargo between ports, build outposts, take on jobs and work your way home.

Planet Archery
A portrait arcade game: read the wind and the gravity, then shoot your way across the solar system. Included in ExampleProject as the Archery scene.
Vielle
Vielle plays your own music, audiobooks and podcasts on iPhone, iPad and Mac. No account, no tracking, no subscription. Not a game: the whole app is built on the engine’s UI.
Screenshots

Features
Platforms
- Windows, Linux, macOS and iOS, with partial Android support.
- Export a project without compiling the engine, using prebuilt templates (
Scripts/lumos export).
Rendering
- Vulkan renderer (MoltenVK on Apple platforms) with Forward+ PBR shading.
- Cascaded and spot light shadows, SSAO, screen-space reflections, bloom, depth of field.
- TAA, SMAA and FXAA.
- Probe-based global illumination, volumetric fog, decals and a physical procedural sky.
- Frame Explorer: step through a frame pass by pass, with an explanation of each.
Physics
- 3D: custom engine with island solver, continuous collision, constraints and mesh colliders.
- 2D: Box2D.
Scripting
- Lua with hot reload and per-script environments.
- Scripted test harness that drives real input and takes screenshots (
--test=).
Editor
- Dockable panels, command palette, undo, gizmos and asset browser, all on the engine’s own UI.
- Built-in sprite editor, code editor and project hub.
- Runs on iOS with a touch layout.
Audio
- 3D audio with OpenAL.
- Software synth and sampler, audio analysis and streaming.
Core
- EnTT entity-component system, virtual file system, arena allocators and a job system.
- Tracy profiling.
- In-game debug overlay and fly camera, available to any game.
Building
git clone https://github.com/jmorton06/Lumos.git
git submodule update --init --recursive
Install the Vulkan SDK.
Linux
sudo apt-get install -y g++-11 libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libopenal-dev mesa-common-dev
cd Lumos
Tools/linux/premake5 gmake2
make -j$(nproc) # config=release
Windows
Run Scripts/Windows/GenerateVS22.bat to generate a Visual Studio project.
cd Lumos
msbuild /p:Platform=x64 /p:Configuration=Release Lumos.sln
Mac
cd Lumos
Tools/premake5 xcode4
xcodebuild -project Runtime.xcodeproj
Apple silicon Macs may need:
cd Lumos
Tools/premake5 xcode4 --arch=arm64 --os=macosx
xcodebuild -project Runtime.xcodeproj
iOS
cd Lumos
Tools/premake5 xcode4 --os=ios
xcodebuild -project Runtime.xcodeproj CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
To run on Apple devices with Vulkan (MoltenVK), disable Metal API Validation: Product > Scheme > Edit Scheme… > Run > Options > Metal API Validation.
Documentation
Contributing
Contributions are welcome, both new features and bug fixes. Just open a pull request. Ideas for things that need adding or fixing are in TODO.md.
Dependencies
- entt : Fast and reliable entity-component system (ECS)
- glfw : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
- imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
- Box2D : 2D physics engine.
- lua : Scripting language.
- sol2 : C++ <-> Lua API wrapper
- cereal : A C++11 library for serialization
- stb : Single-file public domain (or MIT licensed) libraries for C/C++.
- tinygltf : Header only C++11 tiny glTF 2.0 library
- tinyobjloader : Tiny but powerful single file wavefront obj loader
- meshoptimizer : Mesh optimization library that makes meshes smaller and faster to render
- volk : Meta loader for Vulkan API.
- MoltenVK : Vulkan on Metal.
- OpenAL Soft : 3D audio.
- msdf-atlas-gen : MSDF font atlas generator.
- ozz-animation : Skeletal animation.
- Tracy : Frame profiler.
评论