Lina Engine is an open-source , modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.
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.
Lina Engine is currently compatible to be compiled only with x64 architecture on Windows. If you would like to use it on different architectures & platforms, you need to compile the vendors for your target architecture and platform include them manually.
Lina is currently in active development so it's not stable on all platforms. It's being developed in Visual Studio 2019 in Windows 10 with x64 architecture, so that's the best setup to contribute to the project for now.
# 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
# You can define any options before generating project files. cmake -DLINA_CORE_ENABLE_LOGGING=OFF
You can define multiple options sequentially.
cmake -DLINA_CORE_ENABLE_LOGGING=OFF -DLINA_CLIENT_ENABLE_LOGGING=OFF
It is recommended to declare the type of the option if multiple options are defined
cmake -DLINA_CORE_ENABLE_LOGGING:BOOL=OFF -DLINA_CLIENT_ENABLE_LOGGING: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_CORE_ENABLE_LOGGING=OFF -G "Visual Studio 15 2017"
# Create a directory for binaries mkdir bin
Navigate to directory
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
| Option | Description | Default |
| ------------- | ------------- | ------------- |
| LINACLIENTENABLELOGGING | Enables log features for client modules, like Sandbox. | ON |
| LINACOREENABLELOGGING | Enables log features for core modules. | ON |
| LINAENABLEEDITOR | Enables the editor gui. | ON |
| LINAENABLETIMEPROFILING | If enabled, core Lina systems will record their execution durations which can be polled from anywhere to display profiling data. | ON |
| CMAKECONFIGURATIONTYPES | Config types that will be available on the IDE. | Debug, Release, MinSizeRel, RelWithDebInfo
Check out Licence file.