https://github.com/danielesteban/blocks
webxr multiplayer voxels engine
https://github.com/danielesteban/blocks
game-engine nodejs oculus threejs virtual-reality voxels webxr
Last synced: 3 months ago
JSON representation
webxr multiplayer voxels engine
- Host: GitHub
- URL: https://github.com/danielesteban/blocks
- Owner: danielesteban
- License: mit
- Created: 2020-05-23T13:58:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-17T15:41:27.000Z (over 2 years ago)
- Last Synced: 2025-01-30T22:17:17.996Z (3 months ago)
- Topics: game-engine, nodejs, oculus, threejs, virtual-reality, voxels, webxr
- Language: JavaScript
- Homepage: https://blocks.gatunes.com/
- Size: 5.74 MB
- Stars: 61
- Watchers: 10
- Forks: 7
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[blocks](https://blocks.gatunes.com/)
[](https://travis-ci.org/danielesteban/blocks)
==[](https://blocks.gatunes.com/)
#### Create your own server in two steps:
* [Remix glitch.com/~blocks-server](https://glitch.com/edit/#!/remix/blocks-server)
* Set this variables on the `.env` file:
* `NAME` the server name (for the public registry)
* `SEED` 16bit world generation seed. (0 - 65535)#### If you want to experiment with world generation:
* [Remix glitch.com/~blocks-server-worldgen](https://glitch.com/edit/#!/remix/blocks-server-worldgen)
* Set the variables on the `.env` file
* Edit [worldgen.js](https://glitch.com/edit/#!/blocks-server-worldgen?path=worldgen.js)#### You can also use docker-compose if you already own a more powerful server:
```yaml
version: '3'
services:
server:
image: danigatunes/blocks:latest
environment:
- NAME=Your Server Name
- PRELOAD=10
- PUBLIC_URL=https://yourserver.url/
- SEED=1234
- STORAGE=/data
ports:
- "80:8080"
volumes:
- "data:/data"
volumes:
data:
```#### Want your server to show up on the in-game map?
At the moment, the main server list verification is kind of a manual process.
I will check the list from time to time and manually approve them after checking they work correctly.
I need to write better tools to streamline the process, but there's other priorities right now.
If you want to speed this up, you can always drop me a line on [twitter](https://twitter.com/danigatunes) with the url of your server.#### Server configuration
* `CLIENT` serve the client (boolean, defaults to false)
* `DESTINATIONS` serve the destinations web ui (boolean, defaults to false)
* `GENERATOR` the world [generator](server/generators.js) function
* `MAX_CLIENTS` the maximum concurrent players (defaults to 16)
* `NAME` the server name (for the public registry)
* `PRELOAD` a chunk radius around the spawn area to be preloaded
* `PUBLIC_URL` public url of the server (for the public registry)
* `SEED` 16bit world generation seed. (0 - 65535)
* `STORAGE` directory in where to store the generated/modified chunks```bash
# random seed, no preload, 16 clients
node server/main.js
# same, but preloading a 10 chunk radius around the spawn area
PRELOAD=10 node server/main.js
# flat world for only 4 clients with persistence
GENERATOR=flat MAX_CLIENTS=4 PRELOAD=10 SEED=1234 STORAGE=./data node server/main.js
# heightmap driven world generator
GENERATOR=heightmap COLORMAP=./island_rgb.png HEIGHTMAP=./island_height.png node server/main.js
```#### Local development
webxr requires an https origin. to test with headsets on your local network:
```bash
# generate a self-signed cert/key:
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt
# start the server with TLS
TLS_CERT=server.crt TLS_KEY=server.key npm start
```