All Projects → konstructs → server

konstructs / server

Licence: MIT license
A voxel based game server.

Programming Languages

scala
5932 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to server

client
A voxel based game client.
Stars: ✭ 48 (+4.35%)
Mutual labels:  voxel, konstructs
parse-magica-voxel
Parse MagicaVoxel .vox files to javascript objects works in browser or server
Stars: ✭ 52 (+13.04%)
Mutual labels:  voxel
ObjToSchematic
A tool to convert .obj files into Minecraft Schematics
Stars: ✭ 156 (+239.13%)
Mutual labels:  voxel
voxel-editor
N-Space: a mobile app for building 3D interactive worlds
Stars: ✭ 39 (-15.22%)
Mutual labels:  voxel
basic multiplayer unity
UDP Client-Server implementation in Unity
Stars: ✭ 44 (-4.35%)
Mutual labels:  game-server
magx
Multiplayer game server framework
Stars: ✭ 34 (-26.09%)
Mutual labels:  game-server
TanksNetworkingInAzure
Tanks Networking demo project from Unity Store that can be deployed in Azure Cloud and scaled using Kubernetes
Stars: ✭ 20 (-56.52%)
Mutual labels:  game-server
logicmoo workspace
https://jenkins.logicmoo.org/job/logicmoo_workspace https://logicmoo.org/xwiki/
Stars: ✭ 41 (-10.87%)
Mutual labels:  game-server
otservbr-global-archived
Archived, read-only repository. New repository: https://github.com/opentibiabr/otservbr-global
Stars: ✭ 340 (+639.13%)
Mutual labels:  game-server
avacity-2.0
Игровой сервер, частично совместимый с клиентом игры "Аватария"
Stars: ✭ 39 (-15.22%)
Mutual labels:  game-server
ctf-gameserver
FAUST Gameserver for attack-defense CTFs
Stars: ✭ 38 (-17.39%)
Mutual labels:  game-server
Blood-Voxel-Pack
Additional voxel models for Blood video game. Compatible with BuildGDX, NBlood, and Fresh Supply.
Stars: ✭ 42 (-8.7%)
Mutual labels:  voxel
mine.js
🌏 A voxel engine built with JS/TS/RS. (formerly mc.js) (maybe mine.ts? or even mine.rs?)
Stars: ✭ 282 (+513.04%)
Mutual labels:  voxel
voxel-physics-engine
Simple but physical engine for voxels. Demo:
Stars: ✭ 59 (+28.26%)
Mutual labels:  voxel
nakama-docs
Documentation for Nakama social and realtime server.
Stars: ✭ 44 (-4.35%)
Mutual labels:  game-server
Steam-Server-Manager
PowerShell Steam Server Manager
Stars: ✭ 33 (-28.26%)
Mutual labels:  game-server
pigame
Just a game server template for Erlang/OTP.
Stars: ✭ 25 (-45.65%)
Mutual labels:  game-server
craftus reloaded
A second attempt at a homebrew Minecraft clone for 3DS
Stars: ✭ 44 (-4.35%)
Mutual labels:  voxel
dendro
volumetric modeling for grasshopper built on top of openvdb
Stars: ✭ 47 (+2.17%)
Mutual labels:  voxel
DynamicCities
Cities that get fancy!
Stars: ✭ 17 (-63.04%)
Mutual labels:  voxel

Konstructs Server

Join the chat at https://gitter.im/konstructs/server

Build Status

This is a Infiniminer/Minecraft inspired game server. It has four overall goals:

  • Scalability
  • Huge worlds
  • Extendability
  • Server driven game logic

Scalability - actors

The server is implemented using Akka actors and the new IO subsystem ported from the Spray project. We try to keep everything nicely isolated in or behind an actor to make the game easy to scale up (run on multiple cores/CPUs). We hope that this in the long run also will help with scaling out (running the same world on several servers).

Huge worlds - separated game logic and world

At the core we try to have very simple block format that is shared with the client. We store all blocks compressed using DEFLATE, also when in memory or being sent to the client. This means that we can keep a huge amount of blocks in memory which helps fight IO latency as well as keeping disk IO to a minimum. Actually, one of the unimplemented features is block unloading. So far we never needed it!

Since we can manage a huge amount of blocks, it makes sense to not limit world interaction to where the player is. Therefore we have completely separated all world logic from the world itself. Therefore automatic world interaction is not dependent on the part of the world being loaded, but is always done for all of the world via plugins.

Extendability - plugins are actors

Since the server is at is core just a set of actors exchanging messages every plugin is created equal. Message interfaces are provided to interact with the block world as well as with players. Persistence are provide by actors capable of loading and storing JSON data on behalf of other actors. It is therefore easy to create a plugin that keeps out of the way of other plugins.

Server driven game logic - true multiplayer game

To keep the game extremely extensible, while still keeping the client simple, all game logic is implemented server side. This means that for the player there is no need to download different plugins or versions of the client to play different worlds. Plugins mainly interact with the block world and/or using one of the simple features implemented in the client (like the inventory). We are also planning on adding some kind of crafting support.

Building

Get SBT!

sbt test to run unit tests.

Running

sbt run starts the server and binds port 4080.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].