THE MYSTERY OF THE SANTA MARIA
RSS
← Devlog
v0.42 · v0.44.3–v0.44.8 · doppiaggio · strumenti · verifica · playtest

La battuta arrivava a metà

Un banco di lavoro metallico dentro una nave cargo: un foglio piegato e riaperto molte volte, coperto di scrittura a mano illeggibile, le mani scure di un uomo appoggiate al banco accanto al foglio, una matita, una chiave inglese e un contenitore a tenuta stagna aperto

Ogni frase parlata del gioco ha un nome in codice e un posto in un elenco. L’elenco lo costruisce un programma che legge i file del gioco, tira fuori il testo e lo mette in fila. È quello che finisce in mano a chi doppia: un nome, una riga, quello che deve dire.

Il 7 agosto un controllo automatico è andato a cercare una parola dentro una di quelle frasi e non l’ha trovata. La nota di regia chiedeva un’enfasi proprio lì, quindi il controllo ha segnalato il guasto nell’unico modo che conosceva: quella riga non esiste più.

La riga esisteva. Nel gioco c’era, scritta e funzionante. Mancava dall’elenco.

Un testo tagliato è comunque un testo

Nel codice le frasi non stanno sempre su una riga sola. Spesso sono scritte a pezzi, e il programma le ricuce prima di metterle in elenco, perché al doppiatore deve arrivare la battuta intera. Quando incontrava un pezzo che non sapeva leggere si fermava e consegnava quello che aveva raccolto fino a lì. Senza dire niente a nessuno.

Era una scelta, ed era scritta nel commento accanto al codice: meglio una frase più corta che una frase con un buco in mezzo. Per il caso a cui pensava chi l’ha scritto va benissimo.

Il caso a cui non aveva pensato nessuno è un altro. Quella battuta ha due finali diversi, uno per chi ha già scoperto una certa cosa e uno per chi non l’ha ancora scoperta. Il programma arrivava al bivio, non lo riconosceva, si fermava. Nell’elenco finiva la prima metà e basta.

Il modo in cui taceva è la parte che pesa. Un testo tagliato è un testo valido: si legge, ha senso, finisce con un punto. Nessuno strumento poteva accorgersene, perché nessuno strumento sa quanto dovrebbe essere lunga una frase. Sarebbe arrivato in sala di doppiaggio così, e così si sarebbe inciso.

Adesso i bivi vengono risolti tutti e due, con la loro condizione accanto. E tutto il resto che il programma non sa leggere non passa più in silenzio: si ferma con un errore e dice quale pezzo di codice l’ha bloccato. Se un giorno una battuta avesse più di otto forme diverse, si rifiuta di indovinare e lo dichiara: una frase con otto forme non è più una battuta, è un pezzo di logica travestito.

L’unica ragione per cui il difetto è saltato fuori è che qualcun altro cercava tutt’altro.

Un nome è una presa in sala

Sistemato il programma, il bivio si vede. E dietro si vede il problema vero, che con lo strumento non c’entrava niente.

Le due versioni della battuta avevano un nome solo. Un nome vuol dire una presa in sala: il doppiatore la legge, la incide, e si va alla prossima. Se sotto lo stesso nome ci sono due frasi diverse, una delle due resta muta. Oppure, peggio, si incide quella sbagliata, perché chi legge non sa che ce n’è un’altra.

Le note interne di due giorni prima lo dicevano già, nero su bianco: alla registrazione ne servono due prese. Poi il lavoro è andato avanti e la frase è rimasta lì, in un documento che nessuno rileggeva.

Adesso i nomi sono due. Quello vecchio resta attaccato al ramo per cui era stata scritta la nota di regia, così la nota non si butta; il secondo è nuovo. Le battute parlate del gioco sono 318, e tutte e 318 hanno un testo solo.

Una delle due frasi è stata anche riscritta. Era nata il 5 agosto dentro una correzione, quattro giorni dopo la chiusura della revisione dei testi, quindi da un giro di lettura non era mai passata. Riletta accanto alla gemella, il difetto si vedeva: confermava una cosa che il giocatore aveva appena visto con i suoi occhi, e rubava il colpo alla battuta successiva, che è il punto della scena.

La regola che non aveva deciso nessuno

Le due versioni condividono l’inizio: quattro righe uguali, e cambia solo la chiusa. Scriverle due volte per intero vuol dire tenere due copie della stessa prosa, e due copie prima o poi divergono. Un giro di revisione ne corregge una e non l’altra, e non se ne accorge nessuno finché non lo sente un attore.

La soluzione è scrivere quelle quattro righe una volta sola e richiamarle nei due punti. Solo che il programma di estrazione non sapeva leggere un richiamo del genere: non trovava nessun testo e si fermava con un errore bloccante.

Quindi la forma giusta era vietata di fatto, e il divieto non l’aveva deciso nessuno. Era il limite di uno strumento che si comportava come una regola di scrittura.

Il commento era un ordine

Lo stesso giorno, un’altra cosa scritta che comandava senza averne il diritto.

Fino al 30 luglio i documenti di pre-produzione stavano fuori dal progetto e i nostri programmi di controllo potevano leggerli, non modificarli. Il 30 luglio la regola è caduta a metà: la parte sulla lettura è rimasta in piedi, il divieto di scrivere no.

I commenti dentro il codice, però, continuavano a ripetere la regola vecchia. In sei punti diversi, e in maiuscolo: si legge e non si scrive mai, per nessun motivo, nemmeno per correggere un errore evidente.

Il 7 agosto quel commento l’abbiamo letto e ci abbiamo creduto. Per tre volte, nel corso della stessa sessione, abbiamo detto che una nota di regia sbagliata non si poteva correggere perché quel file non era nostro.

Un commento che cita una decisione caduta non è documentazione vecchia. È un ordine, e chi lo legge lo esegue. I sei punti adesso dicono la cosa giusta, e il divieto che serviva davvero resta in piedi sulla sua ragione vera: uno strumento che misura non aggiusta quello che sta misurando, se no il rosso sparisce invece di essere riferito.

Il registro che nessuno confrontava

C’è un programma che cerca i nomi rimasti nei documenti ma spariti dal gioco. Battute morte, insomma. Ne segnalava otto e chiedeva di metterle a posto.

Erano già a posto. Tutte e otto stavano nel registro dei ritiri con la data e il motivo, e quattro erano cadute insieme ai tre verbi tolti pochi giorni prima. Solo che quel programma il registro non lo leggeva. Non lo aveva mai letto: la parola non compariva nel suo codice.

All’inizio era voluto, e la ragione è buona. Uno strumento che sa già quali battute sono morte non vale più niente come controllo indipendente, e la prima volta che è girato ha ritrovato per conto suo cose che qualcuno aveva già deciso. Ma senza un confronto finale resta rosso per sempre su un lavoro chiuso, e un controllo rosso per costruzione smette di essere un controllo. Adesso classifica come prima, poi guarda il registro: chi è già registrato lo elenca e passa oltre, chi non lo è ferma tutto.

Nella stessa mezz’ora avevamo aggiunto anche l’allarme contrario, cioè un nome dato per morto che nel gioco è ancora vivo. Sembrava gratis. L’abbiamo fatto girare e ne ha segnalati 103, tutti comportamenti normali e previsti da una regola che conoscevamo già. Tolto subito. Un allarme che suona 103 volte a vuoto è peggio di nessun allarme, ed è esattamente il difetto che quel lavoro stava correggendo.

La lezione ce la teniamo, e la scriviamo per intero: un controllo si prova nei due versi prima di crederci, non dopo.

In un posto solo, su un disco solo

Poi la cosa più grossa della giornata, che è un rischio più che un difetto, e ce lo portavamo dietro da mesi.

I documenti di pre-produzione — l’architettura della storia, i testi delle stanze, le note di regia per il doppiaggio, le schede dei personaggi — stavano in una cartella sul computer, fuori da qualunque sistema di versioni. Sono il materiale più prezioso del progetto, perché quello che arriva in sala di doppiaggio esce da lì. Esistevano in un posto solo, su un disco solo. E in quella stessa giornata ne avevamo modificati quattro.

Adesso stanno nel deposito del progetto, insieme al codice. Non tutta la cartella: pesa 2,1 GB e per la maggior parte sono video, registrazioni e file per la stampa, che in un deposito di codice non ci devono stare. Un solo file audio fa 704 MB, e il servizio che ospita il progetto rifiuta qualunque file sopra i 100. Dentro sono andati i documenti, e sono 222 file per 5,1 MB in tutto.

L’originale è stato cancellato, e non è un dettaglio. Due copie della stessa cosa divergono al primo lavoro che ci si fa sopra. Ci era già successo: una copia vecchia lasciata in giro ci aveva fatto dire che un documento non c’era, mentre c’era.

Fra quelle schede ce n’è una che merita una riga a parte, perché è del 30 luglio e non l’abbiamo mai raccontata. È il ritratto di Nketo Bosendo, l’uomo che ha scritto la lettera trovata a bordo. La prima immagine generata è tornata indietro con un uomo bianco mediterraneo, che è precisamente il rischio di cui la scheda avvisava. È servito il quarto tentativo. Quella scheda non è materiale di gioco e non comparirà mai in una schermata: serve a chi disegna e a chi doppia, per sapere di chi si sta parlando.

Tre cose del 4 agosto

Restano indietro tre correzioni di qualche giorno prima, saltate quando sono uscite. Messe in fila si vede che sono parenti di tutto il resto: in tutte e tre stavamo dicendo a qualcuno una cosa che non era vera.

I pacchetti che mandiamo ai tester smettono di funzionare dopo un po’, perché una versione vecchia in giro fa più danno che bene. Fino al 4 agosto la data era scritta a mano dentro il gioco, e prima di ogni consegna bisognava ricordarsi di cambiarla, che è il modo migliore per dimenticarsene. Adesso la calcola il computer nel momento in cui costruisce il pacchetto: sette giorni tondi da quel giorno. Ogni pacchetto porta la sua, e il vecchio muore quando nasce il nuovo.

Da lì è saltato fuori un errore di italiano che la data fissa teneva nascosto. Il gioco scriveva «smette di funzionare il 11 agosto». Con un giorno solo, scelto a mano, non se ne sarebbe accorto mai nessuno; da quando il giorno cambia a ogni pacchetto, la frase deve reggere qualunque data, e le date di un mese sono 31. Le abbiamo sistemate tutte. A trovare l’errore è stata una fotografia della schermata vera.

A Mario avevamo chiesto di allegare un salvataggio a una segnalazione, e il percorso che gli abbiamo dato non esiste. La cartella si chiama davvero in un altro modo, tutta minuscola e con i trattini, e si chiama così dall’inizio. Il percorso sbagliato stava in un commento dentro il codice fin dal secondo playtest, ed è da lì che è finito nelle note per i tester. Per due mesi, a ogni persona che ci ha segnalato un difetto, abbiamo chiesto un file dentro una cartella che non c’era. Una revisione fatta a tavolino lo aveva perfino spuntato come verificato: aveva controllato che il codice chiedesse la cartella nel modo giusto, e ha creduto al nome scritto nel commento.

Il rimedio che viene in mente per primo è cambiare il nome alla cartella, ed è la cosa da non fare. Sposterebbe i dati di chiunque abbia già giocato: i salvataggi resterebbero dove sono e il gioco smetterebbe di vederli, senza nessun errore a schermo, solo dieci caselle vuote. Il nome brutto è il nome giusto, e adesso il commento spiega perché, così la tentazione non torna.

Michele Bancheri è uno dei tester, e nel progetto il suo cognome girava scritto in due modi: sette volte in uno, cinque nell’altro. Adesso è scritto in un modo solo, quello giusto. Di tutti quei posti ne contava uno, ed è la nota che i tester si leggono davvero.


Il filo che tiene insieme questi giorni l’abbiamo visto solo mettendo le cose in fila. Quasi tutto quello che si era rotto era scritto per qualcun altro: una battuta per chi la deve incidere, un percorso per chi deve allegare un file, un commento per chi aprirà quel file fra sei mesi.

Il codice che sbaglia di solito smette di funzionare, e si fa notare. Una frase scritta per una persona può restare sbagliata per mesi senza dare un segno, perché continua a leggersi benissimo.