Skip to content
A real-time massive multiplayer decentralized persistent virtual world built on IPFS and delta-crdts.
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
public
rendezvous
src
.gitignore
README.md
package-lock.json
package.json

README.md

DRSP

DRSP, which stands for decentralized r/place (our inspiration), is a real-time massive multiplayer decentralized persistent virtual world.

There is no central server behind this game. You dynamically load small chunks of a gigantic map as you move around, and sync updates about the world state only with the othe people in those chunks.

It's built with IPFS pubsub room and delta-crdts. CRDTs are Confilct-free Replicated Data Types, and are the reason everyone on DRSP ends up with the same world-state no matter what order updates are recieved in.

installation

npm install

run

npm run compile
npm run start

peering servers

Unfortunately this does rely on peering servers to make the initial contact between two users. Here's an example setup of such a server:

First, get nginx and docker (you can do it without docker too).

You will also need https certs since Chrome won't let you use http websocket on https pages.

To start the actual peering server run sudo docker run -d -p 9090:9090 --name rendezvous libp2p/websocket-star-rendezvous:release.

To make it possible to use with https (a must), run nginx with an nginx.conf file like the one in rendezvous. These commands may be useful:

sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl stop nginx

You should now be able to add a peering server to the list that looks something like '/dns4/npfoss.mit.edu/tcp/13579/wss/p2p-websocket-star/'!

You can’t perform that action at this time.