Plugin-based client-server voxel game engine written in D language
D
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
builds/default Add .gitignore to default build folder. Jan 6, 2016
config Update travis. Jun 2, 2018
deps Fix new compiler deprecations. Enable debug OpenGL context on demand.… May 1, 2018
lib Make dll load from lib folder directrly, instead of copying them to b… Nov 7, 2015
pluginpacks Add input debug info. Cleanup chunk observer manager. Move modules fr… Feb 27, 2017
plugins Add default GL settings for each platform to WindowParams. Aug 15, 2018
res @ 13c9c9f Add new console. Move GuiContext creation to graphics plugin. Add bor… Nov 3, 2017
source Add default GL settings for each platform to WindowParams. Aug 15, 2018
subprojects/snapshot_management Add dimention manager. Add voxelman.log package. Oct 8, 2016
tools Fix new compiler deprecations. Enable debug OpenGL context on demand.… May 1, 2018
.editorconfig Add command help listing with help command. New universal command han… Jan 1, 2018
.gitignore Rename voxelman.world.block.utils -> voxelman.world.block.blockinfo. … Oct 20, 2017
.gitmodules Fix /res Oct 23, 2017
.travis.yml Update .travis.yml Aug 15, 2018
CHANGELOG.md Add command help listing with help command. New universal command han… Jan 1, 2018
LICENSE.md Happy New Year 2018 Jan 1, 2018
README.md Add command help listing with help command. New universal command han… Jan 1, 2018
TODO.md Rename voxelman.world.block.utils -> voxelman.world.block.blockinfo. … Oct 20, 2017
dub.json Fix new compiler deprecations. Enable debug OpenGL context on demand.… May 1, 2018

README.md

Voxelman Build Status Join the chat at https://gitter.im/MrSmith33/voxelman

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.

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 300MB150MB 800MB200MB 1.8GB400MB
Default flat terrain 80MB18MB 160MB80MB 400MB170MB
King's landing 200MB180MB 500MB550MB 600MB700MB

Starting game with 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 with 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 options by passing switch in 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 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

Linux

Install compilers:

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

Install dependencies:

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

Compile:

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

Run:

cd builds/default
voxelman --app=combined