Skip to content

pheyvaer/solid-chess

Repository files navigation

Solid Chess

This is a decentralized Chess game, build on top of Solid. No central sever is required to run or set up a game. All personal data about the game is stored on your POD. Requests to join a game are sent to the inbox of your opponent directly. You have two types of games: a non-real-time and a real-time game. With a non-real-time game all updates are sent to the inbox of your opponent, who can interact with it when (s)he wants. With a real-time game WebRTC is used to allow for a direct communication between two instances of the Web app.

The game is available in the browser and terminal. Check the live version or one of the following screencasts:

WARNING: The "Clear inbox" button removes all files with (chess) game data in your inbox! So be careful!

Documentation

  • Code documentation can be found here.
  • If you want to know more about how the application interacts with different Solid PODs, you can read this.

What you can do

  • Create a new game, which will send a request to join to your opponent.
  • Join a game, which will send a response back to your opponent.
  • Continue a game you started earlier.

Used technologies/concepts/libraries

Install

Web app

You can run the game locally by doing the following:

  • Clone this repo.
  • npm i: install Node.js dependencies.
  • npm run build:web: bundle the JavaScript via Webpack. The result can be found in web-app/dist/main.js.
  • Serve the contents of the root folder, e.g., via http-server.

CLI

  • npm i solid-chess -g: install the game.
  • solid-chess:launch the game.

Credits

License

© 2018 Pieter Heyvaert, MIT License