Skip to content

jmorton06/Lumos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cross-platform 2D and 3D Game Engine written in C++.

Screenshots | Building | Features | Dependencies

Build platforms license
stars kofi release Discord

Screenshots

Lumos Lumos Lumos Lumos

Building 🔨

git clone https://github.com/jmorton06/Lumos.git
git submodule update --init --recursive

Install Vulkan SDK (https://vulkan.lunarg.com/)

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 -j8 # config=release

Windows

Run Scripts/GenerateVS.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

M1/M2/M3 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 here : Product > Scheme > Edit Scheme… > Run > Options > Metal API Validation

Features

  • Support for Windows, Linux, macOS.
  • Vulkan
  • 3D audio using OpenAL.
  • Rendering 3D models with PBR shading.
  • Debug gui using ImGui
  • Custom 3D collision detection - cuboid/sphere/pyramid.
  • 2D collision detection - Box2D.
  • Basic lua scripting support.

Contributing

  • Contributions are welcome. Both new features and bug fixes. Just open a pull request.
  • Some ideas for things that need added/fixed are in Todo.txt

Dependencies

  • imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
  • imguizmo : Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui.
  • entt : Fast and reliable entity-component system (ECS)
  • glfw : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
  • 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
  • volk : Meta loader for Vulkan API.
  • Box2D : 2D physics engine.
  • sol2 : C++ <-> Lua API wrapper
  • cereal : A C++11 library for serialization
  • meshoptimizer : Mesh optimization library that makes meshes smaller and faster to render

About

Cross-Platform C++ 2D/3D game engine

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 6

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy