L’écriture dans les jeux vidéo, une étude quantitative

EDIT : MAJ 1/01/2024 Correction de plusieurs coquilles (mauvaise suppression de toutes les ponctuations, plus ajouts de 2 jeux)

L’écriture des jeux vidéo est un grand débat, je pense qu’on sera tous à un moment ou l’autre étonné par l’avis d’un autre joueur exprimant son amour ou désamour pour un jeu vidéo:

  • L’écriture de Cyberpunk 2077 est vraiment fantastique
  • L’écriture de Pillars of eternity qu’est ce que c’est lourd ou pompeux
  • CP2077, c’est vraiment vulgaire
  • BG3 a la meilleure écriture au monde
  • DIsco Elysium : je n’ai pas trop accroché à l’écriture post apocalyptique socialiste

Aujourd’hui je vais enfin pouvoir dire que je vais régler une bonne fois pour toute cette imperfection qu’est l’avis subjectif par un avis totalement objectif appuyé par des chiffres, nécessairement objectif !!!! (c’est faux :p ).

Néanmoins il est intéressant d’essayer de se pencher sur les caractéristiques d’écritures des dialogues des jeux pour essayer de comprendre et d’en tirer certaines leçons. Les jeux qui vont être analysés sont :

  • Neverwinter night
  • Baldur’s gate 3
  • Pillars of eternity 1 et 2
  • Pathfinder WOTR
  • Cyberpunk 2077
  • Disco Elysium
  • Final fantasy 14

1 ) Les limites

Avant de rentrer dans le sujet il existe plusieurs sources d’erreurs que je me dois mentionner.

  • Les sources des données, parfois directement issues des jeux (poe, pathfinder, nwn) parfois récupérées sur internet sans trop vérifier ( ici pour CP2077 https://www.nexusmods.com/cyberpunk2077/mods/2045?tab=files&file_id=9499). Malheureusement je ne me souviens plus pour bg3 (le fichier se nomme english.loca.xml). Tout est en Anglais (VO)
  • La qualité des données. Je n’ai pas pris le temps de parfaitement tout vérifier et certain jeu n’ont pas que des dialogues, ce qui peut évidement fausser leurs résultats. C’est le cas de nwn qui est probablement le moins bon dataset, le reste me semble bon, mais je ne serais vraiment pas étonné d’avoir de nombreuses coquilles (récupérer des partis que je n’aurais pas dû, incomplet, biaisé etc…). Du coup je vous demanderais de prendre les résultats avec un peu de recul parce qu’ils ne sont probablement pas parfait.
  • Le traitement des données, pour que ça soit un peu homogène un certain nombre de traitement est fait sur les données qui peuvent de même induire des biais (suppression des phrases avec des balises ([], <>), découpage en phrase, suppression des chiffres, minimum de taille de phrase à 2 mots), randomisation des phrases, suppression des phrases en langues étrangères de CP2077…
  • Ma connaissance en NLP (traitement du langage) sur la partie de la richesse qui est faible

Cela étant dit nous pouvons rentrer dans le vif du sujet.

2) Les données

En premier lieu voici une petite indication de la quantité de données:

Voici le nombre de phrase de plus de 2 mots pour chaque jeu (c’est probablement un poil représentatif de la taille des dialogues du jeu mais j’ai pu en rater pas mal, ou en rajouter involontairement comme pour nwn)

  • nwn : 116 000
  • poe : 61 000
  • poe2 : 89 000
  • cp2077 : 66 000
  • pathfinder : 109 000
  • bg3: 179 000
  • disco Elysium 94 000
  • ff14 215 000

Je ne m’avancerais pas totalement sur les conclusions mais il me semble que cela appuie le fait que BG3 et Pathfinder notamment possèdent une grande quantité de dialogues.

Un échantillon des données (10 première phrase , aléatoires, de Pathfinder)

3) Le nombre de mot par phrase

Probablement plus intéressant voici le graphique de la longueur des phrases de chaque jeu en nombre de mot.

On constate ici, plusieurs chose:

Tout d’abord les phrases les plus longues sont détenus par FF14 et Pathfinder 11 et 10.2 mots par phrase en moyenne avec une médiane à 10 et 9 mots par phrase
Les phrase les plus courtes sont détenus par CP2077 (6.2 de moyennes, 5 de médiane, facteur 1.8 par rapport à ff14). On remarquera de plus un écart type plus faible qui semble indiquer une calibration + importante des phrases.
Très proche on a nwn et poe aux alentour de 8-9 puis
Enfin baldur’s gate 3 et Disco Elysium plus proche de CP2077 aux alentours de 7.8 de moyenne et 7 de médiane

J’interpréterais ça en 2 familles de jeux qui correspondent à leur mise en scène:

  • Une famille + « littéraire » constitués de jeu hésitant moins à faire de longue phrase puisque moins voire pas doublé (nwn, poe, pathfinder)
  • une famille de jeu « cinématographique » doublé qui va un peu plus s’appuyer sur un vocabulaire oral en moyenne un peu plus court (cp2077, bg3 et Disco Elysium).

Voici le graphique de la distribution normalisée du nombre de mot par phrase en fonction du titre.

On voit clairement ici un pic pour les petites phrases pour CP2077 (à moins de 10 mots, une longue traine pour les autres titres, un peu plus forte vers 10-15 pour PoE et vers15-30 pour Pathfinder indiquant de parfois de longues phrases.

4) L’utilisation et la fréquence des mots

Quelles mots sont très usités par ses jeux? Nous allons voir le top 50 des mots de + d’une lettre les plus utilisés de chaque jeu en ayant enlevé les « stop words », c’est à dire les mots les plus courant de la langue anglaise (auxiliaire, déterminants etc…

On voit ainsi apparaître ici soit des mots caractéristiques de l’anglais qui ne sont pas considéré comme des stop words (like, know, time, right, think…) qui sont difficile à tous répertorier, soit des mots typiques du jeu en question et des style d’habitude d’écriture.

Pour prendre quelques exemples

  • nwn possède deekin qui est un personnage important du jeu parlant de lui toujours à la troisième personne ce qui favorise évidement le nombre d’occurrence du mot. On voit aussi qu’on parle d’une peste et de la citée de neverwinter.
  • Poe parle de dieu et d’âme, Poe 2 de capitaine et de « watcher » ainsi que de nom iconique du jeu les iles de deadfire, le Dieu Eothas.
  • CP2077 a un vocabulaire clairement plus dans l’argot (fucking, fuck, shit…), avec quelques thème propre au jeu, la compagnie Arasaka, la nuit.
  • Pathfinder est illustré par ses démons, sa croisade, ses abysses ce qui résume pas mal encore les thèmes du jeu
  • BG3 parle de ville (une certaine baldur’s gate il me semble), d’absolue, de pouvoir et d’esprit
  • Disco a un champs sémantique autour de la police (lieutenant, officer)
  • ff14 ne semble pas montrer de grosses particularités en dehors de quelques onomatopée et il parle d’espoir

Bien qu’assez primaire on peut voir au final qu’une bête fréquence de mot nous apprend pas mal sur les thèmes et les lubies des jeux.

Enfin la distribution normalisé de la fréquence des mots utilisés montre que CP2077 et ff 14 semble utilisé un peu + souvent des mots seulement présent une fois ou deux (mots inventés, vocabulaire riche ?).

La différence à la moyenne montre qu’il y a beaucoup de mots utilisés 1 seule fois pour Cyberpunk.
Puis au contraire il utilise plutôt moins que la moyenne des mots peu courants (2-10 répétitions). Là ou PoE 1 et 2 semble faire le contraire. Final fantasy 14 ayant peu de mots utilisés moins de 10 fois.

5) La richesse de l’écriture

Ici on aborde un sujet un peu plus complexe, comment mesurer la richesse de l’écriture? Il semble exister plusieurs variables quantitatives pour cela (calculé à l’aide de https://pypi.org/project/lexicalrichness/):

  • Le nombre de terme, autrement dit le nombre de mots différents utilisés, l’idée derrière est qu’un texte riche est un texte utilisant beaucoup de mots différents.
  • Le TTR (type-token ratio) Le calcul qui se comprend probablement le mieux qui correspond au nombre de mots différents (nombre de token) divisé par le nombre total de mots. L’idée derrière est simple un texte riche est un texte qui possède un vocabulaire varié et large qui sait se renouveler le plus densément possible (d’où la division).
  • Le MATTR (Moving average TTR) Pour combler le fait que le TTR décroit avec la longueur du texte il faut une moyenne glissante sur un nombre constant de mot (100 de base)
  • Le MLTD (measure of textual lexical diversity) Il essaie de prendre en compte le fait que le TTR est dépendant de la longueur du texte, pour cela il prend des longueurs de texte en fonction du score TTR (pour qu’il soit inférieur à un seuil >= 0.72 de base)
  • Le HDD Comme les autres il essaie d’éviter la décroissance du score avec la taille du texte, pour cela il prend des mots de manière random et fait un score dessus (42 mots de base)
  • source : https://core.ac.uk/download/pdf/82620241.pdf

Afin de palier à la décroissance du TTR en fonction de la longueur des textes j’ai normalisé pour que tous les textes comparés soient d’environ 290 000 mots par jeu sans ponctuation. Qui plus est, pour éviter tout effet de début et de fin j’ai randomisé les phrases de chaque texte. Donc un texte est un ensemble de phrase aléatoire mise bout à bout contenant 290 000 mots pour chaque jeu.

Afin de montrer a quel point les scores peuvent être volatil j’ai aussi calculé les scores lemmatisés:

« Ce traitement consiste à appliquer aux occurrences des lexèmes sujets à flexion (en français, verbes, substantifs, adjectifs) un codage renvoyant à leur entrée lexicale commune (« forme canonique » enregistrée dans les dictionnaires de la langue, le plus couramment), que l’on désigne sous le terme de lemme. » https://fr.wikipedia.org/wiki/Lemmatisation
exemple calculé: Tougher bastards than you have tried. => tough bastard than you have try

L’idée est de considérer comme identique des mots très similaires en s’approchant de la racine, en français par exemple aime, aimes, aimons, aimez, aiment sera remplacé par aimer à l’infinitif.

Attention les graphiques ne commencent pas à zéro afin de mieux visualiser les différences.

Les même scores sur des textes lemmatisés:

L’interprétation

L’interprétation est ici délicate, notamment parce que la plupart des indices changent pour pas grand chose et ne sont pas en accord entre eux. Par exemple en changeant les seuils, fenêtres pour le MATTR, le HDD ou le MTLD il est possible de changer assez radicalement les scores. Normalement les textes étant de taille similaire le TTR devrait être suffisant, mais on voit ici que selon le calcule le résultat varie (pour des indicateurs qui essaient de mesurer la même chose c’est embêtant).
Il est probable, par exemple, que la qualité de la lemmatisation change d’un jeu à l’autre (peut être que CP2077 est moins bien lemmatisé par exemple?)

L’explication qui me vient est que la moyenne de moyenne est différente de la moyenne globale (ce qui semble validé par le fait d’utiliser, par exemple, un paramètre de tirage au sort de 1000 au lieu de 42 pour le HDD qui donne alors cet ordre.)

Enfin j’ai volontairement prit un échantillon d’un échantillon ordonné des données de ff 14 pour faire le calcul pour émuler le fait de n’avoir qu’un jeu et non tous les DLC, mais si on prend un échantillon de l’ensemble des données de ff 14 il passe premier sur le score de TTR. (Encore une fois on voit a quel point l’indice varie facilement et est donc peu fiable)

Si je devais absolument choisir (et aussi pour le plaisir de la polémique) je dirais que l’indicateur le moins mauvais me semble être le (premier ou le second) TTR (puisque les textes sont, ici, de longueurs équivalentes, que l’indicateur reste le plus simple et que je suspecte le lemmatiseur de ne pas être égal entre les jeux). On aurait alors un premier classement de « diversité » d’écriture qui serait : PoE 2, Disco Elysium, BG3, ff14, CP2077, Pathfinder, PoE, nwn.

La légitimité

L’autre question légitime c’est la validité de ses indicateurs. Si la logique semble assez pertinente un jeu bien écrit ne sera pas nécessairement riche en vocabulaire selon la définition qu’on s’en fait, par exemple l’invention de nombreux mots , lieux, personnages, peut être vu comme un défaut d’écriture (PoE ou Pathfinder …). De plus il existe plein de façon de biaisé les calculs, un jeu qui utiliserait plein d’onomatopée par exemple aah, et aaah seraient considérés comme deux mots différents améliorant le score de richesse ou encore un jeu possédant de nombreux mots d’argots sont-ils une richesse d’écriture? (cp2077…)


6) Caractérisation des jeux

L’étude quantitative pure est intéressante mais il me semble qu’on perd évidement quelque chose si on ne regarde pas un peu plus les mots eux même.

Pour cela on va faire un effectué une classification basique d’apprentissage machine basé sur tf idf (term frequency inverse document frequency) – SVM (support vecteur machine).
On apprend à la machine à classifier quelle phrase provient de quel jeu. L’avantage de cette méthode c’est son explicabilité assez bonne; elle permet de nous dire quels mots sont utilisés pour déterminer le jeu. La méthode repose grosso modo sur de la cooccurrence de mots formant de grosse matrice en très grande dimension (chaque mot est une dimension) et ainsi de pouvoir attribuer à chaque phrase (groupe de mots) ou elle est dans cet grand espace. Ainsi on peut séparer l’espace en zone appartenant à tel ou tel jeu.

Il est donc possible de scorer chaque mot qui identifie le plus un jeu par rapport aux autres. Pour des besoins de temps de calcul et de répartition des classes les données prises sont un échantillon des données précédentes (environ 30 000 phrases pour chaque jeu).

Le meilleur score ira donc à un mot qui est très utilisé dans un jeu mais pas dans les autres (en moyenne l’algo arrive à 70% -80% de réussite, il associe 7-8 fois sur 10 la phrase avec le bon jeu). Pour que les résultats ne soient pas tous des endroit spécifique du jeu, dans un deuxième temps j’ai tenté de supprimer (automatiquement) les lieux, nom propre du classement.

Pillars of eternity 1 et 2

Pour PoE 1 et 2 mis ensemble on voit que le vocabulaire très spécifique du jeu ressort en premier. Evidement le mot Watcher designant le héros mais aussi plein de lieu (deadfire, neketaka, stalwart, dyrwood…) ou encore beaucoup de dieux ( Eothas, Ondra, Berath etc…).

Lorsqu’on tente d’enlever les noms propre, lieux, on voit que ce qui caractérise le jeu c’est les mots en rapport avec la mer (poe 2), les mots en rapport avec les dieux, âmes, l’animancy (qui est la science des âmes dans le jeu).

Neverwinter Night

Neverwinter Night est caractérisé par beaucoup de ses personnages Deekin, Aribeth, la Valsharess, Fenthick, nasher, mephistopheless…
Certain lieu aussi l’identifie undermountain, academy ou encore des mobs de D&D golem, troll, lizard

Quand on enlève pas mal des mots propre on est plutôt sur un registre du jeu de rôle (qui montre d’ailleurs peut être que les données sont pollués par autre chose que des discours), level, skill, rate, armor, gold, equipement. Chose assez drôle le mot zoo apparaît puisqu’une quête consiste effectivement à libérer les animaux d’un zoo. Visiblement les autres jeux ne parlent pas de Zoo.

Cyberpunk 2077

Comme pour les autres titres on voit beaucoup de nom de personnage (v est absente parce qu’il faut des mots de 2 lettres minimum), Johnny, Panam, Jackie, Saburo etc… On voit bien aussi les mots autour du cyberpunk et enfin de l’argot.

On sait que son jeu est bien écrit lorsque les premiers mots commun qui le caractérisent sont fuck, shit, fucked , bitch et ass. CP2077 est d’autant plus intéressant qu’il montre à quel points la fantasy classique n’utilise pas ou peu de gros mots et que CP2077 est bien plus proche du cinéma américain en usant énormément aussi. Pas mal de mots propre au cyberpunk sont présent, street, cyberpsychosis, security, data, client, corporate etc…
On voit aussi que le traitement automatique des noms propre n’est pas parfait. Jackie ayant subsisté.

Pathfinder

Pathfinder est clairement caractérisé par son obsession des démons, des croisades, et de beaucoup de compagnon, lieu propre au jeu Wenduag, Lann, nenio, Camelia etc…

Lorsqu’on enlève les nom propre (et visiblement quelques noms communs y sont passés aussi) il reste une sémantiquement de la guerre (commander, wound, heaven, soldiers, battlefield…). Quid de mf? une balise non supprimé peut être?

Baldur’s gate 3

On sait qu’on a réussi l’écriture d’un jeu quand Boo et Minsc arrive l’un après l’autre pour qualifier le jeu.
Ici aussi dans Baldur’s gate 3 les nom des compagnons ou ennemis sont fortement représentatif du jeu. Gortash, Raphaël, Cazador, Wyll, Shadowhearts etc…
On remarquera aussi la présence de Dieu ou race de D&D Githyanki, Mystra, Bhaal, l’absolue ou encore de lieu culte la crèche, moonrise etc…

Lorsqu’on enlève les nom propre on est plus dans une sémantique de D&D avec une petite couleur sur les animaux (squirrel, hamster) que les autres jeux n’ont visiblement pas autant. On sent que l’aventure tourne autour d’infection, de vampire, démon et de parasites.

Disco Elysium

Les personnages importants sont représentés, Kim, Cuno, un certain Harry, Evrart, Titus, et certain lieu comme Revachol etc….

Ici on voit beaucoup des thématiques de Disco Elysium, les champs sémantique de l’enquête (officer, detective, bagde etc…), le disco, le cool, la drogue l’alcool, les cigarettes et même un peu de politique le communisme etc…

Final fantasy 14

Ici on reconnait les caractéristiques d’un final fantasy Kupo le cri des mogs, chocobo, Aether, et beaucoup de personnage ou lieu du jeu. Alphinaud, Sharlayan, Kugane, Eulmore, Garlemald, Hydaelyn etc…

Ici on voit que FF 14 se détache des autres l’impérialisme qui y prend une part importante. On voit aussi que le jeu est vaste car il n’y a pas un thème en particulier mais plusieurs thèmes (airship, inspector, professor, carrots, crystal, voidsent, princess, shinobi ….) qui font tous références à des moments différents dans le jeu.

Conclusion

Difficile de vraiment dire quelle jeu est le mieux écrit, néanmoins il me semble qu’on peut tirer quelques leçons. Si on est allergique à la vulgarité il vaut mieux clairement éviter CP2077 qui s’inspire des films/séries américaines et se trouve dans la tendance « cinématographique » des jeux explorés.
Si on a pas peur de lire de longue phrases il vaut mieux se tourner vers les Pathfinder et les PoE qui vont être dans un texte probablement + « littéraire » car peu doublé (POE 2 est une sorte d’entre deux puisque entièrement doublé). BG 3 aura, comme CP2077, cette tendance cinématographique (phrase + courte) mais gardera un langage plus soutenu.

Choisir le jeu en fonction des thèmes qui vous parle le plus :

  • POE 1 et 2 Les dieux, les ames, l’étude des âmes. La mer, les iles et les pirates pour PoE 2
  • NWN Les mobs de D&D, une épidémie
  • Pathfinder La guerre, les démons, les anges, le coté martial
  • CP2077 Le langage des rues, les corporations, le langage informatique
  • BG3 Le monde de D&D, ses compagnons, ses grands méchants. Une sombre histoire de parasites
  • Disco Elysium si résoudre sur une enquête nous plaît avec un accent sur les drogues, la politique.
  • FF14 pour son immensité de thème c’est presque plusieurs jeux en un (chaque DLC ayant un thème)

Enfin il est assez délicat de quantifier de manière fiable la richesse d’écriture. Les indicateurs semblent assez volatil bien qu’indiquant tout de même des tendances. Mais la définition de richesse ne s’accorde pas nécessairement totalement avec la définition du « bien écrit » que l’on pourrait avoir.

La suite

Pour la suite il serait intéressant de regarder les verbes utilisés particulièrement pour chaque production. Probablement une mise à jour que je ferais dans le futur.

Laisser un commentaire