# Cards For Humanity A game master server for the popular game [Cards Against Humanity](https://www.cardsagainsthumanity.com/) using data from [Chris Hallberg](https://crhallberg.com/)'s project [JSON Against Humanity](https://github.com/crhallberg/json-against-humanity) (everyone say "Thanks, Chris!") This started as a problem trying to play games with friends who are all on different platforms. This shall be as cross-platform as it gets. I want it to work on anything that can establish a connection and allow anyone to write any front-end they can dream up whether it be a web page, chat bot, VR, etc. Any clients who share a master server can play together across any platform. ## Test/Dev: ### Server With auto-reload: * [Install cargo-watch](https://github.com/watchexec/cargo-watch?tab=readme-ov-file#install) ```sh watch -i client -cx run ``` Without auto-reload: * `cargo run` ### Client * [Install Trunk](https://trunkrs.dev/#install) * `trunk serve --open` ## Build: ### Client * `trunk build --release` ### Server * `cargo build` -- * The server automatically serves the built client from `/dist` at `0.0.0.0:3030` * Configure any custom clients to connect to `ws://localhost:3030/websocket` ## TODO: * figure out auth * finish game logic * support card text editing * prevent import of cards that have been seen already and edited * handle duplicates * use db * efficiency * make demo clients for multiple platforms and screens