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.
npm run compile npm run start
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