Home

Awesome

<br/> <p align="center"> <img src="https://user-images.githubusercontent.com/3519379/173830836-d390e164-fe59-4b9d-950a-c28fa3ebc037.png"> </p> <br/> <div align="center">

License Codacy Badge Build Status contributions welcome Donate Lina Discord GitHub issues GitHub repo size

</div>

Lina Engine is a lightweight and ECS based open-source game engine. Initially it's a research project and is aimed to be a basis of development for more open-source game engine projects. Lina's architecture is designed to be as modular as possible and it focuses on creating replacable modules to customize for project-specific needs, rather than stacking thousands of features into one framework.

Visit the project page on my website for more information

Lina Lina

Announcements / Notes

Lina Engine Tools

External Dependencies

Installation

# Initialize git in your desired directory.
git init

# Clone Lina Engine
git clone https://github.com/inanevin/LinaEngine

# Alternatively you can clone recursively, this will download all the submodules if there exists any along with Lina Engine source code.
git clone --recursive https://github.com/inanevin/LinaEngine

Using Lina Engine Build Launcher (deprecated)

Using CMake with Shell

# You can define any options before generating project files.
cmake -DLINA_ENABLE_LOGGING=OFF

# You can define multiple options sequentially.
cmake -DLINA_ENABLE_LOGGING=OFF -DLINA_ENABLE_PROFILING=OFF

# It is recommended to declare the type of the option if multiple options are defined
cmake -DLINA_ENABLE_LOGGING:BOOL=OFF -DLINA_ENABLE_PROFILING:BOOL=OFF -DCMAKE_CONFIGURATION_TYPES:STRING="Debug,Release"

# Above commands will generate project files with default generator, you can specify a generator if you want.
cmake -DLINA_ENABLE_LOGGING=OFF -G "Visual Studio 15 2017"

# Create a directory for binaries
mkdir bin

# Navigate to directory
cd bin

# Build the root project
cmake ../ -G "Visual Studio 16 2019" -A "x64"

# After the project files are built, you can build the project via
cmake --build . --target ALL_BUILD

Using CMake GUI

Build Options

OptionDescriptionDefault
LINA_ENABLE_EDITORLaunches the sandbox in editor mode.ON
LINA_ENABLE_LOGGINGEnables log features for core modules.ON
LINA_ENABLE_PROFILINGEnables profiler integration & profile data serialization.ON
LINA_PRODUCTION_BUILDDisable debug error checking & reporting.OFF
CMAKE_CONFIGURATION_TYPESConfig types that will be available on the IDE.Debug, Release, MinSizeRel, RelWithDebInfo

License

License Check out Licence file.

Design Diagrams

System Architecture

Diagram 1

Design Document

Link to the Software Design Document of Lina Engine (PDF)

Lina Engine Project Report (PDF)