Requirements

Hard Requirements

Operating System

This project has been developed and tested on the following operating systems and/or distributions:

Operating System

Version

Notes

ArchLinux

rolling

-

Manjaro

t.b.d

-

Ubuntu

24.04 LTS

-

Other operating systems and/or distributions may work, but have not been tested.

Requirements and Dependencies

This project requires the following hard requirements/dependencies for it to be built:

Tool/Dependency/Standard

Version

Usage

C++23

-

Programming language used to write the engine

CMake

3.25

Tool used to define the set of rules to build the engine

Python

3.12.x

Used to build and generate the static documentation website from the docs directory

Note

A hard requirement is a requirement that must be installed on your system through the package manager of your operating system or manually.

Platform Agnostic Requirements

Linux

Tool/Dependency/Standard

Version

Usage

libx11

1.8.7

X Window System client library used to handle window creation and input

libudev

253.x

Library used to enumerate and monitor devices on a Linux system

libalut

1.1.0

Libraty that implements the OpenAL ALUT specification

libopenal

1.23.x

Library used to handle audio output

pthread

-

POSIX threads library used to handle threading

Note

Dependency packages and development packages are two distinct entities. Some distributions (such as Ubuntu) separate development packages from runtime packages, while others (such as ArchLinux) do not.

The development packages are always suffixed with -dev, -devel or similar and can be installed by using your distribution’s package manager.

Soft Requirements

Requirements and Dependencies

The project uses the following soft requirements/dependencies for it to be built, which are downloaded and built automatically by the CPM package manager tool.

Tool/Dependency/Standard

Version

Usage

CPM

0.40.2

Package manager used to install dependencies

reflect-cpp

0.15.0

Reflection and serialization library to convert objects as binary blobs

SFML

2.6.2

Simple and Fast Multimedia Library used to render graphics and handle audio

libopenal

1.24.1

Library used to handle audio output

libvorbis

1.3.7

Library used to decode and encode audio in the Vorbis format

libogg

1.3.5

Library used to handle the Ogg container format

libflac

1.4.3

Library used to decode and encode audio in the FLAC format

libfreetype

2.13.3

Library used to render fonts