From c34ec3d30a26d6cd9f9f0aab48086913a9ff21ca Mon Sep 17 00:00:00 2001 From: s3lph Date: Thu, 13 Oct 2022 04:41:31 +0200 Subject: [PATCH] Add logo, readme --- README.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++ logo/webgames.png | Bin 0 -> 10057 bytes logo/webgames.svg | 42 ++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 README.md create mode 100644 logo/webgames.png create mode 100644 logo/webgames.svg diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6db26a --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +![3 «Set» cards](logo/webgames.svg) + +# Webgames + +Collection of just-good-enough browser-based multiplayer games written during COVID lockdown to play our favorite games remotely. + +* No authentication +* No best practices +* No sophisticated web framework +* Just a bunch of multiplayer games quickly hacked together. + +## Quickstart + +``` +python3 -m virtualenv venv +. venv/bin/acticate +pip install -e . +python -m webgames 0.0.0.0 8080 +``` + +## Games + +- **Sudoku**: Whoever finishes the sudoku first, wins +- [**Set**](https://en.wikipedia.org/wiki/Set_(card_game)) +- [**Carcassonne**](https://en.wikipedia.org/wiki/Carcassonne_(board_game)) including some of its extensions +- [**Go**](https://en.wikipedia.org/wiki/Go_(game)): Play against another player or against the [GNU Go](https://www.gnu.org/software/gnugo/) engine. **Requires GNU Go to run in GTP mode as an inetd-style service** (see below) + + +### GNU Go Systemd Socket + +The following example config configures a socket-actived systemd unit which runs GNU Go in GTP mode, listening on `/run/gnugo.sock`. + +**/etc/systemd/system/gnugo@.service**: + +```ini +[Unit] +Description=GNU Go GTP Daemon + +[Service] +StandardInput=socket +ExecStart=/usr/games/gnugo --mode gtp +DynamicUser=yes +PrivateTmp=yes +NoNewPrivileges=yes +ProtectSystem=full +ProtectHome=yes +``` + +**/etc/systemd/system/gnugo.socket**: + +```ini +[Unit] +Description=GNU Go GTP Socket + +[Socket] +ListenStream=/run/gnugo.sock +Accept=true + +[Install] +WantedBy=sockets.target +``` + +## License + +Licensed under the MIT License. See [LICENSE](./LICENSE) \ No newline at end of file diff --git a/logo/webgames.png b/logo/webgames.png new file mode 100644 index 0000000000000000000000000000000000000000..b28d4e86efc6d86f53762d31fbfac329f55bfd9a GIT binary patch literal 10057 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 JOXSRg{trOlt1bWl literal 0 HcmV?d00001 diff --git a/logo/webgames.svg b/logo/webgames.svg new file mode 100644 index 0000000..8b125a4 --- /dev/null +++ b/logo/webgames.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +