craftablescience / ChiraEngine

A customizable MIT-licensed game engine.
https://craftablescience.info/ChiraEngine/
MIT License
33 stars 6 forks source link
cpp cpp-library game-development game-engine gamedev opengl
Chira Engine [![Codacy Badge](https://api.codacy.com/project/badge/Grade/5c8b0a7eba614cc8bc44d7d54789cf51)](https://app.codacy.com/gh/craftablescience/ChiraEngine?utm_source=github.com&utm_medium=referral&utm_content=craftablescience/ChiraEngine&utm_campaign=Badge_Grade_Settings) ![Workflow Status](https://img.shields.io/github/actions/workflow/status/craftablescience/ChiraEngine/build_engine.yml?branch=main&label=builds%20and%20tests) ![License](https://img.shields.io/github/license/craftablescience/ChiraEngine?label=license) ![Discord](https://img.shields.io/discord/678074864346857482?label=discord&logo=Discord&logoColor=%23FFFFFF) A fully customizable (and heavily work-in-progress) MIT-licensed game engine, written in C++20.

Features

To summarize the major features:

The goal of the engine is to have as much customization as possible, while still maintaining ease of use.

Supported Platforms

Planned:

Supported Compilers

Platform GCC Clang MSVC
Windows ✔* ✔*
Linux -
macOS ✔** -

(*) Supported with MinGW. Packaging a build of the application will require you to copy a DLL from the MinGW bin directory next to the executable. Check the GitHub Actions script to see the path to the DLL.

(**) Homebrew LLVM/Clang is required. Some C++ features used in this project are not supported by Apple's version of Clang.

Supported Rendering APIs

Platform OpenGL 4.0 OpenGL 4.1 OpenGL 4.3 D3D11 Software
Windows Planned ✔*
Linux - ✔*
macOS - - ✔*

(*) SDL software renderer implementation is incomplete and will likely never work perfectly with 3D. It exists to make it easier to port to new platforms.

Bundled Dependencies

Development (Windows)

Development (Linux)

The project will compile without any prior configuration in your IDE of choice (or the terminal), but you will need to install a few things first. On Debian-based distros, run:

sudo apt update && sudo apt install cmake build-essential xorg-dev mesa-common-dev mesa-utils

Installing Ninja is optional but recommended:

sudo apt install ninja

You will also need to install dev versions of sound libraries to support each of these sound backends when compiling. If you are compiling the project for your personal use, you only have to install the one you need:

sudo apt install libasound2-dev libpulse-dev libjack-dev

If you are not using an IDE, the project can be compiled using the following commands:

cmake -G "Unix Makefiles" -B build -DCMAKE_BUILD_TYPE=Debug -- -j$(nproc)
cmake --build build

Development (macOS)

You must install LLVM from Homebrew, as the default Apple Clang compilers do not work properly:

brew install llvm

Installing Ninja is optional but recommended:

brew install ninja

If you are not using an IDE, the project can be compiled using the following commands:

cmake -G "Unix Makefiles" -B build -DCMAKE_C_COMPILER="/usr/local/opt/llvm/bin/clang" -DCMAKE_CXX_COMPILER="/usr/local/opt/llvm/bin/clang++" -DCMAKE_BUILD_TYPE=Debug -- -j$(sysctl -n hw.logicalcpu)
cmake --build build