mardi 24 septembre 2013

Améliorer les PNJ ?

Ça fait un moment que je n'ai rien écrit sur ce blog, alors pour fêter ce message, je le commence par un "ç" majuscule.

Avec la grande mode des jeux en monde ouvert ("Open World"), je voulais parler d'une difficulté qui me semble de plus en plus présente : celle de créer des personnages non joueurs (PNJ) "crédibles". Parce qu'il ne suffit souvent pas de créer des jeux où l'on peut parcourir d'immenses étendues sans temps de chargement (encore que, les temps de chargement, ça permettait d'aller aux toilettes sans avoir à mettre le jeu en pause), mais il faut également les peupler pour que le joueur n'ait pas l'impression de traverser le plus grand désert vidéoludique jamais créé.

En parlant d'Open World, voilà un petit résumé humoristique du dernier salon de l'E3 que j'ai trouvé sur Youtube :

Je dis que c'est une difficulté de plus en plus présente, parce que compte tenu des faibles capacités (d'affichage et de mémoire) des anciennes consoles, on pouvait tolérer que les PNJ soient peu nombreux, restent toujours au même endroit et répètent inlassablement les mêmes phrases en boucle lorsqu'on leur adresse la parole. D'ailleurs, toute une génération de RPGs japonais ont habitué les joueurs à des villes (qui sont parfois censée être des capitales de pays) comportant moins d'une dizaine de maisons, et à peine plus d'habitants (voire des habitants qui n'ont visiblement aucun logement, comme c'est le cas à Bourg Palette, ville de départ du premier jeu Pokémon sur Game Boy).

La carte de Bourg Palette, 3 maisons, pour 5 habitants, et pas de pont pour les 2 restants...
Le paradoxe des villes dans Pokémon.

Mais cet état de faits a été moqué à de nombreuses reprises, et l'intégration d'une population crédible et intéressante me semble faire partie des promesses des mondes ouverts (j'emploie le mot "crédible" plutôt que "réaliste", car l'univers du jeu peut ne pas être réaliste tout en ayant des PNJ qui se comportent de façon logique compte tenu de cet univers).  Le but de ce message est donc de tenter de définir ce que j'entends par là (et ce qui me semble important pour y parvenir).

Tout d'abord, je veux distinguer les PNJ de l'IA (intelligence artificielle) : le PNJ (qui est certes géré par l'IA) se caractérise par le fait qu'il est un personnage qui a une existence dans le jeu (contrairement à l'IA qui est "hors du jeu", mais peut servir d'adversaire au joueur sans l'intermédiaire direct d'un PNJ, dans un jeu de stratégie ou de gestion par exemple).
Je pense que l'on peut regrouper les PNJ en trois catégories :
- Les PNJ d'opposition : ceux qui vont être confrontés au joueur et qui doivent être battus (d'une façon ou d'une autre) pour progresser dans le jeu.
- Les PNJ d'aide : ceux dont le seul rôle est d'aider le joueur, que ce soit en lui prodiguant des conseils, ou en faisant avancer l'histoire (voire en lui demandant de remplir des objectifs, nécessitant généralement de vaincre d'autres PNJ).
- Les PNJ neutres : ceux dont l'interaction avec le joueur peut être réduite au minimum et qui ne servent qu'à donner l'impression que l'univers du jeu est peuplé d'êtres vivants.

Dans ces trois catégories, on trouve deux types de personnages : ceux qui sont scénarisés (à savoir, des personnages "uniques" et importants dans le déroulement du jeu et dont la profondeur sera a priori plus travaillée, par exemple un rival, le chef des ennemis, un acolyte, un mentor, etc.), et les PNJ génériques (ceux que l'on va retrouver à différents endroits et qui sont plus ou moins interchangeables, par exemple les ennemis de base, les paysans d'un village, les animaux dans une forêt, etc.).

Les premiers ne présentent en général pas de gros problème (si tant est que l'écriture du jeu soit correcte), mais sont souvent minoritaires et ne font a priori jamais partie des PNJ "neutres". Or ce sont les PNJ "neutres" que le joueur va être le plus à même de croiser, une fois sorti des sentiers battus de la trame principale du récit (cette fameuse liberté d'action qu'on nous vend sans arrêt, que ça soit pour GTA V ou Animal Crossing).

Un trailer d'Animal Crossing :

Un trailer de GTA V :

Après, il est évident que tous les types de PNJ ne sont pas aussi problématiques. Par exemple, à moins d'avoir une thèse sur le comportement du lapin de garenne, ces derniers ne vous choqueront pas quand vous les croiserez au hasard des chemins broussailleux de Skyrim.
De même, les PNJ d'opposition sont généralement les plus faciles à traiter : dans la plupart des jeux les adversaires ont un comportement plus ou moins réaliste compte-tenu des situations de face-à-face, et ce indépendamment de la qualité de l'IA qui les contrôlent. Par exemple dans les jeux qui supposent de combattre des ennemis, les activités de ces derniers se résument souvent à monter la garde, faire des rondes, attaquer à vue, battre en retraite, etc., ce qui peut être fait avec plus ou moins de réalisme, mais n'est jamais complètement choquant. De plus, ils présentent souvent l'avantage de peu parler (que ce soit parce qu'ils ne sont pas humains, des animaux sauvages par exemple, ou parce qu'on ne leur en laisse pas le temps avant de les réduire au silence).
C'est pourquoi je m'attarderai principalement sur les PNJ humains, neutre ou d'aide.

C'est un lapin, dans le jeu Skyrim.
Un lapin dans Skyrim.

Venons-en à la raison pour laquelle je souhaite des PNJ crédibles et intéressants : je pense que la dissymétrie qui existe entre le joueur et les PNJ nuit à l'immersion. Le fait que le joueur soit capable de déceler des routines trop mécaniques dans les déplacements, les paroles et les comportements des personnages lui rappelle sans arrêt qu'il est devant un jeu dont les grandes lignes ont été tracées à l'avance, ce qui s'oppose radicalement à l'idée d'un monde "ouvert". Par ailleurs, la distance entre le joueur et le PNJ rend difficile toute forme d'empathie. Qui accepterait d'aider un menuisier à collecter du bois plutôt que d'aller chasser le dragon à mains nues si ce n'était dans l'espoir de recevoir une récompense en contrepartie ? Et qui ne manquera pas de pester contre son écran quand il se rendra compte que le menuisier ne lui donne qu'une toute petite somme d'argent en échange de la dizaine de minute qu'il vient de perdre à appuyer frénétiquement sur un bouton ? Si les développeurs essayent souvent d'impliquer d'avantage le joueur vis-à-vis du personnage principal de l'aventure, il me semble que cet effort n'a que peu été porté sur les PNJ qui l'entourent. C'est pourquoi, je considère qu'un PNJ devrait être soit suffisamment scénarisé ou réaliste compte tenu du rôle qu'il est censé jouer, soit suffisamment imprévisible pour, dans l'idéal, le rendre difficilement identifiable d'un joueur.

Alors bien sûr, la deuxième option n'est pas envisageable dans la plupart des cas (ne serait-ce parce qu'on se retrouverait alors avec une foule de PNJ qui passent leur temps à courir pour se rendre d'un point un à autre de la carte). Mais si l'on regarde par exemple Animal Crossing, les animaux qui peuplent le village font exactement le même genre d'activité que le joueur : ils se promènent, pèchent, chassent les insectes, secouent les arbres, et leurs lignes de dialogue sont tirés parmi une base de répliques suffisamment grande pour ne pas tomber trop souvent sur les mêmes (voire même être parfois surpris qu'ils ressortent un truc qu'on leur a dit qu'il y a plusieurs mois, ou vous envoient spontanément une lettre si vous ne leur avez pas donné de nouvelles depuis longtemps). Certes cela n'est rendu possible que par l'univers d'Animal Crossing où l'oisiveté est naturelle, mais tout ceci tend néanmoins à rapprocher le joueur des PNJ (même si on se rendra vite compte qu'on peut sans problème les arnaquer en leur vendant des objets au double de leur valeur réelle !).

Un screenshot du jeu Animal Crossing.
Une image d'Animal Crossing New Leaf sur 3DS.

Ceci dit, la présence d'un aléas, ou au moins d'une évolution possible du comportement, me semble indispensable pour la crédibilité des personnages. Même s'il est plus pratique pour le joueur que tel personnage soit exactement au même endroit à la même heure (comme c'est le cas dans Xenoblade par exemple), cela a tendance à faire passer toute la population pour complètement psychorigide. De même pour les répliques des PNJ : actuellement il me parait parfaitement envisageable d'avoir des personnages qui ne se contentent pas de répéter inlassablement la même chose dès qu'on leur adresse la parole. Pourquoi les PNJ ne pourraient-ils pas avoir une humeur variable ? Pourquoi accepteraient-ils sans broncher la schizophrénie du joueur qui leur soutient tout et son contraire dans un intervalle de 30s dans l'unique but de tester les différentes possibilités d'un dialogue à choix multiples ? On pourrait même envisager de remplacer les lignes de dialogue préétablies par un champ de texte libre, moyennant un algorithme qui tenterait de mimer une vraie conversation avec la joueur (voire même prévoir des variantes du même algorithme pour rendre compte de différentes personnalités des PNJ). Le premier "chatterbot" date quand même de 1966 ! Évidemment, cela supposerait vraisemblablement de laisser tomber les voix doublées, et peut-être même les traductions (mais à l'heure où nombre de bons jeux ne sortent de toute façon qu'en version anglaise, cela aurait au moins le mérite de justifier l'absence de localisation).

Une autre chose qui me semble importante, est l'interaction entre les PNJ. Pour donner l'illusion d'un monde cohérent et en évolution, les personnages se doivent d'avoir des interactions entre eux, et pas uniquement avec le joueur. Cela est assez bien mis en place dans les événements aléatoires qui ont lieu hors des villes dans Skyrim : il n'est pas rare de voir des factions de soldats s'affronter, un renard chasser un lapin, ou bien des brigands rançonner des promeneurs. Malheureusement, les cités restent trop figées, et à part les gardes qui patrouillent, la plupart des promeneurs semblent errer sans but au fil de la journée, attendant seulement que le joueur vienne leur parler.

Un screenshot de Minecraft.
Interactions entre PNJ dans Minecraft (laissée à la libre interprétation du lecteur).

Une autre piste qui me semble intéressante, est celle de PNJ avec lesquels on ne peut pas interagir. C'était le cas dans Minecraft avant que le système de troc ne soit mis en place : les PNJ existaient dans des villages générés aléatoirement, mais le joueur ne pouvait ni leur parler, ni rien faire à part les tuer, ce qui ne lui apportait strictement rien, ou leur construire des maisons pour qu'ils se multiplient (ce qui ne lui apportait rien non plus). C'est également le cas dans Gravity Rush, la ville d'Hekseville est peuplé d'une multitude de passants qui pratiquent diverses activités et avec lesquels on ne peut pas discuter (hors des rares fois où cela est prévu dans le scénario), mais qui sont néanmoins sensibles aux changements de gravité que l'on effectue à côté d'eux (et qui se manifesteront alors par des cris de terreur pour bien signifier qu'ils n'apprécient pas vraiment de se retrouver la tête en bas). S'il peut sembler au départ frustrant de ne pas pouvoir interagir avec les PNJ, cela n'est pas tellement choquant dans la plupart des cadres "réalistes" (de même qu'il n'est pas choquant qu'un vendeur ou un paysan reste toute la journée au même endroit), et cela a l'avantage de nous désapprendre à vouloir parler à tous les personnages. De plus, ajouter un peu de mystère aux PNJ, par exemple en mettant le joueur face à des personnages qui s'expriment dans un dialecte qu'il ne comprend pas, peut être un moyen simple mais efficace de renforcer la curiosité vis-à-vis de ces personnages. En revanche, j'ai trouvé que Gravity Rush avait néanmoins manqué une bonne opportunité de sensibiliser le joueur aux victimes collatérales de ses actions (par exemple en laissant paraître dans des gros titres de journaux le nombre de PNJ tués par mégarde lors de ses déplacements gravitationnels). Pour citer un autre exemple, dans Shenmue, les gens sont généralement surpris lorsque l'on sonne à leur porte sans raison et ne vous donne parfois que peu d'informations, mais essayez un peu de parler avec tous les gens que vous croisez dans la rue pour voir si vous apprenez des choses utiles...

Une image de Gravity Rush.
Une image de Gravity Rush où on aperçoit des PNJ.

Enfin, la dernière possibilité, est bien sûr d'avoir un monde avec des personnages joués par différents joueurs, comme c'est le cas dans les jeux en ligne massivement multi-joueurs (MMO). Dans ce cas évidemment, on peut se permettre d'avoir des interactions avec des personnages qui vont répondre comme des joueurs (pas que ce soit toujours mieux d'ailleurs, car certains joueurs se comportent comme de vrais PNJ, qui font des actions en boucle et ne prennent pas le temps de répondre de façon construite à un message qui leur est adressé), mais cela ne relève plus vraiment de la même problématique que dans le cas d'un jeu prévu pour être joué seul. Et d'ailleurs, même dans les MMO la tendance me semble souvent être de donner à chaque joueur la même expérience de jeu, et donc de créer une distorsion temporelle pour permettre à chacun de croiser les mêmes PNJ, aux mêmes endroits, pour réaliser les mêmes quêtes. Je n'ai que peu joué à des MMO, mais l'un des seuls qui m'ait donné l'illusion d'avoir un vrai monde ouvert avec des évolutions perceptibles est le jeu en PHP Kraland Interactif. Mais cela se fait au prix d'une temporalité complètement brisée (il faut accepter de parler à certaines personnes, qui ne répondront que quand elles se connecteront à leur compte, parfois plusieurs heures après), et de la nécessité de recourir à une certaine imagination pour faire face à un jeu de rôle parfois bancal (en particulier, accepter de s'embarquer dans l'histoire que d'autres joueurs vont proposer même si cela ne correspond pas exactement aux actions que leur personnage va réaliser dans le jeu lui-même).

Voilà, tout ça pour dire que si j'apprécie beaucoup les jeux en monde ouvert (même si je n'ai pas joué à GTA V et que je ne compte pas y jouer), je trouve qu'il y a encore une grande marge de progression possible pour améliorer les comportements des personnages gérés par l'IA pour ne pas donner l'image d'un monde trop figé ! Et si l'aléatoire ou l'impossibilité de rejouer un dialogue en changeant ses réponses peut paraître frustrant, je pense que cela renouvelle également l'intérêt du jeu (en cassant la routine du "j'explore tout, je parle à tout le monde, je finis le jeu à 100%") et permettrait aussi d'offrir une aventure plus personnelle à chaque joueur (après bien sûr, je parle un peu dans le vide, et je me doute bien que si c'était facile à faire, ça aurait sûrement déjà été fait !).

Bref, n'hésitez pas à donner votre avis sur les PNJ en commentaire (attention quand même, je censurerai tout message blessant ou diffamant à l'encontre des PNJ).

Aucun commentaire:

Enregistrer un commentaire