MihailRis / VoxelEngine-Cpp

Minecraft-like game engine in C++ with OpenGL
754 stars 79 forks source link
game game-engine opengl voxel-game

voxel-core VoxelCore

Latest release

Build project in Linux

Install libraries

Install EnTT

git clone https://github.com/skypjack/entt.git
cd entt/build
cmake -DCMAKE_BUILD_TYPE=Release ..
sudo make install

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

ALT Linux based distro

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

Debian based distro

sudo apt install libglfw3-dev libglfw3 libglew-dev libglm-dev libpng-dev libopenal-dev libluajit-5.1-dev libvorbis-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 distro

sudo dnf install glfw-devel glfw glew-devel glm-devel libpng-devel libvorbis-devel openal-devel luajit-devel

Arch based distro

If you use X11

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

If you use Wayland

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

Build engine with CMake

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

Build project in macOS

Install libraries

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

[!TIP] If homebrew for some reason could not install the necessary packages: lua luajit openal-soft, then download, install and compile them manually (Lua, LuaJIT and OpenAL).

Build engine with CMake

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

Build in Windows

[!NOTE] Requirement:

vcpkg, CMake

git clone --recursive https://github.com/MihailRis/VoxelEngine-Cpp.git
cd VoxelEngine-Cpp
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_WINDOWS_VCPKG=ON ..
del CMakeCache.txt
rmdir /s /q CMakeFiles
cmake -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_WINDOWS_VCPKG=ON ..
cmake --build . --config Release

[!TIP] You can use rm CMakeCache.txt and rm -rf CMakeFiles while using Git Bash

[!WARNING] If you have issues during the vcpkg integration, try navigate to vcpkg\downloads and extract PowerShell-[version]-win-x86 to vcpkg\downloads\tools as powershell-core-[version]-windows. Then rerun cmake -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_WINDOWS_VCPKG=ON ..

Build using Docker

Step 0. Install docker on your system

See https://docs.docker.com/engine/install

Step 1. Build docker container

docker build -t voxel-engine .

Step 2. Build project using the docker container

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

Step 3. Run project using the docker container

docker run --rm -it -v$(pwd):/project -v/tmp/.X11-unix:/tmp/.X11-unix -v${XAUTHORITY}:/home/user/.Xauthority:ro -eDISPLAY --network=host voxel-engine ./build/VoxelEngine