From 4c09fc5156b8f607b43c5d091399c270e83fdc74 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 27 Sep 2023 14:46:40 +0000 Subject: [PATCH 1/2] Update README --- .media/icon.png | Bin 0 -> 10885 bytes README.md | 115 ++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 .media/icon.png diff --git a/.media/icon.png b/.media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fe60506566c971b71568284df4f16a5f314dee GIT binary patch literal 10885 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 [!WARNING]: Missing screenshots. + + + +## Architecture + +This application is a static web page; therefore, it doesn't need any separate server to run! + +Player detection is done via [a small centralized signaling server written in Rust](signaling/) currently hosted at `wss://signaling.dndme.rossilorenzo.dev/`. + +Networking between players is done via [WebRTC]. + +[WebRTC]: https://webrtc.org/ + +## Build + +### Client + +To generate the files necessary to run the production client: + +1. Install the [Node.JS] dependencies with [npm]: + ```console + $ npm install + ``` + +2. Using [npx] and [Vite], build the [Vue] source files: + ```console + $ npx vite build + ``` + +Built files will be placed in `dist/`. + +### Signaling server + +To build the executable for the production signaling server: + +1. Use [Cargo] to build the [Rust] source files: + ```console + $ cargo build --release + ``` + +Built files will be placed in `target/release/`. + +## Deployment + +### Client + +Client deployment is performed automatically via [GitHub Pages] on every commit to `main`. + +### Signaling server + +> [!WARNING]: Missing documentation. ## Development -If you are a developer and want live-reloading you can use vite: -```bash -npm run dev -``` -For a more detailed description of the project internals check the Wiki, I'll try to maintain it up to date. -For any feature request and/or bug open an issue! +### Client + +To run a live-reloading version of the client: + +1. Install the [Node.JS] development dependencies with [npm]: + ```console + $ npm install --dev + ``` + +2. Run the `dev` script: + ```console + $ npm run-script dev + ``` + +### Signaling server + +> [!WARNING]: Missing documentation. + + +[Node.JS]: https://nodejs.org/ +[npm]: https://www.npmjs.com/ +[npx]: https://docs.npmjs.com/cli/v7/commands/npx +[Vite]: https://vitejs.dev/ +[Vue]: https://vuejs.org/ +[Cargo]: https://doc.rust-lang.org/cargo/ +[Rust]: https://www.rust-lang.org/ +[GitHub Pages]: https://pages.github.com/ \ No newline at end of file From 97c7b25c74545963199a43638b26391de6db7402 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 27 Sep 2023 14:49:58 +0000 Subject: [PATCH 2/2] Try to fix `[!WARNING]` labels --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e4308ab..bb7b3ff 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ Peer-to-peer multiplayer virtual tabletop for roleplaying games ## Screenshots -> [!WARNING]: Missing screenshots. +> [!WARNING] +> +> Missing screenshots.