/zeo

Multiplayer WebVR worlds made out of npm modules.

Primary LanguageJavaScript

Multiplayer WebVR worlds, procedurally generated with hotloaded npm modules. 🌱🌳🌋🌲🐦🏃🎮

Build status

⚠️ Alpha. If you can't wait, join us on Slack or add your email here. ⚠️

Overview

Mods are plain hotloaded Javascript. Frontend API is plain THREE.js. Mods run on both frontend and backend, so they can do pretty much anything. Voxel-based world builder mods loaded by default.

Mouse + keyboard emulation; only requirement is a modern browser -- but it's more awesome with a headset.

Avatars and items persist across servers on a globally distributed blockchain. Buy, sell, trade, and own your items, skins and plugins using worthless virtual credits.

Mod API supports the usual suspects: position tracking, controller events, multiplayer avatars tracking, configurator menu rendering, positional audio, asset loader, and more. Normalized to work the same regardless of headset (or lack thereof).

The server also handles firewall routing, module hotloading, and world storage, so you don't have to worry about that nonsense.

Getting started

Node

npm i modulesio/zeo
cd node_modules/zeo
node index.js

Docker

docker run -p 8000:8000 modulesio/zeo

Windows

Download latest release

Cloud

Deploy

Steam release

Coming soon 🦄

Controls

Controls

Plugins

  • Procedural terrain w/ marching cubes
  • Block building with tesselated meshes
  • Voxel lighting system
  • Avatar skins, compatible with Minecraft format
  • Sword, bow, pickaxe
  • Console emulation via RetroArch
  • Tons more

Troubleshooting

General

Windows, OSX, and Linux are supported. node 8+ is required, but included if you use Docker or the Windows builds.

This project uses native modules, so if you're using node you'll need build tools and node-gyp configured or else you'll get an error on npm install.

OSX

  • Make sure you have Xcode and Command Line Tools
  • Check that node-gyp is in the PATH: node-gyp
  • Check that Command Line Tools are installed: xcode-select --install
  • Check that gcc is installed: gcc
  • Point xcode-select to the developer directory: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  • Make sure that ~/.node-gyp/<version>/include/node/config.gypi is correct (correct Xcode version, etc.)

Contact

SlackWikiTwitterEmail