Il guardiano invisibile, e ban che finalmente si spiegano da soli 👁️
Tempo fa vi abbiamo parlato qui di un gioco a misura di bambino fin dal progetto: segnalazioni, feedback e un occhio vigile. Onestamente, l'occhio vigile era la parte più debole: potevamo ricevere segnalazioni, ma riuscivamo a malapena a guardare cosa stesse succedendo davvero in un mondo. È su questo che abbiamo lavorato, con due elementi: una modalità osservatore per la vigilanza e un sistema di ban completamente rifatto che finalmente dice ai giocatori coinvolti cosa sta succedendo.
La modalità osservatore. Quando arriva una segnalazione («qualcuno costruisce cose senza senso», «qualcuno scrive cose cattive»), ora possiamo entrare in quel mondo senza disturbarlo. E in modo davvero invisibile, non del tipo «per favore non disegnarmi» che un gioco modificato potrebbe semplicemente ignorare. Il server tiene l'osservatore tutto per sé: nessun avatar, nessuna nave parcheggiata, nessuna piattaforma di atterraggio occupata, nessuna animazione di discesa, nessun animale domestico, nessuno speeder, nessuno slot giocatore occupato e nessuna modifica al numero di giocatori. Per tutti in quel mondo non c'è, letteralmente, nessuno. Il volo attraversa i muri (altrimenti non si potrebbe mai entrare in una base sigillata), le creature ignorano l'osservatore e comunque non è possibile sparare.
Osservare vuol dire osservare. L'osservatore non può toccare niente nel mondo, con una sola eccezione: può estrarre blocchi. È l'unica leva che toglie davvero una costruzione offensiva da un mondo, e ogni singola rimozione viene registrata. In chat l'osservatore è silenziato; mostrarsi di proposito richiede un comando a parte. E un badge SPECTATOR permanente resta sullo schermo per tutto il tempo: non si deve mai credere per sbaglio di stare giocando normalmente.
Perché è fatto in modo così rigido. Due decisioni invisibili da fuori ma che per noi contavano. Primo: il ruolo di osservatore non viene memorizzato nel salvataggio, ma ricalcolato dalla configurazione del server a ogni ingresso. I salvataggi si possono scaricare e ricaricare altrove: un ruolo di supervisore memorizzato viaggerebbe con loro, su macchine che non sono nostre. Secondo: non è un'opzione del mondo. Chi possiede un mondo non deve poter disattivare la vigilanza su quel mondo. Per questo non dipende nemmeno dall'impostazione dei «cheat da admin», che i mondi comunque tengono disattivata per impostazione predefinita.
Trovare dove è successo qualcosa. Per questo ci sono nuovi comandi: /players mostra chi è online, e tutti quelli che hanno mai giocato in questo mondo; /builds mostra dove qualcuno ha costruito; /where vi porta da un giocatore; /goto salta anche tra pianeti (il vecchio teletrasporto impostava solo le coordinate e vi lasciava sul pianeta sbagliato 🙈). In più, una pagina di panoramica nel nostro pannello di amministrazione legge direttamente dal salvataggio del mondo: giocatori, strutture e «punti caldi di costruzione»; così si trova una casa che qualcuno ha piazzato in mezzo al nulla senza un Nucleo della base. E ogni cella modificata ora ricorda chi l'ha toccata per ultimo e quando. Prima di inserirlo abbiamo misurato quanto costa in spazio: nemmeno una riga in più nel database, perché la memorizzazione avviene comunque per cella.
Anche nei mondi privati, dietro una doppia serratura. Le prime versioni avevano un buco assurdo: l'osservatore invisibile poteva raggiungere solo mondi pubblici e senza password, proprio quelli in cui succede meno. I bambini giocano quasi sempre in mondi privati, la cui password gira in una cerchia di amici. Perciò ora la vigilanza arriva anche lì. Perché non diventi una porta di servizio, l'accesso ha una doppia serratura: serve un account operatore che si può creare solo presentando un codice segreto, e il Nome giocatore dedicato, riservato in tutto il sistema, che nessun altro può registrare né usare per giocare. Se manca uno dei due, non succede proprio niente.
E poi i ban. Prima era gestito davvero male: un account bannato poteva accedere del tutto normalmente, e il muro compariva solo entrando in un mondo, senza motivo, senza data e senza modo di chiedere. Dal punto di vista del giocatore, il gioco era semplicemente rotto. Ora è già l'accesso a portare lo stato delle cose, e c'è una casella dei messaggi: «il tuo mondo è stato eliminato (motivo)», «il tuo ban è stato revocato». Quel messaggio viene scritto nel momento in cui succede qualcosa: dopo, l'informazione non esiste più, perché un mondo eliminato, beh, non c'è più.
Una pausa invece di un esilio. I ban ora sono innanzitutto temporanei: tre giorni per impostazione predefinita. Una pausa scaduta vale come «non bannato» in ogni punto di controllo, quindi «tre giorni di stop» non può mai trasformarsi di nascosto in un'esclusione permanente. La registrazione resta comunque per lo storico. I motivi arrivano come categorie fisse (chat, griefing, imbrogli, nome, altro) mostrate tradotte in tedesco e inglese, e se una persona aggiunge qualcosa, compare alla lettera, esattamente come è stato scritto. La parte più importante di tutto: il messaggio può indicare il giorno in cui siete di nuovo i benvenuti.
I proprietari dei mondi ora possono moderare il proprio mondo. Se possedete un mondo, avete la stessa leva per il vostro mondo: una vostra lista di ban, applicata in modo affidabile quanto la nostra. Ricorda l'account (quindi cambiare nome non serve) e il nome in gioco (gli ospiti dell'arcade non hanno proprio un account). Scegliete da un elenco di persone che hanno davvero visitato il mondo: scrivere i nomi a mano è esattamente il modo per bloccare il bambino sbagliato. E siccome un ban decide sempre solo il prossimo ingresso, c'è anche l'espulsione: il giocatore finisce subito nel menu, con un motivo, nella sua lingua. Il messaggio parte prima che la connessione si chiuda, così un gioco modificato non può semplicemente ignorarlo e continuare a giocare.
Cosa non abbiamo costruito di proposito. La mossa ovvia contro l'aggiramento dei ban sarebbe il riconoscimento del dispositivo («account nuovo, stesso PC»). Lo abbiamo scartato per tre motivi: l'identificatore cambia non appena si inserisce una chiavetta USB o Windows fa un aggiornamento più grosso; un gioco modificato lo può falsificare in cinque minuti; e i computer scolastici con la stessa immagine apparirebbero tutti uguali. Poi c'è la parte legale: leggere un identificatore del dispositivo richiede il consenso secondo la legge tedesca, che i minori di 16 anni non possono dare validamente. La vigilanza non deve diventare sorveglianza. E un'altra regola scritta nel codice: l'account operatore stesso non può essere né bannato né espulso, altrimenti la vigilanza potrebbe essere disattivata dall'interno.
Tutto questo è già nel codice e va online con il prossimo aggiornamento del server. Speriamo sinceramente di doverlo usare il meno possibile. 🌟
Commenti