MihailRis/voxelcore

VoxelCore – voxel game engine in C++

C++

1,476

6,647 commits

updated Oct 14, 2026

See the code

README

voxel-core VoxelCore

Latest release


Build project in Linux

Install libraries

Install EnTT

Installing last version that supports C++17.

git clone --branch v3.16.0 https://github.com/skypjack/entt.git
cd entt
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENTT_INSTALL=ON ..
sudo make install

[!WARNING] If you are using ALT Linux, do not use this EnTT installation method.

ALT Linux based distros

su -
apt-get install entt-devel libglfw3-devel libGLEW-devel libglm-devel libpng-devel libvorbis-devel libopenal-devel libluajit-devel libstdc++13-devel-static libcurl-devel libfreetype-devel libssl-devel

Debian based distros

sudo apt install libglfw3 libglfw3-dev libglew-dev libglm-dev libpng-dev libopenal-dev libluajit-5.1-dev libvorbis-dev libcurl4-openssl-dev libssl-dev libfreetype6-dev

[!TIP] CMake missing LUA_INCLUDE_DIR and LUA_LIBRARIES fix:

sudo ln -s /usr/lib/x86_64-linux-gnu/libluajit-5.1.a /usr/lib/x86_64-linux-gnu/liblua5.1.a
sudo ln -s /usr/include/luajit-2.1 /usr/include/lua

RHEL based distros

sudo dnf install glfw-devel glew-devel glm-devel libpng-devel libvorbis-devel openal-soft-devel luajit-devel libcurl-devel libfreetype-devel openssl-devel

Arch based distros

sudo pacman -S glfw glew glm libpng libvorbis openal luajit curl freetype2 openssl

Building engine with CMake

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel

[!TIP] Use --parallel to utilize all CPU cores during build.


Building project in macOS

Install libraries

brew install glfw3 glew glm libpng libvorbis lua luajit libcurl openal-soft skypjack/entt/entt freetype

[!TIP] If Homebrew fails to install lua, luajit, or openal-soft, download, compile, and install them manually.

Building engine with CMake

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel

Building in Windows

[!NOTE] Requirements: vcpkg, CMake, Git, and Visual Studio (with C++ tools).

There are two options to use vcpkg:

  1. If you have Visual Studio installed, the VCPKG_ROOT environment variable is often already set in the Developer Command Prompt for VS.
  2. Otherwise, install vcpkg manually:
cd C:\
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat

Then set the VCPKG_ROOT environment variable and add it to PATH:

$env:VCPKG_ROOT = "C:\vcpkg"
$env:PATH = "$env:VCPKG_ROOT;$env:PATH"

[!TIP] For troubleshooting, refer to the official vcpkg documentation.

After installing vcpkg, build the project:

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
cmake --preset default-vs-msvc-windows
cmake --build --preset default-vs-msvc-windows

[!NOTE] Make sure your CMakeUserPresets.json (if used) contains the correct VCPKG_ROOT path.


Building with CLion (MinGW / Ninja)

[!NOTE] Requirements: vcpkg, Git, and CLion (bundled with CMake, Ninja and MinGW toolchain).

[!WARNING] Avoid installing tools in paths with spaces (e.g. Program Files). This may break MinGW builds (especially windres).

Install vcpkg manually as described in the Visual Studio section.

Configure CLion

Open the project in CLion and configure CMake profile:

Settings → Build, Execution, Deployment → CMake

Reload CMake project and build the engine.


Build using Docker

[!NOTE] First, install Docker Engine: https://docs.docker.com/engine/install

On Linux

Step 1. Build Docker image

docker build -t voxel-engine .

Step 2. Build project inside container

docker run --rm -it -v "$(pwd):/project" voxel-engine bash -c "cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && cmake --build build --parallel"

Step 3. Run the application (requires X11 forwarding)

docker run --rm -it \
  -v "$(pwd):/project" \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v "$XAUTHORITY:/home/user/.Xauthority:ro" \
  -e DISPLAY="$DISPLAY" \
  --network=host \
  voxel-engine ./build/VoxelCore

On Windows

[!NOTE] You need an X server like VcXsrv to display the GUI.

Step 1. Install and run VcXsrv

Launch with:

.\vcxsrv.exe :0 -multiwindow -ac

Step 2. Build Docker image

docker build -t voxel-engine .

Step 3. Build project

docker run --rm -it -v "${PWD}:/project" voxel-engine bash -c "cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && cmake --build build --parallel"

Step 4. Run the application

docker run --rm -it -v "${PWD}:/project" -e DISPLAY=host.docker.internal:0.0 --network=host voxel-engine ./build/VoxelCore
game
game-engine
opengl
voxel-game

MihailRis/voxelcore

VoxelCore – voxel game engine in C++

C++

1,476

6,647 commits

updated Oct 14, 2026

See the code

README

voxel-core VoxelCore

Latest release


Build project in Linux

Install libraries

Install EnTT

Installing last version that supports C++17.

git clone --branch v3.16.0 https://github.com/skypjack/entt.git
cd entt
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENTT_INSTALL=ON ..
sudo make install

[!WARNING] If you are using ALT Linux, do not use this EnTT installation method.

ALT Linux based distros

su -
apt-get install entt-devel libglfw3-devel libGLEW-devel libglm-devel libpng-devel libvorbis-devel libopenal-devel libluajit-devel libstdc++13-devel-static libcurl-devel libfreetype-devel libssl-devel

Debian based distros

sudo apt install libglfw3 libglfw3-dev libglew-dev libglm-dev libpng-dev libopenal-dev libluajit-5.1-dev libvorbis-dev libcurl4-openssl-dev libssl-dev libfreetype6-dev

[!TIP] CMake missing LUA_INCLUDE_DIR and LUA_LIBRARIES fix:

sudo ln -s /usr/lib/x86_64-linux-gnu/libluajit-5.1.a /usr/lib/x86_64-linux-gnu/liblua5.1.a
sudo ln -s /usr/include/luajit-2.1 /usr/include/lua

RHEL based distros

sudo dnf install glfw-devel glew-devel glm-devel libpng-devel libvorbis-devel openal-soft-devel luajit-devel libcurl-devel libfreetype-devel openssl-devel

Arch based distros

sudo pacman -S glfw glew glm libpng libvorbis openal luajit curl freetype2 openssl

Building engine with CMake

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel

[!TIP] Use --parallel to utilize all CPU cores during build.


Building project in macOS

Install libraries

brew install glfw3 glew glm libpng libvorbis lua luajit libcurl openal-soft skypjack/entt/entt freetype

[!TIP] If Homebrew fails to install lua, luajit, or openal-soft, download, compile, and install them manually.

Building engine with CMake

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel

Building in Windows

[!NOTE] Requirements: vcpkg, CMake, Git, and Visual Studio (with C++ tools).

There are two options to use vcpkg:

  1. If you have Visual Studio installed, the VCPKG_ROOT environment variable is often already set in the Developer Command Prompt for VS.
  2. Otherwise, install vcpkg manually:
cd C:\
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat

Then set the VCPKG_ROOT environment variable and add it to PATH:

$env:VCPKG_ROOT = "C:\vcpkg"
$env:PATH = "$env:VCPKG_ROOT;$env:PATH"

[!TIP] For troubleshooting, refer to the official vcpkg documentation.

After installing vcpkg, build the project:

git clone --recursive https://github.com/MihailRis/VoxelCore.git
cd VoxelCore
cmake --preset default-vs-msvc-windows
cmake --build --preset default-vs-msvc-windows

[!NOTE] Make sure your CMakeUserPresets.json (if used) contains the correct VCPKG_ROOT path.


Building with CLion (MinGW / Ninja)

[!NOTE] Requirements: vcpkg, Git, and CLion (bundled with CMake, Ninja and MinGW toolchain).

[!WARNING] Avoid installing tools in paths with spaces (e.g. Program Files). This may break MinGW builds (especially windres).

Install vcpkg manually as described in the Visual Studio section.

Configure CLion

Open the project in CLion and configure CMake profile:

Settings → Build, Execution, Deployment → CMake

Reload CMake project and build the engine.


Build using Docker

[!NOTE] First, install Docker Engine: https://docs.docker.com/engine/install

On Linux

Step 1. Build Docker image

docker build -t voxel-engine .

Step 2. Build project inside container

docker run --rm -it -v "$(pwd):/project" voxel-engine bash -c "cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && cmake --build build --parallel"

Step 3. Run the application (requires X11 forwarding)

docker run --rm -it \
  -v "$(pwd):/project" \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v "$XAUTHORITY:/home/user/.Xauthority:ro" \
  -e DISPLAY="$DISPLAY" \
  --network=host \
  voxel-engine ./build/VoxelCore

On Windows

[!NOTE] You need an X server like VcXsrv to display the GUI.

Step 1. Install and run VcXsrv

Launch with:

.\vcxsrv.exe :0 -multiwindow -ac

Step 2. Build Docker image

docker build -t voxel-engine .

Step 3. Build project

docker run --rm -it -v "${PWD}:/project" voxel-engine bash -c "cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && cmake --build build --parallel"

Step 4. Run the application

docker run --rm -it -v "${PWD}:/project" -e DISPLAY=host.docker.internal:0.0 --network=host voxel-engine ./build/VoxelCore
game
game-engine
opengl
voxel-game

Significant stargazers

Edwin Kofler

376 followers · starred Aug 2026

Evgeniy Khramov

29 followers · starred Feb 2024

Bogdan Romanyuk

17 followers · starred Sep 2026

Dmitry Rozhkov

72 followers · starred Apr 2025