Dernier message
Portrait de Itooh
Inscrit le : 08/09/2013
Commentaires : 196
Messages : 516
#1
Message Sujet: Twine : Création de récits interactifs en hypertexte     13/05/2014 à 00:27

Un genre de jeu amateur qui a connu un petit succès il y a quelques temps, c'est le récit interactif textuel. Des jeux d'aventure à base de textes (parfois accompagnés d'images ou de fond sonores), où le joueur choisit ses actions à l'aide de liens, à la façon de Livres dont vous Êtes le Héros. Si ce genre s'est démocratisé, c'est grâce à l'outil libre qui a permis de les développer facilement, Twine. D'où le nom de jeux Twine.

Parmi les exemples les plus réussis, citons le fameux Depression Quest, la collection humoristique You Will Select A Decision, le touchant Five Words (go go go), et les travaux complètement psychédéliques de Porpentine tels que HIGH END CUSTOMIZABLE SAUNA EXPERIENCE, Myriad, ou encore Ultra Business Tycoon III (qui n'est pas aussi compliqué qu'il n'en a l'air). Tous ces jeux sont gratuits.

***

Mais j'ouvre ce topic pour parler essentiellement de l'outil, Twine. Twine propose une interface graphique à base de drag-and-drop pour créer efficacement des histoires avec différents chapitres inter-connectés. La syntaxe est simple, et l'outil à peu près ergonomique. Une version console existe tout de même, twee, pour pouvoir écrire son jeu dans ses propres fichiers. L'outil est à base de Python et de Javascript, et fonctionne donc sur tous les OS, et permet facilement la création de macro.

L'avantage de Twine pour quelqu'un qui veut s'initier au jeu-vidéo, c'est qu'il met de côté la question de la gestion d'un moteur physique ou de l'aspect graphique (même si c'est recommandé de faire un peu de CSS), avec très peu de programmation (dans l'idéal, mais ça peut venir bien vite). Du coup, ça laisse se concentrer sur le game-design, le level-design, et bien entendu, la narration. Content

Si j'ouvre ce sujet, c'est parce que je suis moi-même en plein milieu du développement d'un jeu Twine. Un projet qui s'est avéré beaucoup plus gros que prévu (sûrement trop, mais je ne peux plus faire machine arrière), et dont après 9 mois de développement, j'arrive enfin à la fin du premier chapitre sur trois. Il faut dire que la programmation a pris un boulot énorme, et que ce n'est que depuis peu que je peux enfin me consacrer entièrement à l'écriture.^^ (ça plus le fait que je développe sur mon temps libre, quand j'en ai la motivation, ce qui peut donner quelques périodes d'avancement au ralenti)
Du coup, histoire de me changer un temps les idées, et profiter de la connaissance de l'outil que j'en ai gagné, je propose d'ouvrir ce topic pour en discuter, et éventuellement s'échanger les divers conseils ou macros concernant Twine. C'est une solution sympathique pour aborder le développement de jeu-vidéo et quelques problématiques qui vont avec, voire simplement créer des récits interactifs si vous aimez le genre ! =)

***

J'aimerais cependant faire un aparté important. Twine est le meilleur outil pour la création de récits interactifs web dans le sens ou c'est le seul. Néanmoins… Il est loin, très loin d'être exempt de défaut. À commencer par l'interface graphique, gentiment buggée sous Linux, et en elle-même pas franchement pratique pour les gros projets.
Mais pour ça il y a twee, le compilateur console. C'est ce que j'ai utilisé dans un temps, mais il y a une chose que j'ai réalisé bien trop tard : le dépôt git (seul moyen de le récupérer) de twee n'a pas été mis à jour depuis plus de deux ans ! Le moteur a pourtant bien été travaillé depuis, mais uniquement sur le dépôt de Twine. Fort heureusement, depuis février dernier, on peut enfin utiliser twee à partir de Twine. Donc si vous voulez utiliser twee, prenez Twine, surtout pas le vieux dépôt twee.

Et ce n'est malheureusement qu'un exemple dans le bazar que peut être Twine par moment. Entre la doc pas toujours claire et très éparpillée, les macros qui fonctionnent de façon très bizarre, le moteur qui interprète tout ce qu'il lit (je donnerai peut-être des exemples de trucs moches à l'avenir), et l'architecture tordue du moteur javascript…
En fait, c'est simple : si vous voulez vous contenter des bases, vous n'aurez aucun problème, et pourrez faire des choses plutôt variées. Même le CSS ne devrait pas vous prendre trop la tête. Mais dès que vous voulez quelque chose de spécifique et vous diriger vers le développement de macros… Attendez-vous à vous prendre la tête.

C'est un peu dans cette optique que j'ouvre ce topic : si jamais vous décidez de vous lancer, et que vous vous posez quelques questions ou rencontrez un problème, j'aurais potentiellement moyen d'aider.^^ J'ai eu plus d'une occasion d'aller fouiller dans le code, heureusement commenté (mais ça ne m'empêche pas de faire toujours de nouvelles découvertes :p).

Bien entendu, cela ne doit pas effrayer pour autant. Surpris Twine reste largement plus pratique à utiliser que construire son propre moteur d'histoires, que ce soit web ou non. (anecdote : j'ai d'ailleurs passé l'année d'avant à développer un moteur d'aventure textuelle en console, avant d'apprendre en milieu de projet l'existence de Twine, puis six mois plus tard de ne pas réussir à exporter le prototype fonctionnel, ce qui m'a poussé à m'arrêter là)
Le développement de macro n'est qu'une partie (relativement) négligeable du développement. L'essentiel réside dans la construction du récit, l'élaboration des branches, et l'équilibrage du jeu. C'est fastidieux aussi, mais beaucoup plus vite gratifiant, et peu pénible !

***

À présent, quelques liens qui peuvent s'avérer utile pour le développement Twine :

  • Site officiel, où vous trouverez l'outil, et quelques sites où héberger vos jeux terminés.
  • Twine Reference, une page discrète du wiki officiel, qui liste de manière facile les différents concepts à connaître pour utiliser Twine. Même si le wiki est loin d'être exhaustif, il aide à connaître les bases, et quelques astuces.
  • Liste non officielle des macros existants de base. Elle n'est plus à jour (il en manque quelques uns), mais elle reste très, très utile. Bénie soit cette liste, qui aurait dû se trouver dans la doc.
  • Forum officiel, une communauté active où vous pourriez trouver quelques macros ou solutions.
  • Le Google Group Twine, l'ancienne communauté active j'ai envie de dire.^^ On trouve aussi de bonnes solutions ici, mais faites attention aux dates, certains codes peuvent ne plus être à jour.
  • Doc non à jour de l'API javascript, utile si vous voulez vous mettre aux macros. Les noms ne sont plus exactement les mêmes aujourd'hui, et la structure a quelque peu changée, mais cela peut quand même vous aider à comprendre de quoi l'application est constituée lorsqu'elle tourne.
  • Article décrivant quelques gros problèmes que l'on rencontre avec Twine Il est vieux, mais malheureusement toujours d'actualité. Ça reste toutefois instructif.
  • Liste de liens utiles de Porpentine, ainsi que l'accès aux sources de ses nombreux jeux.

Pour le développement, j'utilise personnellement l'éditeur Sublime Text, qui dispose d'un package pour Twee ! Joyeux (il n'est cependant pas à jour par rapport à la version récente de twee, mais offre une coloration syntaxique optimale malgré tout) (j'ai l'impression de répéter beaucoup "pas à jour" ^^)

J'espère que cette présentation aura motivé quelques uns à se lancer dans l'écriture de récits interactifs, ou autres jeux à base de texte ! Ça reste fun à faire une fois qu'on a pris ses aises. Content