Server for Topdeck
- 🖋 TypeScript
- 📦 Node.js
- ⏭ Express.js
- 🔌 Socket.io
- 🧊 Webpack 5
- 🃏 Jest
- 🛠️ Eslint Airbnb
Host a rich multiuser card gaming simulation between several react web clients.
- Play Hearts together online.
- Server holds game state as source of truth.
- Client presents the game visually from your perspective.
- Secrecy. No peeking at other players’ cards, or attempts to track the state of play by remembering ids. (information comes from the server fully redacted of private/hidden state).
- Note: this does not imply automated “rule enforcement” per se (this is out of scope), only that secrecy is implemented seriously. 'Illegal' player actions (e.g., suddenly drawing a bunch of cards from the main deck) are not blocked but are publicly ‘on the record'. For now, rules must be socially enforced.
- Authentication. Only one client/socket per player account.
- Meta-signaling. See the current focus/mouseover of other players.
- Catch-up. If a player drops from the game and can’t receive emitted events, re-entering the game will fast-forward through the events they missed.
- Working with React Mouse Position+Emotion to create a great right-click experience on the client.
- Developing a robust hotkeys system on the client with React Hotkeys.
- Maybe some kind of drag-and-drop system for 'picking up' cards in the client
- Add another similar game besides Five-Card draw, probably Texas Hold ‘Em.
gh repo clone jeremybanka/hotc
ORgit clone https://github.com/jeremybanka/hotc
to download the repocd hotc
to enter the repo foldernpm i
to install necessary development dependencies to node_modulesnpm run start
to run the servernpm run test
to see coverage and tests
- none identified
GPL ^3.0
hello (at) jeremybanka (dot) com