Voxel engine


Keywords
application, desktop, game, server, library, gamedev, d, dlang, engine, game-engine, launcher, opengl, voxel, voxelman
License
BSL-1.0
Install
dub fetch voxelman --version 0.9.0

Documentation

Voxelman Build Status

Plugin-based engine written in D language.

Voxelman plugin pack includes plugins for a voxel-based game(s).

Launcher will allow for any plugin combination, while master-server will host all plugins and online server list.

Screenshots and videos

Twitter

Imgur album

See releases for binaries.

See youtube channel for videos.

Contacts

Join Discord servers:

Installing game

Compiler

Any D compiler with frontend version of 2.075 and newer.

Requirements

  • OpenGL 3.1 support
  • Multicore CPUs are utilized
  • Memory consumption
Map name 10 (21^3) chunks 20 (41^3) chunks 30 (61^3) chunks
RAM VRAM RAM VRAM RAM VRAM
Default heightmap terrain 300MB 150MB 800MB 200MB 1.8GB 400MB
Default flat terrain 80MB 18MB 160MB 80MB 400MB 170MB
King's landing 200MB 180MB 500MB 550MB 600MB 700MB

Starting game from launcher

Single player

  • Start launcher
  • Press New in worlds tab to create new world
  • Select new world and press Start

Multiplayer

  • To start a server select world and press Server button
  • Connect to your server in Connect tab of Play menu
  • Select local server and press Connect at the bottom
  • To stop the server, go to the Code menu and hit Stop button of your server instance

Starting game from command line

  • Executable must be started from builds/default folder
  • voxelman --app=[client|server|combined] --world_name="new world" --name="Player"
  • You can override any config option with a switch of a form: --option=value
  • Array config options are passed using comma between items. Like --resolution=1280,800

Server commands

  • Can be inputted from server console inside launcher Debug menu, or from client's in-game console
  • tp <x> [<y>] <z> | tp <player name> - teleports to position or other player's location
  • tp u|d|l|r|f|b <num_blocks> - teleports player in choosen direction
  • spawn teleports to starting world position
  • spawn set sets world spawn
  • dim_spawn teleports to dimension spawn pos
  • dim_spawn set sets dimension spawn pos

Controls (Can be changed in config/client.sdl)

  • Q to lock mouse
  • WASD, LCtrl, Space to move. LShift to boost
  • Right and Left to switch tools
  • R to rotate blocks
  • RMB to place
  • LMB to remove
  • MMB to pick block
  • ~ open console
  • [ and ] to change view distance
  • Keypad - and + to change movement speed
  • U disable position update
  • F flying mode
  • N noclip
  • KP+, KP- change movement speed
  • F2 chunk grid
  • F5 update all meshes
  • C toggle frustum culling
  • Y toggle wireframe mode

Building from sources

Installing compilers

Linux

sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update
sudo apt-get install build-essential dmd-bin dub

Windows

Installing dependencies

Linux

sudo apt-get install liblmdb-dev liblz4-dev libglfw3-dev libenet-dev

Windows

Download compiled static libs from here

Unpack lib folder inside voxelman folder.

Compile

git clone --depth=50 https://github.com/MrSmith33/voxelman voxelman
cd voxelman
git submodule update --init --recursive
dub build

With sources and dependencies you can now also compile & run via launcher.

Run

cd builds/default
voxelman --app=combined