Lichen is a Game Engine written in Raylib (cross-platform wrapper for OpenGL) and C++
While initially developed on Linux Mint, it plans on being cross-platform for Windows and Mac as well.
I was inspired for this project by the Hazel game engine, and am actively using it as a reference to how the way things work in this. Thank you so much, TheCherno!
In Hazel, TheCherno uses OpenGL and Visual Studio, developing on Windows.
In Lichen, I'll be using Raylib and VSCode, developing on Linux.
I hope to learn a lot from this project as I have only made simple games till now, in C++ and Raylib.
- Window Management system
- Rendering system
- Debugging Support
- C# Scripts
- Entity Component System
- Physics
- Build System
- Custom Asset Types
- Hot Reloading
Coming soon...
git clone --recursive to get all submodules locally
If you forgot, do:
git submodule update --init --recursive after regular git clone
cmake --preset Distro
cmake --build --preset Distroscripts\run.bat Distro./scripts/run.sh DistroNote:
- Make sure you're running from the repo directory
Lichen/ - Make sure you have cmake and ninja in your path variables
- Debug — All debug symbols turned on, optimization off
- Release — Debug symbols on, optimization on
- Distro — Debug symbols off, optimization on
Raylib requires a lot of libraries that are built-in on Mac and Windows.
No worries, Linux just requires 1 command to install them all:
sudo apt install \
libx11-dev \
libxcursor-dev \
libxrandr-dev \
libxi-dev \
libxinerama-dev \
libgl1-mesa-dev \
libasound2-dev \
libpulse-dev \
libxkbcommon-dev- CMake 3.20+
- C++ compiler: GCC 13.3 / Clang
- Ninja (not required, but it's what the presets use)
EntryPoint.hmust be included in exactly one cpp file.Lichen.his the header to be included everywhere else. No need to include any other header.- CMake setup: for lichen, all you need to do is link the library.
- Logging: Refer to Log.h to see which log macros you want to use.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Copyright (c) 2026 lishacodesgames
- Use this software for any purpose (personal or commercial).
- Modify the source code to suit your needs.
- Distribute the original or modified versions of the software.
- Sublicense the code under different terms.
- Include a copy of the original license and copyright notice.
- State Changes: Clearly mark any significant modifications you made to the files.
- Keep Notices: Retain all existing copyright, patent, and trademark notices.