Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Mormert/jle
Jet-Lagged Engine is a work-in-progress C++/Lua game engine supporting Windows, Linux, Mac and browsers.
https://github.com/Mormert/jle
2d-graphics 3d-graphics cross-platform game game-development game-engine game-engines game-framework opengl webassembly
Last synced: 3 months ago
JSON representation
Jet-Lagged Engine is a work-in-progress C++/Lua game engine supporting Windows, Linux, Mac and browsers.
- Host: GitHub
- URL: https://github.com/Mormert/jle
- Owner: Mormert
- License: gpl-3.0
- Created: 2020-12-22T23:28:55.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-24T20:37:00.000Z (4 months ago)
- Last Synced: 2024-08-24T21:40:01.139Z (4 months ago)
- Topics: 2d-graphics, 3d-graphics, cross-platform, game, game-development, game-engine, game-engines, game-framework, opengl, webassembly
- Language: C++
- Homepage:
- Size: 23.2 MB
- Stars: 259
- Watchers: 12
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-game-engines - jle - A simple, yet powerful custom-made C++ game engine intended for PC games. The engine is developed alongside an unannounced game. [WIP] (Uncategorized / Uncategorized)
README
Cross-Platform 3D Game Engine
A simple, yet powerful custom-made C++ game engine intended for PC games.
The engine is developed alongside an unannounced game.
## Build Status
[![CMake-Linux](https://github.com/Mormert/hexablo/actions/workflows/cmake-linux.yml/badge.svg)](https://github.com/Mormert/hexablo/actions/workflows/cmake-linux.yml)
[![CMake-MacOS](https://github.com/Mormert/hexablo/actions/workflows/cmake-macos.yml/badge.svg)](https://github.com/Mormert/hexablo/actions/workflows/cmake-macos.yml)
[![CMake-Windows](https://github.com/Mormert/hexablo/actions/workflows/cmake-windows.yml/badge.svg)](https://github.com/Mormert/hexablo/actions/workflows/cmake-windows.yml)
[![CMake-Wasm](https://github.com/Mormert/hexablo/actions/workflows/cmake-wasm.yml/badge.svg)](https://github.com/Mormert/hexablo/actions/workflows/cmake-wasm.yml)# Engine: _jle_
The engine is written in C++ 17 and currently runs OpenGL ES 3.0, OpenGL Core 3.3 or WebGL 2. It thus has the ability to build games targeting Windows, Mac and Linux, as well as modern browsers using WebAssembly via Emscripten.
The way of working in the engine is inspired by a mix of Unreal Engine and Unity, with scripting support in Lua.
Watch the showcase video on [YouTube](https://youtu.be/2GiqLXTfKg4/).
# Third Party
The engine uses a set of libraries for certain specific tasks.
| Usage | Library |
| :----: | :----: |
| Window management & input | [GLFW3](https://www.glfw.org/) (ZLib/LibPNG) |
| OpenGL loading (desktop) | [GLAD](https://github.com/dav1dde/glad-web) (CC0) |
| Image loading | [stb_image](https://github.com/nothings/stb) (MIT) |
| Serialization | [nlohmann::json](https://github.com/nlohmann/json) (MIT), [cereal](https://github.com/USCiLab/cereal/) (BSD), [magic_enum](https://github.com/Neargye/magic_enum) (MIT) |
| 3D importing | [tinyobjloader](https://github.com/tinyobjloader/tinyobjloader) (MIT), [Assimp](https://github.com/assimp/assimp) (Modified BSD) |
| Font importing | [FreeType 2](https://freetype.org/) (FTL or GPL) |
| Networking | [Socket.IO C++ Client](https://github.com/socketio/socket.io-client-cpp) (MIT) |
| Audio | [SoLoud](https://solhsa.com/soloud/) (ZLib/LibPNG) |
| Editor UI | [Dear ImGui](https://github.com/ocornut/imgui) (MIT), [ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo) (MIT), [ImGuiColorTextEdit](https://github.com/BalazsJako/ImGuiColorTextEdit) (MIT) |
| In-Game UI | [RmlUI](https://github.com/Mormert/jle_rmlui) (MIT) |
| Logging | [Plog](https://github.com/SergiusTheBest/plog) (MIT) |
| Mathematics | [GLM](https://github.com/g-truc/glm) (MIT) |
| Compression | [Zlib](https://www.zlib.net/) (Zlib) |
| Multi-threading | [ConcurrentQueue](https://github.com/cameron314/concurrentqueue) (~BSD), [wiJobSystem](https://github.com/turanszkij/JobSystem) (MIT) |
| Scripting (Lua) | [Lua 5.4](https://www.lua.org/source/5.4/) (MIT), [sol2 v3.0](https://github.com/ThePhD/sol2) (MIT) |
| Physics (3D) | [Bullet3](https://github.com/Mormert/jle_bullet3) (Zlib) |
| Template Library | [EASTL](https://github.com/mormert/jle_EASTL) (BSD-3) |
| Real-Time Profiling | [Tracy](https://github.com/wolfpld/tracy) (BSD-3) |# Development
CMake 3.20+ is used as the build system.
Supported compilers are MSVC, GCC, Clang and Emscripten.## Linux Dependencies
```shell
sudo apt update
sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev wayland-protocols libwayland-dev libxkbcommon-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev
```## Fetching the Source
No external dependencies needed, everything is included.
```shell
git clone https://github.com/Mormert/jle.git --recurse-submodules
```## Building with CMake
```shell
mkdir build
cd build
cmake .. -DJLE_BUILD_EDITOR=ON -DCMAKE_BUILD_TYPE=Release
cmake --build .
```