Benvenuto Visitatore(Log In|Registrati)

4 Pagine V  « < 2 3 4  
Reply to this topicStart new topic
> Traduzione giochi Legend, (già: "problemi del traduttore" Consigli per chiunque voglia
DK
messaggio14 Mar 2009, 10:32
Messaggio #76



Gruppo icone

Gruppo: Admin
Messaggi: 2.672
Iscritto il: 27 August 04
Utente Nr.: 1.509
BGE Indy and The Last Crusade
SO Windows7

OGI Supporter




E la possibilità che i giochi Legend vengano supportati dallo ScummVM è molto improbabile; sembra infatti che tutta la logica del gioco sia inserita nell'eseguibile (o da qualche altra parte), non c'è quindi un comodo sistema di script.
 
Syxtem
messaggio22 Mar 2009, 12:46
Messaggio #77



Gruppo icone

Gruppo: UST Member
Messaggi: 497
Iscritto il: 17 February 03
Utente Nr.: 2.153
SO Win95




Oggi sono andato un po' avanti con il lavoro sul codificatore. Mi sono occupato della selezione delle parole del dizionario (in base alla frequenza) e dovrei avercela fatta, ma c'è qualcosa che non mi convince.
Il problema è che con un rapido confronto si vede che il dizionario che mi salta fuori non coincide con quello contenuto nei file originali. Eppure, nel mio dizionario (128 voci) la parola con frequenza minore ha 121 occorrenze... nel dizionario originale invece si trovano parole con frequenza minore di 121: qualcosa non quadra.
Boh... specificando che cmq il formato dovrebbe essere valido con qualunque tipo di dizionario scelto (dato che la scelta di esso influisce solamente sulla dimensione del file finale), un po' mi dà fastidio che mi vengano due risultati diversi e mi domando il perchè biggrin2a.gif
Presupponendo che la soluzione più efficiente sia l'originale (non posso ancora fare raffronti diretti visto che ancora non ho fatto le routine per ottenere la codifica dello stream compresso di bit), e siccome si è notato che il criterio di scelta per le parole nel dizionario non è il semplice "conta il numero di occorrenze di ogni parola e prendi le 128 parole più frequenti"... qualcuno ha qualche idea su quale possa essere il vero criterio per la scelta delle parole del dizionario?
Non so... a me viene da pensare che il motivo sia perchè magari alcune parole hanno un po' meno occorrenze però sono formate da più caratteri e quindi in rapporto "pesano" di più poiche forse alla fine fanno risparmiare bit, però adesso come adesso è solo una mia congettura.
Intanto sono indeciso se mi convenga continuare ad insistere su questo punto (finchè mi salta fuori il dizionario uguale) o se mi convenga invece di più tenermi il dizionario com'è venuto e andare avanti.

Cmq se qualcuno è curioso del risultato, questi sono 3 file relativi alla creazione del dizionario.
File Allegato  tmpConfrontoDizionariShannara.zip ( 3.42k ) Numero di download: 7

Il primo è quello del file originale (che viene ordinato per nome), mentre gli altri due sono i miei dizionari: uno ordinato per nome e l'altro per n° di occorrenze.
Ah... tanto per essere precisi: per parola si intende una sequenza di caratteri che possa contenere lettere (maiuscole o minuscole) o apostrofi, e uno spazio finale (facoltativo). Si tratta di una scelta arbitraria dedotta dal dizionario originale. Se qualcuno crede che questa ipotesi vada riconsiderata, me lo dica blush.gif

[uno sguardo al futuro biggrin2a.gif]
Che poi mi rendo conto ora che per una traduzione in italiano tra "lettere" in cui considerare una parola, io debba includere anche le accentate ad esempio... poi magari qualcuno mi faccia un esempio di questi caratteri un po' "speciali" perchè poi questi li devo inserire uno per uno.
E poi come contro parte probabilmente la scelta di tenere l'apostrofo per noi italiani è una scelta un po' svantaggiosa: ad esempio si avrà che
"all'aperto" = 1
"all'ingresso" = 1
"aperto" = 1
invece di avere magari:
"all'" = 2
"aperto" = 2
"ingresso" = 1
Poi bisognerà decidere se modificare questa regola per favorire la grammatica italiana o se preferire una regola più vicina a quella originale.
Cmq vabbè... queste sono considerazioni di ottimizzazione che si possono fare anche in un secondo momento. Più che altro l'ho voluto scrivere visto che modificare due cose come queste è proprio questione di un paio di minuti.


--------------------
 
The Ancient One
messaggio23 Mar 2009, 12:57
Messaggio #78



Gruppo icone

Gruppo: Admin
Messaggi: 30.471
Iscritto il: 18 April 04
Da: Britannia
Utente Nr.: 1.377
pulley-in-the-middle

BGE Ultima 7
Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO!

Dungeon Master 1 (PC - DosBox)
Sonic (Wii)
Runaway (PC)

SO WinXP




CITAZIONE (Syxtem @ 22 Mar 2009, 12:46) *
Che poi mi rendo conto ora che per una traduzione in italiano tra "lettere" in cui considerare una parola, io debba includere anche le accentate ad esempio... poi magari qualcuno mi faccia un esempio di questi caratteri un po' "speciali" perchè poi questi li devo inserire uno per uno.

Dovrebbero bastare questi:
CODE
à
è
é
ì
ò
ù
'


CITAZIONE
E poi come contro parte probabilmente la scelta di tenere l'apostrofo per noi italiani è una scelta un po' svantaggiosa: ad esempio si avrà che
"all'aperto" = 1
"all'ingresso" = 1
"aperto" = 1
invece di avere magari:
"all'" = 2
"aperto" = 2
"ingresso" = 1
Poi bisognerà decidere se modificare questa regola per favorire la grammatica italiana o se preferire una regola più vicina a quella originale.
Cmq vabbè... queste sono considerazioni di ottimizzazione che si possono fare anche in un secondo momento. Più che altro l'ho voluto scrivere visto che modificare due cose come queste è proprio questione di un paio di minuti.

Nella prima parte ho capito veramente ben poco.
Ma anche questa seconda parte mi sfugge.
Non capisco cosa sono i numeri...

Detto questo, avere le lettere accentate corrette sarebbe il massimo.
Anche se forse potrebbe creare qualche problema: molti sono quelli che non le scrivono correttamente (io per primo).
Quindi in un parser questo potrebbe creare incomprensioni assurde.
Voi che dite?

Detto questo, credo che l'importante sia poter tradurre il gioco.
Meglio un " perche' " in un gioco in italiano, che nessuna traduzione, non vi pare?


--------------------
 
Syxtem
messaggio23 Mar 2009, 15:31
Messaggio #79



Gruppo icone

Gruppo: UST Member
Messaggi: 497
Iscritto il: 17 February 03
Utente Nr.: 2.153
SO Win95




Che poi, ora che ci penso bene, non è nemmeno detto che le lettere accentate funzionino biggrin2a.gif
Cioè, inserire il codice per gestire i byte delle lettere accentate non è un problema, ma io ho dato per scontato, in tutto questo discorso, che il programma sia capace di "disegnare le lettere accentate"... ma questo è ancora tutto da dimostrare.
Anzi, a dire il vero sono piuttosto pessimista perchè se è vero che la codifica per i caratteri è l'ASCII a 7bit... beh, allora di sicuro non sono presenti le lettere accentate, visto che fanno parte dell'ASCII esteso a 8bit.
Insomma... probabilmente per le accentate non c'è verso (sempre andando ad intuizione), cmq si vedrà.

Per risponderti invece, quell'esempio riguarda il dizionario del gioco. Mi sono reso conto che non l'ho spiegato un gran che bene, così spero di rimediare ora.
Fai conto che ogni carattere del testo di gioco normalmente è codificato con 7 bit. Quindi se una parola contiene 10 caratteri, la sua dimensione è 70bit. Siccome il testo è compresso, si ha che ognuno di questi caratteri non occupa 7bit, ma generalmente meno: la codifica impiegata (huffman) utilizza un numero di bit, necessari a codificare un particolare carattere, che è variabile.
Fai conto che in pratica la codifica huffman genera una sorta di tabellina in cui c'è la corrispondenza "sequenza di bit compressi -> carattere del testo del gioco".
Questa tabella che viene creata ha 256 righe, ossia il doppio di quelle necessarie per elencare ogni carattere possibile. Che cosa se ne fa di queste righe in più? Le usa per costruire un "dizionario" che avrà quindi 128 voci.
Per capire a cosa serve e come funziona, mettiamo il caso che la tabella huffman sia fatta così:
- identifico la sequenza di bit con delle lettere maiuscole, per intenderci
- tra parentesi graffe ho messo una dimensione a caso, che indica il n° di bit compressi che indicano una particolare lettera

CODICE
[N°Riga]: [bitCompressi] -> [lettera]
0:   A{4} -> s
1:   B{2} -> a
2:   C{3} -> n
...
128: D{8} -> ananas
...


In pratica il dizionario si contraddistingue dal resto della tabella perchè, invece di caratteri singoli, contiene sequenze di caratteri e quindi parole.
Questa strategia serve per incrementare l'efficienza della compressione ed è facile rendersene conto. Se ho la parola "ananas" da memorizzare e:
1) la memorizzo non compressa...
la parola è di 6 caratteri, di cui ognuno occupa 7 bit. Perciò mi occorrono 6*7=42 bit.
2) la memorizzo compressa senza dizionario...
in "ananas" ci sono 3 "a", 2 "n" e 1 "s". Il n° di bit necessario per ogni carattere è rispettivamente "2","3" e "4" (secondo i valori che ho indicato prima nella tabella). Perciò mi occorrono 3*2+2*3+1*4=16 bit. La sequenza di bit che andrò ad inserire sarà (sfruttando le lettere che ho usato nella tabella): BCBCBA
3) lo memorizzo compressa col dizionario...
mi accorgo che la parola "ananas" è contenuta nel dizionario e perciò posso codificarla con la sequenza di bit del dizionario (che mi rappresenta direttamente tutta la parola). Perciò in questo caso mi occorrono solo 8 bit e la sequenza di bit che userò sarà semplicemente: D

Questa diciamo che è tutta la teoria necessaria per capire come funziona questo tipo di compressione.
Ora, tornando al mio discorso, il problema diventa decidere il procedimento per scegliere le parole da inserire nel dizionario. Se te ad esempio hai nel testo del gioco "ananas ananas ananas ananas", potresti decidere di inserire nel dizionario la parola "ananas"(X) o anche "ananas ananas"(Y).
Mentre nel primo caso la stringa compressa diventerebbe "X X X X", nel secondo sarebbe "Y Y". Quindi useresti la stessa parola del dizionario meno volte, perchè è più specifica. Questo significa che in questo caso particolare, il risultato finale peserebbe meno... ma se nel resto del testo ci fosse da altre parti la sola parola "ananas" e basta non potresti usare la voce "Y" (mentre nel caso di "X" potevi farlo).
Il discorso era questo e il numero a destra delle parole indicava la frequenza. Insomma, visto che usare le parole del dizionario comporta più risparmio, maggiore il n° di volte che quelle parole possono essere utilizzate con le frasi del gioco, meglio è (questo non è proprio vero nella sua totalità, ma come discorso di sintesi può andare bene)-
Ora è diventato più chiaro il mio discorso di prima? blush.gif


--------------------
 
The Ancient One
messaggio23 Mar 2009, 15:47
Messaggio #80



Gruppo icone

Gruppo: Admin
Messaggi: 30.471
Iscritto il: 18 April 04
Da: Britannia
Utente Nr.: 1.377
pulley-in-the-middle

BGE Ultima 7
Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO!

Dungeon Master 1 (PC - DosBox)
Sonic (Wii)
Runaway (PC)

SO WinXP




CITAZIONE (Syxtem @ 23 Mar 2009, 15:31) *
Ora è diventato più chiaro il mio discorso di prima? blush.gif

Infinitamente più chiaro.

Anche se la colpa non era tua. Sono io che di certe cose non me ne intendo proprio e quindi ho bisogno di una spiegazione veramente terra-terra.

Comunque, dimmi un pò, in estrema sintesi: come procede? C'è speranza di poter tradurre questi giochi Legend?
(perdona le domande "riduttive", ma in mezzo a queste disquisizioni tecniche ho perso il filo generale del discorso).


--------------------
 
Syxtem
messaggio23 Mar 2009, 17:37
Messaggio #81



Gruppo icone

Gruppo: UST Member
Messaggi: 497
Iscritto il: 17 February 03
Utente Nr.: 2.153
SO Win95




CITAZIONE
C'è speranza di poter tradurre questi giochi Legend?

Se con questa domanda intendi chiedermi se c'è la possibilità di arrivare ad avere un compressore per i file del gioco, direi che la risposta è sì. Che poi si possa tradurre in maniera efficace, dato il parser inglese, io nutro qualche dubbio... ad ogni modo io mi limito a guardare il compressore (più che altro per me è un'occasione per lavorare con la codifica Huffman).
Il senso è che probabilmente riuscirò a fare un compressore che riesca a ricreare dei file compressi compatibili con quelli di Shannara (mi sto dedicando esplicitamente a questo gioco visto che è quello di cui ho i file compressi), ma molto probabilmente il compressore non sarà esattamente uguale a quello originale, per cui decomprimendo un file originale e ricomprimendolo col mio programma probabilmente i file saranno diversi tra loro. I motivi ve li ho un po' snocciolati prima.
Per fare un po' il punto della situazione, diciamo che le cose che mi rimangono da fare sono:
1) calcolare la probabilità di ogni carattere/parola
2) costruire l'albero di huffman per la codifica dei bit compressi
3) scrivere tutto quanto codificato nel file di output.
Non so ancora quanto mi ci voglia. Purtroppo in questo periodo non gli sto dedicando molto tempo, visto che sono in periodo di esami blush.gif


--------------------
 
Alpobemp
messaggio4 Jan 2013, 11:59
Messaggio #82



Gruppo icone

Gruppo: IAGTG Member
Messaggi: 2.658
Iscritto il: 1 June 05
Da: Roma
Utente Nr.: 1.733
SO Altro

OGI Supporter


Spolveratore (2)


CITAZIONE (Alpobemp @ 6 Feb 2009, 16:17) *
Comunque, l'esperienza diretta che ho è che le sh spesso comprimevano i file di gioco, sia per ridurre lo spazio sui dischetti (anche se Shannara, nello specifico, era uscito per cdrom, se non erro) sia per criptare i testi sia per impedire il reverse engineering, utilizzando dei compressori che molto intuitivamente non erano dei compressori "di mercato" o pubblici, ma in alcuni casi modificavano leggermente un modello. Mi ricordo che DK con i "francesi" venne a capo proprio di un caso come questo quando si trattò di decifrare i file dei giochi Microprose: un algoritmo di compressione che era anche di dominio pubblico, era stato leggermente modificato in modo da rendere inutilizzabile il decompressore "standard".
Non mancano i casi invece di sh meno smaliziate: Personal Nightmare o Neuromancer, uno dei due, non ho tempo di controllare, è compresso ... con un semplice pkzip (i primi due byte erano "PK").*

Ciao,
Alberto

* EDIT: Ho controllato, non era né l'uno né l'altro, un giorno mi verrà in mente.


scratch.gif

azz.gif

idea.gif

Ciao,
Alberto

Messaggio modificato da Alpobemp il 4 Jan 2013, 12:00


--------------------
--
alpobemp at libero punto it
 
The Ancient One
messaggio4 Jan 2013, 12:17
Messaggio #83



Gruppo icone

Gruppo: Admin
Messaggi: 30.471
Iscritto il: 18 April 04
Da: Britannia
Utente Nr.: 1.377
pulley-in-the-middle

BGE Ultima 7
Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO!

Dungeon Master 1 (PC - DosBox)
Sonic (Wii)
Runaway (PC)

SO WinXP





Alpo... Non fare scherzi.
Non si scherza con i giochi della Legend.

Se hai decomprosso qualcosa, devi dirlo!!!!!!!!!!!!!
E dobbiamo metterci a tradurli TUTTI!


--------------------
 
Micartu
messaggio4 Jan 2013, 12:20
Messaggio #84



Gruppo icone

Gruppo: SMod
Messaggi: 10.006
Iscritto il: 7 May 04
Da: Regione dell'Albero d'Oro
Utente Nr.: 1.400
BGE Elvira 1
SO WinXP




Spellcasting, Eric... parla! XD


--------------------
 
The Ancient One
messaggio4 Jan 2013, 12:23
Messaggio #85



Gruppo icone

Gruppo: Admin
Messaggi: 30.471
Iscritto il: 18 April 04
Da: Britannia
Utente Nr.: 1.377
pulley-in-the-middle

BGE Ultima 7
Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO!

Dungeon Master 1 (PC - DosBox)
Sonic (Wii)
Runaway (PC)

SO WinXP




CITAZIONE (Micartu @ 4 Jan 2013, 12:20) *
Spellcasting, Eric... parla! XD

Shannara...




PARLA!!!


--------------------
 
Alpobemp
messaggio4 Jan 2013, 13:31
Messaggio #86



Gruppo icone

Gruppo: IAGTG Member
Messaggi: 2.658
Iscritto il: 1 June 05
Da: Roma
Utente Nr.: 1.733
SO Altro

OGI Supporter


Spolveratore (2)


Non ci siamo: riquoto meglio ed aggiungo altre vecchie autocitazioni per collocare meglio l'ambito.
Ad ogni modo sto conducendo esperimenti e verifiche, ci sarebbe anche da mettere mano in parte all'eseguibile.

CITAZIONE
Non mancano i casi invece di sh meno smaliziate: Personal Nightmare o Neuromancer, uno dei due, non ho tempo di controllare, è compresso ... con un semplice pkzip (i primi due byte erano "PK").*

Ciao,
Alberto

* EDIT: Ho controllato, non era né l'uno né l'altro, un giorno mi verrà in mente.


CITAZIONE (Alpobemp @ 1 Nov 2005, 14:52) *
C'è invece, tanto per fare un altro esempio, un'altra ag, non ricordo bene cos'era, che aveva i file di risorsa semplicemente zippati con il pkzip ...

Ciao,
Alberto



scratch.gif

azz.gif

idea.gif

Ciao,
Alberto


--------------------
--
alpobemp at libero punto it
 

4 Pagine V  « < 2 3 4
Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


Versione Lo-Fi Oggi è il: 4th November 2026 - 07:09