Salut, je suis Yves, mais certains d’entre vous me connaissent peut-être aussi sous le nom de Docwise Dragon. J’ai une formation d’analyste programmeur, j’ai fait mes études à l’Institut Universitaire de Technologie à DIJON en 1989. Je vis actuellement à l’île de la Réunion depuis décembre 1999.
J’ai 52 ans, Je suis marié avec deux enfants. Je travaille en tant que responsable informatique dans une PME spécialisée dans le bâtiment : production d’agrégats, sable, béton et pierres artificielles : blocs américains, bloc français etc…
je pense que Ultima 6 est vraiment le jeux qui a marqué le plus ma jeunesse.
j’ai joué pour la première fois quand j’étais étudiant sur un vieux portable Toshiba avec un écran LCD rétroéclairé en 2 couleurs.
Pas de disque dur, il fallait changer les disquettes à chaque combat et au moment d’entrer dans les donjons.
Il n’y avait pas de forum. J’ignorais tout des astuces comme la fameuse combinaison de touches ALT 213, mais j’étais déterminé à aller jusqu’au bout de l’histoire.
Livré à soi même, il fallait utiliser les moyens du bord pour se débrouiller seul dans cette immense intrigue.
A force de persévérance, j’ai pu finir l’histoire après plus d’un ans.
J’avoue que jamais un jeu comme celui-ci ne m’avait captivé.
Je suis donc tombé dans la marmite comme Obélix si on peut dire. Je me suis senti attiré par Ultima parce que dans ce jeux il y a une véritable ambiance, une histoire bien construite avec des intrigues captivantes et une interactivité totale avec tous les objets et les personnages. Dans le présent on retrouve des traces du passé (rencontre avec les trois statues de Mondain, Minax, Exodus). On peut dire qu’Ultima est une histoire “vivante” au sens large du terme.
Dans chaque épisode, c’est tout un art de découvrir cette morale si chère à Lord British. “..Et jamais tu ne te détourneras du chemin des Vertus…” C’est fantastique d’incarner un héros et d’obéir à cette morale. Je pense que chacun de nous rêve secrètement de devenir un Avatar…
Et maintenant, je n’arrête plus d’enchaîner les aventures, je veux goûter absolument à tout, dénicher les derniers remakes de fans, suivre les actualités. Je surveille la version EXULT d’ultima 6 ( http://www.ultima6.realmofultima.com/)
J’ai été aussi séduit par “the Dark Unknow”, j’attend le retour de l’auteur pour une éventuelle traduction
(http://darkunknown.tapestryofages.com/) J’ai même traduit THE DARK CORE mais ce fut un échec.
Je vois beaucoup de projets Ultima sur le Web qui ont été abandonnés. Quel dommage de voir autant de talent disparaître. Je voudrait encourager les auteurs à persévérer et de ne pas abandonner. Le talent doit être protégé comme un denrée rare.
Pour en revenir à notre sujet, j’ai voulu relever le défi de traduire ce jeux en francais pour avoir une nouvelle expérience et être un peu plus proche de l’histoire, chose que je n’avais pas eu à l’époque puisque mon anglais était un peu limité. J’étais un peu frustré de ne pas avoir une version française.
C’est donc seulement cette année que je suis tombé par hasard sur le site de Sir John qui est une personne absolument formidable. Quand j’ai vu qu’il propose des utilitaires pour traduire ce jeux, je me suis dis que ça serait bien si je pouvais traduire Ultima 6.
C’est alors que tout c’est ensuite enchainé. Nous avons beaucoups échangé tous les deux. Il a fallu un peu de temps pour comprendre les rudiments des principaux outils :
U6EDIT : pour modifier les livres, les graphiques et les dialogues des NPC.
U6 Items Editor : les noms des objets que l’on regarde (touche L-Look)
YYCHR99 pour modifier la table des caractères.
John a même pris le temps de faire le menu principal dans l’écran de l’introduction. Je lui doit une fière chandelle.
Je pense que la tâche la plus compliquée est de traduire les dialogues et les exécutables (GAME.exe, U.exe, END.exe) . Traduire les livres et les objets a été relativement plus simple.
Les exécutables : on les modifie à l’aide d’un éditeur hexadécimal. Il faut sans cesse respecter la même longeur du texte sans changer la taille du fichier (Il y avait une possibilité de changer la longueur en modifiant les offsets mais j’ai dû abandonner).
Cela oblige à chercher pendant un bon bout de temps une traduction qui soit efficace et qui possède le moins de mots possible.
Si la traduction est encore trop longue, il faut jouer sur les espaces ou la ponctuation, en enlevant les points par exemple.
Parfois ce n’est pas suffisant, il faut encore et encore diminuer et les mots ne veulent plus rien dire.
C’est pourquoi dans le programme il y a un tas d’abréviations ‘sténographiques’ telles que “depl” “nivo” etc …
J’ai donc expliqué en détail le sens de chaque abréviation. L’anglais est un langage très “concis” on peut dire beaucoup de choses en très peu de mots, contrairement au français où il faut faire de longues phrases bien construites avec tous les accents, la conjugaison, les accords etc …
Quand on est obligé de réduire la longueur des traductions, on se sent un peu frustré car on ne peut pas donner au joueur une meilleure compréhension.
Les scripts : Chaque NPC est piloté par un script. C’est un fichier écrit dans un langage spécifique proche du BASIC et qui contient les dialogues (tout le texte que vous voyez défiler ) et les mots clés que l’on entre au clavier (exemple : nom, travail,adieu..). Les scripts contiennent aussi ce que vous ne voyez pas :
c’est l’arrière-plan du jeu, c’est à dire les mécanismes que vous déclenchez à l’insu de votre plein gré derrière votre dos.
Le script va indiquer combien de mauvais karma on obtient lorsqu’on a dit telle chose, combien d’argent on se fait voler avec les gitans, quel objet est retiré de l’inventaire pour le donner au NPC, etc … Les scripts sont compilés en codes machine pour s’exécuter dès que le dialogue commence.
Il y a en tout 221 NPC, donc 221 fichiers à traduire. Pas question de faire un copier-coller dans un traducteur automatique, parce que les mots réservés du script (IF ELSE JUMP) seront eux aussi traduits! Le script ne pourra plus fonctionner.
Comme Je suis passionné de programmation, j’ai passé beaucoup de temps à mettre au point un programme en VB pour extraire les dialogues de chaque scripts.
Le défi était d’extraire les mots clés repérables par l’instruction KEYWORD “” et les dialogues encadrés par [ ]
Exemple de dialogue (script de Dupre) :
keywords "ques" {
["Yes, you've gone on some really fine ones."\n*\n]
["When you're not around I have to settle for ]
[rescuing @damsels, finding @grails, and the ]
[like."]
JUMP L1;
Cette partie du script permet de gérer le mot “quest” (quête)
Lorsque l’utilisateur va taper le mot “quete” , le texte qui se trouve juste après KEYWORDS “quest” va s’afficher.
Je fais un copier-coller du script dans mon programme et voici ce qu’il va extraire :
#ques#
["Yes, you've gone on some really fine ones."\n*\n"When you're not around I have to settle for rescuing damsels, finding grails, and the like."]
Il a créé une ligne pour les mots clés (délimité par #) puis il a regroupé tous les autres dialogues en une seule ligne (délimitée par [ ] )
\n et * sont des caractères de contrôle : sauter une ou plusieurs lignes pour
Pour compliquer la tâche, il faut aussi gérer les mots clés qui apparaissent en rouge (si l’aide est activée par CTRL H). Ils sont facilement reconnaissables par le ‘@’ (arobase) qui se trouve au début du mot.
Exemple Dupre dit “I have to settle for rescuing @damsels” : Damsels (demoiselles) apparaîtra en rouge.
Le souci est qu’on ne peut pas traduire les textes avec les arobases. Il faut les retirer et ne pas oublier de les remettre. La traduction automatique interprète l’arobase comme une fin de phrase. Ce qui donne une mauvaise traduction.
Exemple:
I have to settle for rescuing @ damsels.
on obtient :
Je dois me contenter de sauver @ demoiselles.
En enlevant l’arobase, on obtient la bonne traduction. “Je dois me contenter de sauver les demoiselles.”
Maintenant qu’on a plus que des phrases simples à traduire, il suffit de prendre un bon traducteur en ligne tel que DEEPL ou Google Translation puis de copier-coller.
Mais la tâche n’est pas aussi simple , il faut revenir sur la traduction et la corriger, la traduction n’est pas parfaite du premier coup, il faut sans cesse la retoucher. De plus il faut remettre les caractères de contrôles \n et * ainsi que les arobases.
La tâche la plus difficile et de remettre les arobases sur les mots clés qui correspondent bien à ceux de départ.
Exemple : Dupre dit “and the @damsels” il faudra mettre dans le script “et les @demoiselles”.
Ainsi le mot “demoiselles” apparaîtra en rouge.
Mais ce n’est pas tout !
Si on met un arobase devant un mot du dialogue, il doit apparaître forcément dans la clause KEYWORD.
Si on oublie ce mot dans la clause, le script ne pas pas planter mais on ne pourra pas interroger le NPC en utilisant ce mot clé. Le NPC dira qu’il ne comprend pas la question.
Un fois qu’on a remis correctement les arobases, mon logiciel va reconstruire le script en fusionnant la traduction avec le reste du code qui n’a pas été traduit. Il vérifie aussi toutes les anomalies. Il signale si on a oublié un mots clé dans la clause KEYWORD, autres cas : on peut avoir plusieurs ‘@’ qui pointent sur le même mot clé.
Je m’explique. Prenons l’exemple du dialogue avec Pridgarm dans la ville de YEW.
Pridgarm détient les clés de la prison. L’Avatar va essayer de les obtenir pour parler avec le prisonnier BOSKIN.
Dans le script on aura les clauses KEYWORD pour gérer le mot prison et le mot prisonnier.
Si on traduit de cette façon :
KEYWORD "prison"
[ il parle de la prison ... ]
KEYWORD "prisonnier"
[ il parle du prisonnier ....]
Ca ne va pas fonctionner.
Pourquoi ?
Parce que si on tape “prisonnier”, le mot clé sera capté la première clause KEYWORD qui commence avec les mêmes caractères et c’est “prison”. Donc en voulant questionner sur le prisonnier, Pridgarm va parler de la prison et on ne comprend pas du tout.
Qu’est ce qu’il faut faire ?
Il faut utiliser une autre syntaxe de ‘prison’ en cherchant un synonyme.
C’est là qu’il faut se creuser la tête.
J’ai donc trouvé “geôle” pour désigner la prison mais il y avait d’autres solutions.
Ainsi il n’y a plus de confusion, on a maintenant nos deux lignes KEYWORDS corrigées de cette façon :
keyword "geole"
[ Il parle de la prison.]
keyword "prison"
[ il parle du prisonnier.]
Faire la traduction d’un jeux n’est pas un simple copier-coller. Tous ceux qui font de la traduction vous le diront. Il faut faire un énorme travail d’interprétation, chose que les logiciels de traduction ne peuvent pas faire. Il faut s’imprégner du contexte de chaque phrase puis adapter la traduction afin qu’elle reflète le plus possible le sens.
Une autre difficulté de la traduction : les jeux de mots.
Une fois qu’on les traduit ils ne veulent plus rien dire. Il faut essayer de bien saisir la subtilité du jeux de mot puis de trouver un équivalent afin de conserver le même sens et parfois ce n’est pas faisable.
Je prend l’exemple de Chuckles. En anglais il dit :
If hints were mints and mints were hints, think what a world it would be!
On trouve facilement le jeu de mots : “hints” et “mints”, il change le “h” en “m”.
Si on traduit ‘bêtement’ on aura :
Si les indices étaient des menthes et les menthes étaient des indices, pensez à quel monde ce serait!
On perd le jeu de mot.
Il faut changer quelques lettres dans ‘conseils’ pour obtenir un autre mot qui aurait les mêmes ‘consonances’
Voici ce que j’ai trouvé :
si les conseils étaient des groseilles …
J’aurais pu aussi traduire par :
si les indices étaient des appendices ….
Les traducteurs automatiques ne peuvent pas faire ce travail. Je ne les critique pas, ils sont très bien mais c’est la limitation de la traduction automatique.
Une fois les scripts traduits, on compile le tout puis on croise les doigts pour que le jeux ne se plante pas au moment de jouer. J’ai beaucoups utilisé de mon temps libre pour traduire les documentations et peaufiner les derniers détails afin d’obtenir un jeux pas complètement parfait mais un jeux agréable à jouer et j’espère que vous aurez de la satisfaction en l’utilisant.
Pour finir, je dirais que je suis aussi un passionné de dessins en 3D (logiciels Blender) et de simulation spatiale (Orbiter, un logiciel libre qui permet de simuler la navigation spatiale).
J’ai créé quelques bandes-dessinées numériques. Ma dernière création s’intitule “MISSION EDEN MARS” un ‘Space Odyssey’ réalisé entièrement en 3D GI (Global Illumination). Il a fallu 6 mois de calculs en continu! A lire absolument. N’hésitez pas à me demander les liens de téléchargement.
Je pense avoir tout dit. Je vous souhaite une très bonne aventure dans Ultima 6. Vous pouvez m’envoyer tous vos commentaires à yvespion@gmail.com.