Changelog · v0.6.0
Nuova grafica, tavolo 3D, 16 giocatori!
La 0.6 e’ un restyling completo. Il tavolo e’ ora una scena 3D, una partita puo’ ospitare fino a 16 giocatori e quasi ogni schermata attorno al gioco e’ stata rifatta per stargli dietro. Leggi di piu’ in: “Rebuilding the game in 3D”.

Da 2D a 3D
- Tutto il campo e’ ora una scena 3D vista dall’alto! Avversari, la tua mano, entrambi i mazzi e il tappeto sono veri oggetti su un tavolo invece di elementi piatti della pagina.
- Il layout si adatta a qualsiasi forma di schermo, dai telefoni stretti ai monitor larghi. Prima era un vero problema, ora puoi giocare da ovunque!
- Una nuova palette rosso, verde, blu e giallo, definita una volta sola e usata ovunque: carte, selettore del colore, colori dei posti e popup della vittoria. Molto meglio, no?
- Ogni partita si apre con una cinematica di distribuzione. Ogni carta vola al suo posto e la prima carta degli scarti si gira. Clicca per saltarla.
- Ora puoi cambiare le preferenze di gioco. Odi giocare una carta per sbaglio? Disattiva l’opzione “clicca per giocare”.
- Quando la tua mano supera lo schermo scorre invece di stringersi, con le carte ai bordi che sfumano.
- Cambiare colore manda un’onda sfumata a pixel sul tappeto, con la polvere che fluttua sul tavolo.
- Il verso del gioco e’ mostrato da un cerchio di frecce che avanza attorno al tappeto, e ha avuto anche lui il suo restyling con Three.js.

Carte con peso
- Salta, inverti, +2, jolly e jolly +4 colpiscono il tavolo con un breve hit-stop, un piccolo colpo di camera e un lampo del colore della carta.
- Il contatore +N dei pescaggi scatta a ogni aumento della pila e cambia colore man mano che il debito sale. Anche il mazzo trema.
- Il tuo posto pulsa quando diventa il tuo turno, poi mantiene un leggero bagliore finche’ il turno e’ tuo.
- Le animazioni arrivano direttamente dal server, quindi le carte volano dove sono andate davvero invece che dove il client ha indovinato.
Tutto rispetta le impostazioni di movimento ridotto e di animazione.
Fino a 16 giocatori
- L’host imposta il limite di giocatori per lobby, da 2 a 16, con un nuovo cursore nelle impostazioni della lobby.
- Le carte iniziali vengono limitate, cosi’ il mazzo copre sempre tutti.
- L’elenco delle lobby mostra un indicatore proporzionale di occupazione invece di un’icona per posto.
- Una barra lungo il bordo inferiore dello schermo si svuota per mostrarti quanto tempo ti resta, che sia il tuo timer di turno o la mossa di un altro giocatore.
- Le partite aspettano che tutti finiscano di caricare prima che parta il primo timer di turno.
Modalita’ Corsa
Un nuovo modo di giocare: una corsa a restare senza carte!

- I primi giocatori a finire le carte arrivano 1o, 2o e cosi’ via, e vincono. Tutti gli altri perdono.
- L’host sceglie quanti vincono, dal 5% al 95% dei giocatori.
- I giocatori arrivati escono dall’ordine di turno e guardano (si’, fanno da spettatori!). Gli altri sono classificati per carte rimaste, dal minimo.
Chat e log di gioco
Il log di gioco e’ una cosa che volevo da tempo, una specie di commento divertente su cio’ che succede in partita. Questa e’ la sua prima versione! Ogni battuta e’ stata scritta in inglese e poi tradotta automaticamente, quindi purtroppo in altre lingue potrebbero far meno ridere. Comunque aggiunge un po’ di colore! Ah, e ora puoi anche chattare durante una partita. Per ora le mod non possono aggiungere righe al log di gioco. Cambiera’ nella prossima versione, quando l’architettura passera’ dal client al server.
Ho aggiunto anche qualcosa per chi gioca la prima volta: un glossario. Cliccando con il tasto destro o tenendo premuta una carta compaiono le informazioni su quella carta e su tutto cio’ che nomina! Spero ti piaccia il nuovo tooltip. Il vecchio sembrava quello di Minecraft, haha.
- Il pulsante della chat resta disponibile durante la partita, nell’angolo in alto a destra che era libero.
- La chat ottiene un log di gioco: salti, inversioni, pile di pescaggio, scelte del colore del jolly e quasi-vittorie scrivono brevi righe contestuali.
- Ogni carta giocata compare come parola chiave che puoi toccare per aprire la sua voce del glossario.
- Le serie si intensificano. Fatti saltare tre volte di fila, o guarda la pila di pescaggio arrivare a 8, e il log se ne accorge.
Prestazioni
- Un caricamento completo di tutto tranne la tua lingua pesa circa 0,8 MB sulla rete, contro i circa 4,8 MB della 0.5.5. Circa l’80% in meno, anche con un intero tavolo 3D ora nel gioco.
- Le risorse sono servite compresse: Brotli dove il browser lo supporta, gzip altrimenti. Brotli toglie circa un altro 15-20% al grosso pacchetto 3D.
- Le lingue si caricano su richiesta. L’inglese e’ integrato e ogni altra lingua e’ un download da circa 11 kB che arriva solo quando la scegli. La prima schermata porta circa un terzo di script in meno.
- Lo sfondo animato della home non compete piu’ con la pagina. Inizia a caricarsi quando tutto il resto e’ pronto, poi appare in dissolvenza.
- La musica va in streaming invece di scaricarsi intera, aspetta il tuo primo clic o tasto premuto e non viene scaricata affatto se il volume della musica e’ 0. Anche gli effetti sonori a volume 0 vengono saltati. Sono circa 2 MB in meno alla prima visita.
- Ogni immagine, suono e icona ora ha un hash del contenuto nel nome, cosi’ il browser la tiene per un anno e un aggiornamento ha comunque effetto subito. Le visite successive sono quasi tutte servite dalla cache.
- Il peso morto e’ sparito dalla build: circa 3 MB di file d’arte sorgente e circa 1 MB di decoder 3D inutilizzati non vengono piu’ distribuiti con il gioco.
- Una schermata di caricamento compare ora prima della partita, per assicurarsi che tutti i giocatori entrino insieme e ridurre i cali di fotogrammi dovuti al caricamento di risorse durante il gioco.
Sono numeri approssimativi presi dal pannello di rete del mio browser, non un benchmark, quindi prendili come indicativi.
Per i modder
Le partite ora girano su un motore guidato dai dati. Carte, mazzi e regole sono contenuti che il server assembla, invece del comportamento compilato di prima. Nelle prossime versioni apriro’ la possibilita’ di creare esperienze proprie, qualche funzione alla volta, per capire cosa funziona e cosa no. Spero che entro la v1.0 ci sia un workshop di mod e set di regole completamente funzionante!
Sicurezza
Ho corretto MOLTI bug di sicurezza e, in generale, bug che permettevano a un singolo messaggio JSON o WS malformato di far crollare l’intero server. Ogni versione rende il server un po’ piu’ robusto, il che e’ sempre un bene!
- Le connessioni WebSocket da origini non in elenco vengono rifiutate.
- Il server si rifiuta di avviarsi con segreti deboli o mancanti.
- Le risposte ora portano intestazioni di sicurezza del browser piu’ severe.
- I messaggi diretti sono cifrati e legati al mittente e al destinatario, e il server ora gira con meno privilegi.
Problemi noti
- Le mod non possono ancora scrivere le proprie righe del log di gioco, quindi le carte modificate compaiono senza reazione.
- La schermata del profilo e’ grezza e aspetta ancora il suo restyling.
- Oltre i quattro posti, i colori dei giocatori si ripetono nell’ordine rosso, verde, blu, giallo. E’ in programma un vero colore del profilo!