Who is?
Il gioco dell'impostore in tasca
Who is? è la versione tascabile del classico gioco dell'impostore. Costruita in Kotlin + Jetpack Compose, Material 3, Room per la persistenza delle partite e DataStore per le preferenze. Layer di rete Ktor (server CIO + client WebSocket) per il multi-device.
Due modalità d'uso. Modalità single-device: un solo telefono passa a turno fra i giocatori, ognuno vede la propria parola — tranne l'impostore, che vede solo "sei tu l'impostore!". Modalità multi-device LAN: un giocatore avvia il telefono come host (server Ktor + WebSocket esposto sulla stessa Wi-Fi, registrazione mDNS, generazione QR), tutti gli altri scansionano il QR dal proprio telefono per collegarsi come client. Ognuno vede la parola direttamente sul proprio dispositivo, niente piu` passaggio di smartphone, niente sbirciate, niente parola che transita su un altro telefono. Discussione, voto e smascheramento sincronizzati in tempo reale via WebSocket.
Categorie di parole personalizzabili (le crei tu o usi quelle pre-caricate), modalità con/senza indizi, modalità "impostore conosce la categoria", history delle partite.
Funzionalità
- Modalità single-device: un solo telefono passa a turno
- Modalità multi-device LAN: ogni giocatore vede la parola sul proprio telefono
- Server Ktor + WebSocket per la sincronizzazione partita
- mDNS discovery del server sulla rete locale
- QR code per il join istantaneo dei giocatori
- Anti-sbirciata: la parola non transita su altri dispositivi
- Categorie di parole pre-caricate + tue custom
- Numero giocatori variabile (3–12)
- Modalità "con indizi" / "senza indizi"
- Modalità "impostore conosce la categoria"
- History delle partite
- Material 3 con tema chiaro/scuro
Parametrizzazioni
- Modalità: single-device | multi-device LAN
- Porta server WebSocket (default 8767)
- Categoria attiva
- Numero giocatori
- Modalità impostore (vede o no la categoria)
- Lingua categorie parole
Pre-requisiti tecnici
- Android 8.0+ (API 26)
- ~30 MB di spazio
- Per modalità multi-device: 2+ dispositivi sulla stessa Wi-Fi
- Per modalità multi-device: permessi Wi-Fi state, Camera (per QR client)
- In single-device: nessun permesso particolare richiesto