System Shock 2
Sottotitoli e lettere accentate? Ora si può!
In questa fredda mattina d'autunno, godendomi le ferie a modo mio, cerco di riepilogare tutto quello che ho fatto in questi tre giorni.
Da dove potrei partire? Qualcuno direbbe dall'inizio... Il mio obiettivo per il fine settimana scorso era di riscrivere le guide all'installazione di System Shock 2, Thief Gold e Thief II: The Metal Age includendo anche la parte relativa alle traduzioni in italiano. Dunque, sabato scorso ho fatto un giretto nella sezione Traduzioni Completate di OldGamesItalia e ho trovato due discussioni estremamente interessanti. Siccome però sto trattando di System Shock 2 mi limiterò a parlare di questo magnifico gioco cyberpunk horror.
Dicevo... Ho trovato una discussione particolarmente importante il cui titolo dice già tutto "System Shock 2 (sottotitoli)". Un nuovo iscritto al forum di OldGamesItalia, tale Mindead, pubblica un post in cui allega i file con i sottotitoli in italiano sfruttando la feature introdotta dalla nuova versione del NewDark (in realtà già la precedente la includeva). Incuriosito li ho provati ed è stata una gioia. Capire finalmente ciò che diceva la voce dell'istruttore all'inizio del gioco non è cosa da tutti i giorni. Però c'era un piccolo, ma proprio piccolo, dettaglio che non mi soddisfava. I filmati. I filmati non erano sottotitolati. Svariate ricerche mi hanno portato su questa vecchia discussione aggiornata di recente da un piccolo gruppo di appassionati che sta tentando di scrivere una nuova traduzione diversa da quella pubblicata su OldGamesItalia. Qui ho trovato la traduzione dei video e una revisione della traduzione di alglare fatte da motoko. A quel punto mi sono detto: "Perché non sottotitolare anche i filmati?". E così ho fatto. Ho scritto un post su Systemshock.org per informare motoko che intendevo utilizzare la sua traduzione, ma non ho avuto risposta né da lui né dai suoi compagni e così ho deciso di andare avanti comunque. La sincronizzazione non è stata semplice e in particolare il filmato finale mi ha portato via molto tempo perché ho cercato di trasporre nei sottotitoli la magnifica distorsione della voce di SHODAN. Non so se il risultato che ho raggiunto sia dei migliori, ma a me piace.
Uno dei più grossi grattacapi con cui mi sono scontrato era la presunta impossibilità di utilizzare lettere accentate. Abilitare i sottotitoli è un'operazione banale, basta aggiungere la riga "enable_subtitles" in fondo al file "shock.cfg", ma la visualizzazione è scadente per via del font utilizzato. Ho deciso di cambiare font e usare il METAFONT.FON, quello utilizzato dai programmatori per il menù principale. Ottima scelta perché nei filmati si legge benissimo e nel gioco mantiene una grandezza dei caratteri che è accettabile. Purtroppo però gli sviluppatori hanno disegnato questo e altri font togliendo e/o sostituendo molti dei caratteri presenti nel code page 850 (conosciuto anche come CP 850, IBM 00850, OEM 850, MS-DOS Latin 1) ereditato dal primo System Shock.
Ma cos'è un code page? E' una tabella di valori che associa un insieme di caratteri, di solito raffiguranti i grafemi dell'alfabeto che si usa per comunicare in lingua naturale, generalmente ad un insieme di numeri. Senza entrare in tecnicismi che non mi competono, diciamo che ogni carattere che viene digitato usando la tastiera ha un corrispondente valore numerico che deriva dal set di caratteri utilizzato. Ad esempio per scrivere la lettera "È" che non è presente sulla tastiera si usa la combinazione di tasti ALT + 212 del tastierino numerico. Ma la visualizzazione del carattere dipende dal font che viene utilizzato che è un insieme di caratteri tipografici. Quindi se i caratteri del font corrispondono esattamente ai caratteri del code page non c'è nessun problema, quanto si digita verrà visualizzato anche a video, ma se il font è strutturato in modo diverso sembrerà di aver sbagliato a scrivere.
In System Shock 2 i font non corrispondono al charset OEM 850 e ciò ha tratto in inganno i ragazzi del forum di Systemshock.org che nella loro revisione della traduzione hanno usato il carattere "É" al posto della "È" e "ó" al posto della "ò" convinti che i caratteri fossero incompatibili con il gioco. Il file METAFONT.FON è ancora peggiore perché in pratica le lettere accentate proprio non ci sono.
Tra l'altro per poter visualizzare i file *.fon è necessario utilizzare il Thief Font Converter, un programma che permette di creare un file bitmap come quello che vedete nell'immagine. Una volta fatte le modifiche l'immagine può essere riconvertita nel file *.fon, ma ammetto che non ho provato a disegnare nessun carattere. Ci ha pensato Itanghell, un membro del forum di OldGamesItalia, a dare il suo contributo modificando alcuni caratteri già presenti nel file METAFONT.FON in modo da avere le lettere accentate. E così ho riscritto i sottotitoli dei filmati usando il nuovo file.
E per la revisione della traduzione? Andrebbero modificati gli altri font, ma in realtà l'operazione non è necessaria dato che ci ha pensato Chokboyz, un appassionato francese membro del forum di Systemshock.org, a fare il tutto nel 2009. Qui trovate la discussione. I font sono ottimi e i risultati si vedono.
Il meccanismo è quello di scrivere il carattere di cui si necessita partendo dal codice numerico in relazione alla tabella. Sul file di testo si leggerà una scritta strana, ma nel gioco tutto verrà visualizzato come vogliamo noi. I font di Chokboyz comprendono molti caratteri anche per altre lingue latine. Sarebbe bello vedere delle traduzioni in russo o addirittura in giapponese!
Ora il passo successivo è provare a revisionare tutti i testi.
Due giorni di analisi e prove per capire quale potesse essere lo schema migliore per finalizzare questa revisione hanno portato nella mia testa un po' di confusione. Ho guardato tutti i file (non sono molti in verità rispetto ad altri giochi), ho cercato di comprendere come muovermi per avere un percorso logico e di fare luce sulle ambiguità che ci sono. L'aspetto che mi è saltato all'occhio comunque è la mancanza di omogeneità dei termini, sembra quasi che il lavoro sia stato svolto da persone diverse senza che fossero coordinate. Manca un glossario comune che permetta di non avere difformità nella traduzione dei termini ricorrenti presenti all'interno del gioco e questo sarà uno dei punti su cui lavorare. Compito non semplice dato che si tratta di un'ambientazione fantascientifica con oggetti inventati e termini tecnici ed informatici. Probabilmente alcuni lemmi dovranno essere lasciati in inglese, ma non si sa mai, non è escluso che si possa trovare delle soluzioni eleganti. Per ora ho usato il correttore ortografico per sistemare tutte le lettere accentate e gli errori più evidenti. Ora dovrò iniziare il gioco e analizzare pezzo per pezzo tutti i componenti per redigere un glossario definitivo e mantenerne la coerenza nei vari file. Inoltre intendo scrivere i sottotitoli sincronizzati anche per le email e le registrazioni. Se per le seconde può sembrare un doppione visto che nel PDA possiamo trovare tutti i testi scritti, per le prime la ritengo una cosa utile dato che la prima volta che riceviamo l'email non possiamo sempre fermarci per leggerne il testo e quindi averlo a monitor può aiutare il giocatore. Un primo esempio è questo:
SUB1
{
Type "email"
Descr "POLITO 12 LUG 14 re: Danno alla nave"
Multisub "EM0215"
{
{Text "Fai attenzione..." Time 850 Length 650}
{Text "Sto ricevendo strani segnali da quel radar al di là del vetro." Time 1950 Length 3650}
{Text "É diventato instabile a causa..." Time 6600 Length 1500}
{Text "Muoviti!" Time 8100 Length 500}
{Text "Mettiti al riparo!" Time 9400 Length 800}
}
}
Concludo dicendo che un aspetto che potrebbe portare un valore aggiunto potrebbe essere la traduzione dei testi presenti nelle immagini dell'interfaccia utente (cosa che gli Spagnoli hanno fatto), ma non mi sbilancio in merito dato che le mie capacità in campo grafico sono molto molto scarse.
Mattinata trascorsa ad analizzare la possibilità di tradurre i testi presenti nelle immagini. Se ci sono riusciti gli Spagnoli non vedo perché non potrei provarci anch'io... Magari poi non riesco a fare nulla come al solito, ma intanto io ci ho tentato. E devo dire che il risultato non è poi così male a prima vista. Sempre su Systemshock.org Ho trovato la famiglia di font Square721 che è quasi identica a quella usata nel gioco.
La grafica non è un mio punto forte e non mi sono mai cimentato in questo genere di attività però "smanettando" un po' con GIMP sono riuscito a tirare fuori qualcosa. Non è escluso che ci possa fare un pensierino. Per ora ho provato con le scritta "STRENGTH" ed "ENDURANCE" nel file "STATS.PCX" e con le seguenti impostazioni si crea una scritta quasi identica a quella originale (solo guardando i singoli pixel si notano le leggere differenze). Ma se poi scrivo in italiano la differenza in larghezza non conta più nulla...:
- Font: Square721 BdEx BT Expanded
- Dimensione: 14
- Antialiasing: abilitato
- Hinting: nessuno
- Colore: 00ffbf
- Spaziatura caratteri: 0,0
Ovviamente per ogni scritta sarà necessario verificare il tipo di font, la dimensione e il colore, ma sul resto non credo che servirà fare grandi modifiche. Inoltre, un altro punto a favore del NewDark è la possibilità di utilizzare anche immagini diverse dal formato *.pcx e quindi penso che, se dovessi imbarcarmi anche in questa impresa, utilizzerò il formato *.png che mi piace tanto. Guardando la traduzione degli Spagnoli i file da modificare sono 90.
Oggi ho riprovato a convertire l'immagine "STATS.PCX". In particolare ho trascorso molto, ma veramente molto, tempo a inserire la scritta "STATISTICHE" (il risultato si vede nel post precedente). Non è perfetto, la S e la T iniziali non sono staccate, ma ora ho riprovato e con la dimensione di un punto più piccola e con spaziatura pari a zero il risultato è migliore. Mi pare di aver capito che l'importante è mantenere l'altezza del carattere e la posizione iniziale, poi sulla lunghezza il problema è relativo, tranne per il fatto che la scritta deve rimanere nello spazio a sua disposizione. Al limite posso farle più piccole o cercare un testo alternativo. Per ora ho usato il colore "cccdd1" ma non è escluso che si possa usare una variante leggermente più scura. Credo che una volta trovata si possa utilizzare per tutte le scritte verticali presenti sulle aree metallizzate. Ah, dimenticavo, l'effetto in rilievo l'ho ottenuto con il classico gioco dell'ombra (magari c'è anche Garrett nascosto...) impostando -1px x, -1px y, 1px raggio, 100% opacità, colore nero. Tutto questo va ovviamente legato alla terminologia che verrà utilizzata nel gioco.
Dopo le prove fatte, raccolgo in modo disordinato le mie riflessioni sul da farsi. Ciò che pensavo di fare era una "semplice" revisione della traduzione già esistente ma mi sono reso conto leggendo continuamente i file che non è questo ciò che voglio veramente. Questo gioco è un'icona del cyberpunk e merita qualcosa di più. Ci vuole una traduzione completamente rinnovata che non permetta soltanto di comprendere il testo ma anche di trasmettere le sensazioni che porta con sé. Compito improponibile per uno come me? Può darsi. Sicuramente è un lavoro meticoloso che può essere fatto solo entrando con l'anima all'interno del mondo creato dagli sviluppatori. Devo immergermi con tutto me stesso nel personaggio, nelle possibilità offerte dall'interazione con la Von Braun e la Rickenbacker, capire il carattere e la psicologia dei personaggi coinvolti, ragionare come loro per esprimere al meglio le loro registrazioni, i loro messaggi. L'ambientazione è ricca e inusuale, il linguaggio è particolarmente tecnico, informatico, a volte è difficile interpretare, capire e permettere a chi gioca di provare le stesse emozioni. La terminologia è specializzata per un contesto fantascientifico oscuro, duro, freddo. Devo calarmi in questa realtà e sentirmi parte di essa con tutte le difficoltà che questo comporta. Mi aiuterò con il manuale in italiano e con la Prima's Official Strategy Guide ma non sarà sufficiente.
Stile. Questa parola sarà il mio riferimento per tutta la durata della traduzione. Dovrà essere il mio punto fermo. Lo stile, ciò che permette di identificare subito chi è l'autore, il suo modo di essere e di comunicare. Tutto ciò però dovrà essere integrato mantenendo lo stile del gioco. Visto e considerato che la visuale è in soggettiva ritengo appropriato che il gioco comunichi con il giocatore, quindi tutte le azioni in cui si tenterà di usare un oggetto verranno espresse in seconda persona singolare.
Oggi è il giorno in cui ho deciso qualcosa di importante ai fini della rinnovata traduzione. Tutta la revisione verrà fatta partendo dalla System Shock 2 Community Patch (SCP) giunta alla Beta 2 il cui rilascio è del 31 ottobre 2015. Questo lavoro ha introdotto dei notevoli miglioramenti rivolti alla coerenza del mondo, alla rifinitura degli errori progettuali negli script, nei testi, negli elementi dell'ambiente, ecc. e alle parti visuali (textures e modelli) che presentavano problemi tecnici.
Ovviamente in questo caso ciò che interessa di più a me è la parte che riguarda la correzione dei testi ed è per questo motivo che inizierò nuovamente la traduzione (ho fatto pochissimo sinora quindi non è un gran danno) riferendomi alle nuove stringhe. In più ora ho recuperato anche tutti i sottotitoli in inglese grazie sempre al lavoro svolto dalla community di systemshock.org.
Dopo aver sperimentato per un po' il font di Itanghell, ho deciso, per ora, di tornare ad utilizzare quello di Chokboyz per i testi del gioco. Ho segnalato sul forum di OldGamesItalia i problemi che ho avuto con il font ridisegnato senza antialiasing.
Ora devo solo ricordarmi di modificare tutte le "ò" e le "È" scritte con codifica OEM 850 nei corrispondenti caratteri ASCII 242 e 200 perché vengano visualizzati correttamente. Alla fine del lavoro ovviamente.
I ferri del mestiere
Di seguito elenco i programmi che sto utilizzando per la revisione.
strumento | autore | utilizzo |
---|---|---|
Notepad++ | Notepad++ team | Traduzione file *.str, *.sub e *.srt |
GIMP 2.8.10 | Spencer Kimball, Peter Mattis e il team di sviluppo di GIMP | Traduzione scritte nelle immagini *.pcx |
Font modificati | Chokboyz (membro del forum di systemshock.org) | Font per il testo |
Font modificati | Itanghell (membro del forum di OldGamesItalia) | Font per i sottotitoli |
Work in progress
Nella tabella che segue evidenzio lo stato di avanzamento dei lavori.
fase di lavoro | progresso | file |
---|---|---|
Scrittura sottotitoli filmati e sincronizzazione dialoghi | Movies.sub, cs1.srt, cs2.srt, cs3.srt | |
Traduzione sottotitoli dialoghi in-game | ||
Revisione traduzione | File *.str contenuti in strings.crf e intrface.crf | |
Schermata caricamento file configurazione tasti | BNDLOAD.STR | |
Schermata salvataggio file configurazione tasti | BNDSAVE.STR | |
Nomi dei controlli | CONTROLS.STR | |
Schermata rapporto missioni generazione personaggio | DEBRIEF.STR | |
Schermata selezione partita da caricare | GAMELOD.STR | |
Schermata selezione partita da salvare | GAMESAV.STR | |
Schermata partita in caricamento | loading.str | |
Menù principale | MAIN.STR | |
Menù principale | NETMAIN.STR | |
Schermata partita multigiocatore in rete | NETPLAY.STR | |
Schermata nuova partita | NEWGAME.STR | |
Schermata opzioni di gioco | OPTIONS.STR | |
Menù secondario | SIM.STR | |
Descrizione delle missioni per la creazione del personaggio | CHARGEN.STR (33 blocchi di testo) | |
Operazioni da hacker (Come tradurre "hack"? Violare o tenere la traduzione "manomettere"?) | HACKTEXT.STR | |
Interfaccia delle abilità da hacker, di riparazione e di modifica | HRM.STR | |
Popup dell'HUD (Head Up Display) che compaiono quando si usa qualcosa | HUDUSE.STR (61 righe) | |
Terminali informativi | INFOCOMP.STR | |
Cursore nell'inventario | invcursor.str | |
Gergo per i riscontri dell'interfaccia delle abilità da hacker, di riparazione e di modifica | JARGON.STR | |
Email e registrazioni livello 1 | LEVEL01.STR (32 tra email e log) | |
Email e registrazioni livello 2 | LEVEL02.STR (40 tra email e log) | |
Email e registrazioni livello 3 | LEVEL03.STR | |
Email e registrazioni livello 4 | LEVEL04.STR | |
Email e registrazioni livello 5 | LEVEL05.STR | |
Email e registrazioni livello 6 | LEVEL06.STR | |
Email e registrazioni livello 7 | LEVEL07.STR | |
Email e registrazioni livello 8 | LEVEL08.STR | |
Email e registrazioni livello 9 | LEVEL09.STR | |
Sistemi di chiusura | LOCKMSG.STR (10 righe) | |
Aree delle mappe | MAPTEXT.STR (99 aree) | |
Stringhe gioco Pig | Minigame.str | |
Testi vari | MISC.STR (179 righe) | |
Prima modifica dell'arma | MODIFY1.STR | |
Seconda modifica dell'arma | MODIFY2.STR | |
Messaggi multigiocatore | NETWORK.STR | |
Obiettivi | NOTES.STR (71 righe) | |
Descrizione degli oggetti | OBJLOOKS.STR (113 oggetti) | |
Nomi lunghi degli oggetti | OBJNAME.STR (493 righe) | |
Nomi brevi degli oggetti | OBJSHORT.STR (259 righe) | |
Descrizioni delle discipline psioniche per l'Unità di Avanzamento Psionica | PSIHELP.STR | |
Rapporti delle ricerche scientifiche | RESEARCH.STR | |
Oggetti non identificati | RSRCHTXT.STR | |
Nomi dei salvataggi | SAVENAME.STR (25 righe) | |
Descrizioni delle modalità primarie delle armi | SETT1.STR | |
Descrizioni delle modalità secondarie delle armi | SETT2.STR | |
Attacco primario delle armi | SHEAD1.STR | |
Attacco secondario delle armi | SHEAD2.STR | |
Descrizioni delle abilità | SKILHELP.STR (13 blocchi) | |
Descrizioni delle statistiche di base per l'Unità di Avanzamento Statistiche | STATHELP.STR (7 blocchi) | |
Descrizioni degli Avanzamenti del SO per l'Unità di Avanzamento dell'OS | TRAITS.STR | |
Stringhe di riscontro dagli oggetti utilizzabili del mondo e riassunti delle missioni di addestramento | USEMSG.STR (79 righe) | |
Condizioni delle armi | WEAPON.STR | |
Scrittura sottotitoli registrazioni (139) e email (96) | log.sub e email.sub | |
Traduzione del testo nelle immagini | Immagini *.pcx (87/90 file) |