2.1 KiB
2.1 KiB
Backlog
tools
- config clippy ?
- bacon : tests runner (ou loom ?)
Rust libs
-
cli : https://lib.rs/crates/pico-args ( ou clap )
-
reseau async : tokio
-
web serveur : axum (uses tokio)
-
db : sqlx
-
eyre, color-eyre (Results)
-
tracing (logging)
-
rayon ( sync <-> parallel )
-
front : yew + tauri
- egui
Others
- plugins avec https://github.com/extism/extism
Backgammon existing projects
-
go : https://bgammon.org/blog/20240101-hello-world/
- protocole de communication : https://code.rocket9labs.com/tslocum/bgammon/src/branch/main/PROTOCOL.md
-
lib rust backgammon
-
network webtarot
-
front ?
Specs
Représentation des cases :
cf. ./blog/game-state-notation.md
13 14 .. 23 24 12 11 .. 2 1
Encodage efficace : https://www.gnu.org/software/gnubg/manual/html_node/A-technical-description-of-the-Position-ID.html
State data
- piece placement -> 77bits (24 + 23 + 30 max)
- dames
- active player -> 1 bit
- step -> 2 bits
- roll dice
- mark points (jeton & fichet) & set bredouille markers (3rd jeton & pavillon)
- move pieces
- dice roll -> 6bits
- points 10bits x2 joueurs = 20bits
- points -> 4bits
- trous -> 4bits
- bredouille possible 1bit
- grande bredouille possible 1bit
Total : 77 + 1 + 2 + 6 + 20 = 105 bits = 17.666 * 6 -> 18 u32 (108 possible)
DONE
Epic : jeu simple
Store
- gestion des évènements
- déplacement de dames
- jet des dés
- déplacements physiques possibles
TODO
Epic : jeu simple
- déplacements autorisés par les règles (pourront être validés physiquement si jeu avec écoles)
- calcul des points automatique (pas d'écoles)
Server
Client
- client tui (ratatui)
- client desktop (bevy)
- client web
Epic : jeu avec écoles
- déplacement de fiches points : validation physique
- évenements de déclaration d'école & contre école