https://github.com/playmint/playerchain-demo
A Playerchains proof of concept demo game. P2P, responsive, multiplayer without any third parties, via DAG consensus.
https://github.com/playmint/playerchain-demo
playerchain
Last synced: 5 months ago
JSON representation
A Playerchains proof of concept demo game. P2P, responsive, multiplayer without any third parties, via DAG consensus.
- Host: GitHub
- URL: https://github.com/playmint/playerchain-demo
- Owner: playmint
- License: other
- Created: 2024-07-01T09:20:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-18T16:46:59.000Z (7 months ago)
- Last Synced: 2025-11-18T18:23:17.259Z (7 months ago)
- Topics: playerchain
- Language: JavaScript
- Homepage:
- Size: 18.6 MB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 
> [!NOTE]
> _Playerchains are a peer-to-peer network architecture for running **responsive,** **multiplayer** games that are **decentralised** and **verifiable**._
### We’ve built a demo game you can play!
### Download and start a playerchain with your friends
[](https://github.com/playmint/playerchain-demo/releases/latest)
> [!TIP]
> _By playing the game together, you and your friends become nodes on your own playerchain._
## Why Playerchains?
_Playerchains are a way for players to have full control of their own responsive, multiplayer games without relying on anyone or anything beyond their own gaming machine._
:balance_scale: We’re interested in moving control of your games away from corporations back to you!
:desktop_computer: For multiplayer games, that means removing the reliance on central servers.
:atom_symbol: Public blockchains are decentralised, but you still rely on external compute. This is expensive and constrains performance.
:white_check_mark: Playerchains remove reliance on anyone outside your game’s group.
Read more about why we think playerchains are cool [here](https://5p0rt5beard.substack.com/p/why-we-need-playerchains)
## How do Playerchains work?
:handshake: Games built on playerchain netcode allow the player's machines to connect and share inputs in realtime.
:ledger: Each player maintains their own history of actions and connected players combine this into a [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph).
:stopwatch: Cutting edge distributed systems protocols ensure everyone agrees on the inputs with fast finality.
:crystal_ball: Game logic runs in deterministic lockstep with prediction and rollback; an established netcode pattern.
:lock_with_ink_pen: Inputs are cryptographically signed, so gameplay and results are provable and allow for player attestations.
:chains: This unlocks interop with blockchains, leaderboard servers, community tools, or other playerchain games.
:crown: Each player maintains their own sovereign blockchain with an immutable history of their actions.
:atom_symbol: The individual chains combine to form an emergent blocklace.
:earth_africa: This global lattice, with a plurality of partial views, opens up new possibilities for connecting worlds.
:speech_balloon: If you have comments or feedback, we'd love to hear from you! Come speak to us [in discord](https://discord.com/invite/VdXWWNaqGN)
You can take a closer look at the architecture [here](https://5p0rt5beard.substack.com/p/playerchain-architecture)
## Contributors
### Todo
- [x] Instructions to build and run from source
- [ ] Host a prebuilt ssc from the Playmint/Socket fork
- [ ] Licensing info
- [ ] Guidance for contributors
### To build and run from source
>[!WARNING]
>building ssc has platform specific dependencies that we don't document, but we hope to provide a prebuilt install package in future.
build `ssc` from the `playmint-next` branch of [playmint/socket](https://github.com/playmint/socket)
```
macos:
rm -rf build; ./bin/clean.sh && NO_IOS=1 NO_ANDROID=1 VERBOSE=1 ./bin/install.sh
windows:
rm -force .\build\ ; .\bin\install.ps1 -verbose
```
then ...
- run `pnpm i` to install stuff
- run `pnpm dev` to run dev build with hmr or `npm start` to run dev build close to prod
- run `pnpm build` to build prod (but you will need an apple id setup - the github action does this for you
## References & Inspiration
- :memo: [Blocklace paper](https://arxiv.org/abs/2402.08068)
- :memo: [Cordial Miners paper](https://arxiv.org/abs/2205.09174)
- :memo: [Latica p2p protocol](https://socketsupply.qa/guides#Network%20Protocol)