cards for humanity
Find a file
2024-08-08 04:59:29 -04:00
client some style stuff 2024-08-07 22:48:19 -04:00
data more trash 2024-08-06 00:15:22 -04:00
lib left a mess 2024-08-08 04:59:29 -04:00
server left a mess 2024-08-08 04:59:29 -04:00
.gitignore add leptos future test client 2024-07-18 04:00:56 -04:00
CAH_PrintPlay2021-GameRules.pdf add rules 2024-04-07 01:01:55 -04:00
Cargo.lock update deps 2024-08-07 21:21:23 -04:00
Cargo.toml profile 2024-07-23 23:05:27 -04:00
LICENSE license 2024-04-07 00:50:05 -04:00
readme.md reserved usernames 2024-08-05 00:08:29 -04:00
tailwind.config.js use workspaces 2024-07-20 23:00:19 -04:00
test lazy 2024-07-24 19:20:49 -04:00
Trunk.toml jsoooonn 2024-07-21 22:48:15 -04:00

Cards For Humanity

A game master server for the popular game Cards Against Humanity using data from Chris Hallberg's project 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:

Then:

watch -i client -cx run

or if you're lazy like me just run ./test

Without auto-reload:

cargo run

Client

Then:

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://0.0.0.0:3030/websocket

TODO:

  • finish game logic
  • prevent zombie users after browser crash
  • figure out proper auth - client's problem?
  • use db
  • test bincode and probably move away from json
  • make typescript sdk
  • support card text editing
  • prevent import of cards that have been seen already and edited
  • handle duplicates
  • efficiency
  • make demo clients for multiple platforms and screens