Ça y est ! Après la lecture de notre introduction aux chatbots, du panorama des jeux en ayant fait leur cœur de gameplay, et de la rétro-ingénierie des lettres dans Animal Crossing, vous avez décidé de vous lancer dans la création d’un chatbot. Mais bien que les idées foisonnent dans votre tête, vous ne voyez pas vraiment par quel bout commencer. Bonne nouvelle, je me suis cassé les dents avant vous sur ce sujet, et voici un retour d’expérience qui pourrait vous être utile.

Les boîtes noires

Chaque équipe ayant travaillé sur un jeu chatbot ces dernières années s’est vue poser au moins une fois cette question : « Mais, pourquoi vous n’utilisez pas un réseau de neurones et du machine learning et du big data ? » À cet instant, les devs poussent un grand cri à l’unisson, soit parce que leur grille de bingo-buzzwords est pleine à craquer, soit devant l’horreur que représenterait une telle approche. Ne nous méprenons pas, les IA les plus efficaces du moment emploient précisément ces technologies, et sont ainsi capables de traduire des textes, de reconnaître des chatons, ou de vous faire croire que Donald Trump a prononcé un discours sensé. Alors pourquoi sont-elles déconseillées ?

Ce qu’il faut bien comprendre, c’est que ces programmes fonctionnent parce qu’ils sont entraînés pour copier des choses existantes et déjà disponibles en importante quantité. Les traductions, photos de chatons et enregistrements de Trump foisonnent sur internet. Dans votre cas, si vous concevez un chatbot interprétant un personnage de votre jeu, il vous faudrait une banque très large de dialogues écrits dans le registre que vous visez. En plus de ce premier obstacle, vous n’aurez aucune emprise sur le résultat qui sortira de cet apprentissage intense. Si par exemple vous vouliez ajouter une blague rigolote, une scène en particulier ou un easter egg, ce sera tout simplement impossible. Votre seul moyen d’influencer ce que racontera votre chatbot est par le biais du corpus et dans la façon dont vous entraînez, mais tout le reste se déroule en boite noire.

Et puis, il y a de toute façon la question du coût. Ces IA sont très lourdes en terme d’infrastructure et il n’y a aucune chance que vous puissiez en faire tourner une en local dans votre application. Il vous faudra donc connecter votre jeu à une ferme de serveurs qui répondra en temps réel aux requêtes de votre public. Et je ne parle même pas de l’entraînement lui-même, très long, sans garantie d’arriver au résultat escompté.

Bêtise artificielle

Dans le cadre du développement d’un jeu vidéo, il est préférable d’avoir une approche itérative et la possibilité de prototyper ses idées. C’est pourquoi je recommande fortement de concevoir votre algorithme à la main, ou d’utiliser un framework capable de classer des mots par significations et d’y associer des réponses préécrites. C’est sans doute le degré zéro de l’IA (on parle de weak AI), mais ça a l’avantage d’être trivial à entretenir et à débuguer. 

On arrive donc au sujet sensible : le code de votre chatbot. Il existe aujourd’hui une variété de frameworks plus ou moins gros vous permettant de faire des chatbots simples. Au pif, Dialogflow de Google offre une belle interface et des outils intéressants, mais vous obligera à intégrer dans votre jeu une connexion permanente à leur service web. Le monde des chatbots étant en constante évolution (et moi-même étant déjà bien largué), je ne peux que vous conseiller de chercher par vous-même la solution qui vous conviendra le mieux. Et le moins vous vous attarderez sur le développement lui-même, le plus vous pourrez vous investir dans l’écriture.

Car c’est bien à cela que sera consacré la majorité de votre temps : écrire, écrire, et encore écrire du texte. « Si on te dit ceci, répond cela. » Et ainsi de suite, jusqu’à la fin de la journée. C’est de cette façon que fonctionnent tous les chatbots du jeu vidéo et c’est pour cette raison qu’ils sont caractérisés par une personnalité forte et des objectifs clairs.

Conseils d’écriture

Écrire pour un chatbot est quelque chose d’assez différent, certes passionnant, mais difficile. Bien que chaque chatbot soit unique, quelques règles d’or restent universelles :

> Faites preuve de générosité ! Dans les réponses que donnera votre IA, glissez des indices sur les sujets de conversation dont elle peut parler. Il n’y a rien de plus frustrant que de ne pas savoir quoi écrire quand on converse avec un chatbot.

> Un bon chatbot ne décourage pas, il réoriente. Si par exemple un joueur ou une joueuse se met à parler de foot et que vous n’avez rien prévu à ce sujet, il se peut que vous ayez une réponse par défaut du type « Je ne comprends pas. » ou bien « Cette conversation m’ennuie profondément. » Même si ce texte tombe sous le sens (le chatbot ne comprend en effet rien au foot), il reste abrupt et décourageant. Le plus efficace serait de réorienter l’air de rien vers un autre sujet. Par exemple, en ayant comme réponse par défaut « Bobby aurait adoré discuté de ça avec toi. Si seulement il n’avait pas disparu du jour au lendemain… »

> Faites varier vos réponses. Si la réponse précédente fonctionnera très bien sur le moment, toute l’illusion tombera comme un château de cartes si le chatbot se répétait à nouveau. On comprendrait alors immédiatement qu’il s’agit d’un cache-misère pour l’incompréhension, et cette déception s’ajouterait à la vilaine impression de tourner en boucle. Vous l’avez compris, le plus simple reste de faire varier vos réponses. Et, avec un peu de motivation, vous pouvez même les générer procéduralement en les rédigeant comme des pièces de puzzle. Pour vous familiariser avec l’exercice, je ne peux que vous conseiller un petit passage sur le site de Tracery.

> Soulignez vos moments d’intelligence ! Votre chatbot ne comprendra rien 90% du temps, c’est un fait. Votre objectif est donc de vous assurer que, dans les 10% restants, il paraisse très en phase avec la conversation. Et, pour cela, il faut laisser zéro ambiguïté sur ce qu’il a compris. Par exemple, vous avez affaire à l’entrée suivante : « Où se trouve la clé ? » Imaginons que votre chatbot ne soit pas très coopératif, et que sa réponse soit : « Je ne te dirai rien 😉 » Or, cette phrase aurait pu fonctionner avec n’importe quelle autre question. Elle aurait pu même être utilisée dans le cas où votre chatbot n’a rien compris à ce qu’on lui demandait. Pour une large portion de votre public, il s’agira donc d’un problème de compréhension, et non d’une boutade. Voilà ce qui devrait mieux fonctionner : « J’ai promis à Bobby de ne pas révéler là où il l’a cachée. »

> Testez, testez, et testez encore. Il n’y a aucun moyen pour vous d’anticiper complètement les questions auxquelles sera confronté votre chatbot. Le mieux que vous puissiez faire est de vous trouver des cobayes (comprenez : des joueurs et joueuses que nous n’influencerez pas) et de les laisser jouer à votre jeu. Ce sera une expérience douloureuse, et il est probable que vous en sortiez avec quelques cheveux en moins, mais c’est aussi la meilleure façon (et probablement la seule) de combler les trous de vocabulaires de votre chatbot.

Et voilà ! Vous avez maintenant une bonne base pour créer votre propre chatbot. Ça prend du temps à écrire, mais j’espère que les conseils ci-dessus vous permettront d’être efficace et d’arriver à un résultat intéressant voire impressionnant !