Partie is a modular toolkit for creating multiplayer board and card games, built on Symfony 8.1.
There is a shared core of reusable building components and adding a new game means basically only writing its rules.
There are currently 18 playable games:
- Tic-Tac-Toe
- Four in a Row
- Checkers
- Ludo
- Mau-Mau
- Rummy
- Koepknack (31)
- Blackjack
- DicePoker
- Solitaire
- Eleven Rush
- Crazy Eights
- Backgammon
- Poker
- Battleship
- Durak
- Nine Men's Morris
- Codewords
Stack:
- Symfony 8.1 (with PHP 8.3)
- Mercure for real-time updates
- Tailwind CSS 4.0
- Local development: docs/development.md
- Production deployment: docs/deployment.md
See docs/adding_a_game.md for a guided walkthrough that builds Tic-Tac-Toe from scratch.
There are in-depth references for every reusable component in docs/components/ like
- cards,
- tokens & boards
- dice
- the engine/state API
- optimistic UI
- and the shared UI kit
A move is a form POST; the server validates it, updates the game's state, and broadcasts a "refresh" signal over
Mercure so every player's browser re-fetches its own view and Turbo morphs the page in.
There's no game-specific server code beyond src/Game/Games/<Name>/.
Optimistic UI: every action gives instant feedback before the server responds.
See docs/architecture.md for a more detailed overview, the request/sync flow, and how lobbies and sessions are stored.