This is yet another clone of Cards Against Humanity™, with all original content, in a web based format that lets you play in the same room with two or more people.
Fun Fact: It's named "-web" since this is a port of the mechanics and content from enenbee's Scratch project.
- A deployment of the server, which is available as a Docker image
- A computer or web-enabled TV that everyone can see
- Each player uses a web browser on their mobile device and/or computer
Going into the "Host" option, the join code that players can use at the same website is displayed at the bottom. As players join, they are shown in the listing along with any ghost players. Ghost players will randomly choose a white card that gets included for voting.
With the join code from the host's lobby, go into the "Join" option, enter your player name and the join code.
When the host starts the game or a new round, everyone's display will update to show a hand of randomly chosen white cards. Your goal is to pick the funniest, silliest, most offensive card that goes with the blank slot on the host's displayed black card.
When everyone has submitted their card for voting, each player gets the list of submitted cards to pick their favorite. Maybe it's your own. That's ok.
When all votes are submitted, the host's display will show which card(s) got the most votes and award points to the submitters. If two or more cards got the most votes, then all of those players get a point. Even ghosts can get points -- sometimes you lose to the roll of a dice.
docker run -d --name cah -p 8080:8080 ghcr.io/zenengeo/cah-web
This application is a hybrid of Spring Boot for the backend/API and a React for the frontend. The Spring Boot code is located in the usual places, such as src/main/java
along with cards and config in src/main/resources
. The frontend code is located in src/main/ui
.
Build the combined backend-frontend jar using
./gradlew build
Or build a Docker image with:
`./gradlew buildSimpleBootImage -PimageName=cah-web`
Refer to the io.github.itzg.simple-boot-image plugin for more image build options.