Construction d'un moteur pour l'animation de jeux d'aventure en React
August 26, 2022
Lors du Réunion CoTech en 2021 j’ai joué un jeu d’aventure basé sur le choix, écrit par un ami, obstinément sur l’organisation de coopératives mais en explorant d’autres thèmes également. Après plusieurs conversations après et avec un intérêt commun pour les coopératives et les autres jeux d’aventure comme Disco Elysium, nous avons décidé d’en construire une ensemble.
Dans notre prémier jeu - Big City Agora - le joueur se réveille dans un parc à Big City, dans une contexte où tout le monde a connu une amnésie collective, à la suite d’un événement appelé “Le Big Pop”. Le jeu consiste à explorer le monde par le biais de choix et de dialogues basés sur le texte, en utilisant des portraits de personnages, des effets de texte réguliers et des animations pour donner plus de vie à l’histoire. Une démo est disponible en suivant le lien dans le texte, et le code et la documentation sont open-source, publiés sur GitHub.
Le produit final est capable d’exécuter des histoires écrites en utilisant Ink, qui est un langage de programmation simple mais riche en fonctionnalités, conçu pour supporter des récits linéaires comme Big City Agora. En prenant un projet Ink exporté d’une source en ligne, notre moteur analyse le contenu et l’anime en utilisant des composants React, dirigés par une animation automatique et en supportant des extensions personnalisées de la syntaxe Ink pour diriger les portraits de personnages, les pauses et les effets.
Le projet a été construit de manière assez itérative, il a commencé par être destiné à un seul jeu et à tester React, mais plus tard j’ai réalisé le potentiel du développement d’un outil assez simple mais puissant pour rendre n’importe quelle narration Ink et lui donner de la vie. Si vous souhaitez l’essayer et écrire votre propre dialogue, consultez le README où vous trouverez des instructions. Puis vous pouvez utiliser notre site démo pour le jouer. Ink est un langage de programmation, mais je pense qu’il est tout à fait accessible aux nouveaux venus, et ayant joué avec d’autres formats et outils comme Twine, je le trouve très convivial pour l’écriture de récits linéaires et ramifiés.
A partir de là, j’ai quelques plans pour explorer l’expansion de l’application dans le but de partager des jeux entre écrivains et joueurs, et dans quelques idées nouvelles sur la façon d’utiliser le web sémantique pour rassembler les jeux dans un monde narratif décentralisé mais cohérent. Je vous tiendrai au courant :-)