Comment j'ai écrit IF sur Twine

Bonjour Habr! C'est mon premier article et j'aimerais partager mon expérience de création d'un jeu IF avec Twine. Parlez des avantages et des inconvénients de l'outil que vous avez remarqués pendant le travail, et un peu du jeu lui-même.



image



Tout a commencé il y a cinq mois quand on m'a demandé de faire un jeu IF.



Les jeux IF sont des jeux dans lesquels l'interaction avec le joueur a lieu à l'aide d'informations textuelles. Il existe 2 options d'interaction: saisir du texte ou choisir parmi les options déjà proposées.



Le jeu Dictator a été choisi comme exemple , car il était similaire à ce qui devait être mis en œuvre. Dictator est un jeu informatique de simulation politique développé par Don Priestley et publié pour l'ordinateur ZX Spectrum, et a ensuite été porté sur différentes plates-formes.



Le personnage principal, le dirigeant d'un pays bananier, tente de se maintenir au pouvoir de toutes ses forces. Le gameplay est assez simple. Le dictateur, c'est-à-dire le joueur, doit choisir l'une des options d'action proposées. La tâche est de tenir le rôle de chef de l’État le plus longtemps possible.



Pour le développement du jeu, j'ai choisi Twine. Sur Internet, vous pouvez trouver des outils similaires, mais après avoir fouillé quelques options, j'ai décidé de m'arrêter chez Twine , car il aimait davantage l'interface et était gratuit.



Un peu sur la mise en œuvre



Le jeu s'appelle les jeux politiques. Au début de chaque mois, une des factions politiques pose une question, et le joueur doit choisir une action qui, éventuellement, améliorera la situation. Par exemple, pour vendre le terrain, ou acheter un hélicoptère, de sorte qu'en cas d'échec, se débarrasser de ce lieu perdu.



Créer un jeu revient à écrire du HTML en paragraphes: chaque paragraphe est une page distincte qui peut être stylisée davantage. En tant que développeur, je peux choisir le paragraphe par lequel l'histoire commence. J'ai ajouté 2 paragraphes: un pour les variables qui seront responsables des points et du compteur de mois, et le second pour la liste des questions. Et puis j'ai utilisé l'affichage de ces deux paragraphes dans le premier. Les transitions entre les paragraphes sont effectuées à l'aide de liens. Les paragraphes suivants implémentent le balisage de l'apparence de la page.



En conséquence, nous avons obtenu quelque chose comme cet arbre:



image



Le paragraphe marqué d'une icône verte est le premier. Le nombre de paragraphes aurait pu être réduit, mais je n'ai jamais réussi à le faire.



À propos de Twine



Twine est une plate-forme ouverte pour écrire de la littérature interactive, des jeux de texte et des romans visuels. Vous permet de publier des jeux sous forme de pages html et ne nécessite pas de connaissance approfondie de la programmation de la part de l'auteur.



Vous pouvez l'utiliser à la fois dans la version en ligne et télécharger le logiciel sur votre ordinateur.



Un gros plus de la version en ligne est qu'après avoir changé et cliqué sur le bouton "Play", l'onglet d'historique déjà ouvert se rechargera. Sur le bureau, après plusieurs dizaines de modifications et le lancement de l'historique, 100 500 onglets apparaissent.



Twine a plusieurs moteurs, ou comme Twine l'appelle, des formats de jeu.



image



Chaque format de jeu présente des différences en termes de syntaxe, ainsi que des différences en termes de fonctionnalités. Il y a un dock pour chacun d'eux, et vous pouvez également trouver le code source sur github. SugarCube 2 m'a semblé être le plus optimal, il a à la fois une syntaxe pratique et un bon débogage.



Le projet peut être à la fois exporté et importé. Mais si vous souhaitez soudainement modifier le fichier dans l'éditeur, puis le réimporter, ces modifications ne seront pas enregistrées, car Twine reconstruira le fichier au démarrage du jeu, et tout ce qui sera ajouté sera simplement supprimé. Cela crée un léger inconvénient dans les cas où vous devez ajouter des méta-informations, des favicon ou des fichiers css et js tiers. Dans ce cas, vous devez les ajouter via JavaScript. L'action est simple, mais il serait préférable d'ajouter simplement la balise à la section head.



Un autre problème dans Twine est l'absence de saisie semi-automatique, donc tous les noms de balisage et de propriété doivent être écrits à la main. Et ceci à un moment où il est présent dans tous les éditeurs de code!



Résultat



La ficelle fonctionne bien pour les petits projets ou les prototypes. Vous pouvez rapidement classer un jouet IF. Personnellement, cet outil me suffisait, à l'exception de quelques inconvénients.



Inconvénients de la technologie:



  • Il y a des problèmes avec la version de bureau
  • Pas de saisie semi-automatique
  • Ce n'est pas pratique de travailler avec la section head, il faut le faire via js
  • Il n'y a pas de rechargement en direct, donc pendant le développement, vous devez constamment redémarrer le jeu en cliquant sur le bouton "Jouer"


Avantages:



  • Outil gratuit
  • Clair et simple
  • Il y a suffisamment d'occasions de faire quelque chose d'intéressant


Si quelqu'un veut s'essayer au rôle d'un dictateur, sortir le pays de la pauvreté à des sommets sans précédent ou, au contraire, le plonger dans l'abîme d'une guerre civile, alors vous êtes les bienvenus . Je serais heureux de recevoir des critiques constructives.



UPD



Snuux dans les commentaires ont jeté des exemples de compilateurs Twine avec rechargement en direct.



All Articles