VoxelCore – voxel game engine in C++
  • C++ 84.9%
  • Lua 9.4%
  • C 4%
  • GLSL 1.2%
  • CMake 0.3%
Find a file
2026-06-03 21:02:41 +03:00
.github cleanup 2026-04-05 23:56:09 +03:00
dev update AppImageBuilder.yml 2026-02-13 14:11:35 +03:00
doc update doc/*/scripting/builtins/libgui.md 2026-05-21 21:43:14 +03:00
res fix post-runnable context in content-related functions 2026-06-01 01:08:24 +03:00
src Merge pull request #846 from MihailRis/fixes 2026-06-03 21:02:41 +03:00
test fix stringutil locale-related functions 2026-04-07 00:03:56 +03:00
vctest fix windows build 2025-04-07 20:30:44 +03:00
.clang-format format: fix: set AllowShortFunctionsOnASingleLine to 'None' 2024-08-03 19:39:58 +03:00
.cmake-format.py add cmake-format.py and formating all cmake files 2025-01-09 16:32:54 +03:00
.gitignore update .gitignore 2025-08-08 19:58:52 +03:00
CHANGELOG.md update CHANGELOG.md 2026-03-22 23:00:04 +03:00
CMakeLists.txt add build info to release (#725) 2025-12-05 22:11:47 +03:00
CMakePresets.json Add back default-vs-msvc-windows preset used in CI 2025-04-13 17:14:34 +03:00
compile_flags.txt add compile_flags.txt with -Isrc for ide with clangd 2024-10-19 21:02:21 +03:00
Dockerfile add freetype library 2026-02-13 13:14:13 +03:00
flake.lock Flake update 2024-08-05 23:29:13 +03:00
flake.nix Update flake.nix 2026-02-21 02:29:32 +03:00
README.md update README.md 2026-03-19 21:51:07 +03:00
run.sh run script: add help page 2025-01-30 01:52:20 +03:00
vcpkg.json add freetype library 2026-02-13 13:14:13 +03:00

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

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

Arch based distros

If you use X11:

sudo pacman -S glfw-x11 glew glm libpng libvorbis openal luajit libcurl freetype2

If you use Wayland:

sudo pacman -S glfw-wayland glew glm libpng libvorbis openal luajit libcurl freetype2

And install EnTT:

yay -S entt

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.


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

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