Need help with LinaEngine?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

inanevin
176 Stars 15 Forks Other 1.5K Commits 0 Opened issues

Description

Lina Engine is an open-source , modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.

Services available

!
?

Need anything else?

Contributors list

Lina

Lina Engine

License Codacy Badge Build Status

contributions welcome HitCount GitHub issues GitHub repo size

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 Lina

Announcements / Notes

  • 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.

Lina Engine Tools

External Dependencies

Installation

  • Clone Lina Engine git repository
# 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 generate the project files and build using; ~~Lina Engine Build Launcher (deprecated)~~, CMake with Shell or CMake GUI

Using Lina Engine Build Launcher (deprecated)

  • You need to have JavaFX Runtime library installed on your computer & environment paths set for it. For more information visit Java FX.
  • Download a binary release from Lina Engine Build Launcher Repository.
  • Run the .jar file, launcher will open.

  • Select the directory where you downloaded Lina Engine's source. (this repository)
  • Select your desired build directory for project files.
  • Select your target generator & desired build options.
  • Hit "Generate Project Files" to generate only the project files, hit "Generate and Build" to generate project files and then build the binaries using the generated files.

Using CMake with Shell

  • Run your shell, command line or terminal in the repository directory. Afterwards, execute generation / build commands.
# 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"

  • After generating project files you can either open your IDE and build the ALL_BUILD project which will build all the targets or you can build the binaries from shell.
# 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

  • Check out CMake Documentation for specifying more options and configurations like project file generation directories and more.

Using CMake GUI

  • Choose the directory where the repository is as the source directory.
  • Choose a build directory, this can be the same as the source directory or anywhere you like.
  • Hit configure, select the IDE you want to generate the project files for and x64 architecture.
  • Select options, you can leave them as default.
  • Hit generate, this will generate the project files for your desired IDE.

Build Options

| 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
|

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 (GDOCS)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.