3D FPS game engine with full dynamic lighting and shadows
Alternatives To Limonengine
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
10 months ago8ShaderLab
UnityChanToonShaderVer2 Project / v.2.0.9 Release
Lume1,082743 days ago134July 29, 2019110mitTypeScript
Create 3D web applications with HTML. Bring a new depth to your DOM!
Uraymarching1,0372a year ago5May 08, 20229mitHLSL
Raymarching Shader Generator in Unity
6 months ago46lgpl-3.0C++
3D FPS game engine with full dynamic lighting and shadows
Gpu Gems Book Source Code464
5 years agoC++
:cd: CD Content ( Source Code ) Collection of Book <GPU Gems > 1~ 3 | 《GPU精粹》 1~ 3 随书CD(源代码)珍藏
4 years agomitC++
Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
2d Light Of Sight Unity312
8 years ago7otherC#
A plugin for creating 2D lighting & shadows, and line of sight effects in Unity3d.
6 days agobsd-3-clauseC++
A simple Wavefront OBJ viewer.
Vqengine Legacy265
3 years agon,ullgpl-3.0C++
DirectX 11 Renderer written in C++11
Penumbra25221a year ago18August 02, 202220mitC#
2D lighting with soft shadows for MonoGame
Alternatives To Limonengine
Select To Compare

Alternative Project Comparisons


Limon is a multi platform 3D game engine mainly focusing on first person games. Focus of its development is ease of use and ease of study.

Feature Overview

  • 3D rendering with dynamic lighting/shadows
  • Rigid body physics
  • 3D spatial sound
  • Built-in editor with animation sequencer
  • C++ API for extensibility, and dynamic loading of extensions

For details check out the project web site

Prebuilt binaries for Windows, Linux and MacOS can be found here

Documentation is served on readthedocs

If you want to chat, we have a Discord channel

For a demonstration, check out the video :

0.6 Tech Demo

For features, check out features video:

0.6 featurette

Building from source on Ubuntu 18.10:

Step 1) Open Terminal, then copy and paste the following command

$ sudo apt install cmake git libassimp-dev libbullet-dev libsdl2-dev libsdl2-image-dev libfreetype6-dev libtinyxml2-dev libglew-dev build-essential libglm-dev

Step 2) Since GitHub is limiting LFS bandwidth, it is removed. Cloning the LimonEngine repository should also include all data needed:

$ git clone && cd limonEngine && git submodule update --init

Step 3) Next, we need to navigate to the directory run cmake:

$ mkdir build && cd build && cmake ../ && cd ..

Step 4) Finally, we need to navigate to the build directory, make the source and copy the Data directory to the build directory:

$ cd build && make && cp -a ../Data .

Building from source on Windows

Windows platform is compiled using MSYS2. after installing MSYS2 as any Windows application, open up the msys2-terminal, and install the dependencies:

$ pacman -S cmake mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb cmake mingw-w64-x86_64-assimp cmake mingw-w64-x86_64-bullet mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-tinyxml2 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-freetype

after that, you can use step 2 - 4 of Ubuntu instructions, on the same terminal.


Start up:

  • Engine take a parameter as path of world to load
  • If no parameter passed, falls back to ./Data/Maps/World001.xml
$ ./LimonEngine ./Data/Maps/World001.xml

In Application:

  • Pressing 0 switches to debug mode, renders physics collision meshes and disconnects player from physics (flying and passing trough objects)
  • Pressing F2 key switches to editor mode, which allows creating maps.
  • Pressing + and - changes mouse sensitivity.
  • wasd for walking around and mouse for looking around as usual.

In editor mode:

  • Since static and dynamic objects rigidbodies are not generated by same logic, mass settings can't be changed after object creation.
  • Inanimate objects are not allowed to have AI
  • You can create animations for doors etc. in editor. For animation creation, time step is 60 for each second.
  • When a new animation is created by animation editor, the object used to create the animation assumed to have this animation. You can remove by using the remove animation button.

Extending with C++

  • Limon Engine has 3 types of extensions:
    • Actions for triggers and buttons
    • AI for actors
    • Player for Input handling
  • All uses the same API, but called upon depending on their type.
  • Engine tries to load custom extensions from libcustomTriggers.dll for Windows, for GNU/Linux and libcustomTriggers.dylib for macOS. If you use an customisation in a map and library is missing, that customisation wont work, but rest of the map will.

Details in the documentation

Popular Shadow Projects
Popular Lighting Projects
Popular User Interface Components Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C Plus Plus
3d Graphics
Game Development
Game Engine
3d Engine