OpenClassrooms

      Créer des jeux textuels avec Inform 7 Online

      OpenClassrooms
      En Ligne

      Prix sur demande
      Ou préférez-vous appeler directement le centre?
      18088... Voir plus
      Désirez-vous contacter un conseiller pour cette formation ?

      Infos importantes

      Typologie Formation
      Méthodologie En ligne
      • Formation
      • En ligne
      Description

      Nous vous proposons des cours ouverts pour se former autrement, pour devenir acteur de votre vie. Nous vous aidons à prendre votre envol, mais ça ne s'arrête pas là. Notre volonté est de vous accompagner tout au long de votre vie, dans votre parcours professionnel.Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

      Questions / Réponses

      Pose une question et d'autres utilisateurs vous répondrons

      Programme

      Introduction du cours

      Inform 7 est un langage de programmation permettant de créer des mondes imaginaires, de les remplir d'objets et de personnages, et par ce biais, de créer des histoires, des aventures et des jeux.

      Ces jeux sont également nommés fictions interactives.

      Mais à la différence des jeux modernes impliquant des effets 3D, des animations, des images et du son, les fictions interactives utilisent uniquement du texte pour communiquer avec le joueur et lui décrire son environnement, comme dans un livre, et l'unique moyen d'entrer des commandes pour le joueur est de les taper au clavier.

      Il est néanmoins possible d'y ajouter de façon optionnelle des images, des musiques ou des sons.

      Inform 7 est un des systèmes les plus efficaces et modernes pour créer ce type de jeux.

      Il est composé :

      • d'un environnement graphique de développement (IDE) pour écrire le code, interpréter le jeu et avoir accès à la documentation ainsi qu'à divers modules (comme par exemple la liste des relations entre les objets, la liste des verbes, l'arborescence des choix possibles etc).

      • d'un compilateur permettant de créer le fichier d'histoire dans un langage machine spécial, qui sera interprété ensuite.

      • de bibliothèques permettant de décrire les règles qui régissent le monde.

      Ce petit guide ne prétend pas se substituer au manuel, très complet, fourni avec le logiciel. Par contre c'est le premier du genre qui aborde, en français, une initiation à Inform 7, qui donnera les bases nécessaires pour concevoir un univers textuel. Le lecteur pourra ensuite se référer au manuel officiel, et à ses nombreux exemples commentés, pour en savoir plus.

      À la fin de sa lecture, le lecteur sera en mesure de créer lui-même une petite aventure de ce type : Jouer à "Sable" en ligne

      À titre d'exemple des possibilités évoluées de ce langage, notons qu'il permet également, de par sa modélisation avancée des règles de la physique, de tester des équations ou des expériences de façon empirique (que nous n'aborderons pas ici).

      Attention : Le cours présenté ici est pour une ancienne version d'Inform 7 (version 6G60). Si vous téléchargez la dernière version d'Inform 7, la plupart des concepts évoqués ici seront toujours valables. Néanmoins, il sera nécessaire de procéder à des adaptations dans certaines parties du code (ceci sera éventuellement modifié dans une prochaine version de ce cours).

      Et la procédure d'installation avec la dernière version de l'extension (à partir de 6L02) se trouve dorénavant ici : https://bitbucket.org/informfr/i7-french-language

      PréparationUn petit exemple

      La principale originalité d'Inform 7 est que le code de programmation est à écrire dans un langage naturel déclaratif, au lieu d'utiliser un langage de bas niveau procédural, impératif, comme pour le C par exemple (ou comme son prédécesseur Inform 6).

      Mais n'espérez pas pouvoir écrire vos instructions en français, la seule langue utilisable est l'anglais, comme pour la plupart des autres langages de programmation.

      Exemple de code minimaliste, l'équivalent du "Hello World" :

      "Bonjour monde" by "Zero"      Univers is a room.   When play begins, say "Bonjour, monde."

      Bien entendu, vous pourrez obtenir au final un jeu entièrement francisé, le langage de programmation étant séparé des bibliothèques francophones existantes.

      Mais plutôt que de disserter sur la technologie sous-jacente, entrons directement dans le vif du sujet, et créons déjà notre première petite histoire.

      Installation d'Inform 7

      En premier lieu, téléchargeons Inform 7 sur le site officiel :

      http://inform7.com/

      et plus précisément à la page http://inform7.com/download/ choisissez la version pour votre système d'exploitation : Mac OS X, Windows, Linux ou autre. (Dans la suite des copies d'écran, nous présenterons indifféremment ces 3 systèmes existants)

      Une fois l'installation réalisée, démarrez le logiciel, et sélectionnez par exemple :

      Start a new project...

      Mettez votre projet de jeu dans le dossier :

      • C:\Documents and Settings\utilisateur\Mes documents\Inform\Projects sous windows

      • ou bien ~/Inform/Projects sous linux ou mac os x

      Et appelez-le "Sable". Choisissez également votre nom de plume.

      L'interface est séparée en deux fenêtres, comme dans un livre ouvert.

      La page de gauche est généralement utilisée pour taper le code, et la page de droite pour visualiser le jeu ou lire la documentation. Il est également possible d'obtenir en vis à vis deux fenêtres de sources pour comparer du code, ou encore pour visualiser deux modules différents à la fois, en sélectionnant les onglets se trouvant à côté (mac os x, linux) ou au-dessus des fenêtres (windows)

      Ces modules sont respectivement :

      • Source (Source du jeu)

      • Errors (Erreurs de compilation)

      • Index (Index des lieux, des objets, des verbes etc.)

      • Skein (cheminement sous forme d'arborescence)

      • Transcript (transcription du jeu = solution)

      • Game (affichage du jeu)

      • Documentation (documentation de la syntaxe et de l'utilisation d'inform 7)

      • Settings (options)

      Pour le moment nous nous concentrerons sur les onglets Source et Game, qui sont les plus importants. Lorsque vous aurez un peu plus d'aisance avec Inform, vous pourrez découvrir les autres modules (certains sont très optionnels, comme le Skein et le Transcript)

      Premier code

      Nous allons reprendre l'exemple de code précédent, en le modifiant un peu (les crochets dans le code, lorsqu'ils ne sont pas à l'intérieur de guillemets, signifient un commentaire qui ne sera pas interprété) :

      "Sable" by Zero        Oasis is a room. "Une belle oasis ensoleillée...".     The dromadaire is an animal in Oasis.        When play begins, say "Bonjour, voyageur.".

      et cliquez sur "Go!" pour compiler le jeu. Vous verrez sur la page de droite s'afficher le résultat :

      Bonjour, voyageur.   Sable   An Interactive Fiction by Zero   Release 1 / Serial number 100118 / Inform 7 build 5Z71 (I6/v6.31 lib 6/12N) SD   Oasis   Une belle oasis ensoleillée...   You can see a dromadaire here.

      Argh, nous avons du français et de l'anglais mélangé et ce n'est pas ce que nous souhaitons !

      En effet, Inform 7 étant à la base tout en anglais, il n'a pas encore moyen de savoir que nous voulons que le jeu soit en français pour toutes nos réponses, ce qui est normal. Aussi, à l'exception des chaînes de caractères que nous avons écrites nous-même en français, tout le reste sera traité en anglais.

      Mais même si ce n'est pas encore parfait, vous pouvez commencer dès maintenant à interagir avec cette histoire en franglais, en tapant des instructions (instructions pour le moment en anglais), avec une phrase après le signe > (appelé le prompt), et le résultat s'affichera sur la ligne en dessous, par exemple :

      >examine dromadaire   You see nothing special about the dromadaire.Installation de l'extension francophone d'Inform 7

      Inform 7 utilise un système d'extensions qui permet de lui rajouter des fonctionnalités. Ainsi, pour franciser Inform 7, il suffit de télécharger l'extension French.i7x sur le site officiel et de la sauvegarder sur votre disque :

      http://inform7.com/extensions/Eric For [...] ch/French.i7x

      Ensuite dans Inform 7, allez dans le menu
      File > Install extension... > et choisissez le fichier French.i7x que vous venez de télécharger.

      Dans le cas où la version de l'extension ne serait pas la même que la version d'Inform 7 téléchargée (par exemple en ce moment c'est la version 5Z71 qui est d'actualité), vous pourrez éventuellement trouver une version plus récente et en développement sur le site http://informfr.tuxfamily.org/

      Maintenant, rajoutez :

      Include French by Eric Forgeot.     Use French Language.

      au début de votre code précédent, ce qui donne au final :

      "Sable" by Zero          Include French by Eric Forgeot.      Use French Language.     [c'est-à-dire : seconde personne du pluriel (politesse) au présent.]                 Oasis is a room. "Une belle oasis ensoleillée...".     The dromadaire is an animal in Oasis.        When play begins, say "Bonjour, voyageur.".

      Si nous compilons de nouveau le jeu avec "Go" nous obtenons maintenant :

                Oasis   Une belle oasis ensoleillée...   Vous pouvez voir un dromadaire.

      Vous avez maintenant toutes les répliques du jeu en français ! De plus, vous pouvez interagir avec l'histoire en tapant vos commandes en français. Par exemple :

      >examiner le dromadaire   Rien de particulier concernant le dromadaire.   >embrasser le dromadaire   Concentrez-vous sur le jeu.   >frapper le dromadaire   La violence n'est pas une solution ici.

      Ici, comme nous n'avons rien précisé de plus, nous obtenons les réponses-types prévues dans Inform 7 (et plus précisément dans les traductions de l'extension francophone).

      Syntaxe de base : les objets, les lieux, les connexions et les propriétésLa syntaxe de baseLes objets et les lieux

      Revenons un peu sur le code utilisé pour placer les objets dans le jeu, et expliquons le un peu mieux, même si le langage naturel permet de comprendre aisément les instructions.

      • Pour créer une "pièce" (a room) au sens large, c'est-à-dire un endroit, il suffit d'indiquer le nom de la pièce, suivi de "is a room", par exemple "Oasis is a room". On peut faire suivre la description de cette pièce entre guillemet, ou implicitement déclarer :

      The description of NomDeLaPiece is "Ma description de cet endroit".

      Les phrases pouvant facilement se permuter et se déplacer dans la majorité des cas, cela peut être une bonne idée de préciser à chaque fois la description d'un objet au lieu d'utiliser la version courte, mais c'est une question de préférence.

    • Pour créer un objet (c'est-à-dire un personnage ou une chose), il suffit d'indiquer le nom suivi de "is in NomDeLaPiece". Même syntaxe pour la description.

    • Pour donner des attributions spécifiques à un objet, il suffit de rajouter man, woman, animal ou thing après "is", par exemple : "is an animal in Oasis".

    • Cela permettra de donner des réponses types plus adaptées à la nature de ces objets (qu'ils soient animés ou inanimés). Ainsi, pour un être vivant, la réponse par défaut à l'action "toucher" sera "Tenez vos mains tranquilles", alors que pour un objet inanimé cela sera "Vous ne sentez rien de particulier".

      Ces objets sont en fait appelés par des variables que nous venons d'initialiser.

      La phrase suivante :

      When play begins, say "Une introduction..."

      est juste un code pour demander d'exécuter quelques commandes au début du jeu. Ici cela ne fait qu'afficher un petit texte d'introduction, mais on peut imaginer placer là certaines initialisations supplémentaires.

      Rajoutons maintenant un autre objet dans cette oasis.

      The palmier is a thing in Oasis.

      Ce palmier est très bien, mais il y a un petit problème de conception : Essayez de le prendre avec la commande "prendre le palmier" une fois la nouvelle version du jeu compilé, et vous vous entendrez dire "D'accord". En consultant votre inventaire avec ">Inventaire" (abbrégé par "i"), vous le trouverez effectivement dans vos affaires :

      >i   Vous avez:   un palmierLes propriétés

      Les objets définis comme être vivants ne pourront pas être transportable par défaut (c'est une question de savoir-vivre...)
      Pour obtenir la même caractéristique sur un objet inanimé, il suffit de dire qu'il est "fixed in place" (fixé sur place).

      The palmier is a thing in Oasis. It is fixed in place.

      que l'on peut simplifier par :

      The palmier is fixed in place in Oasis.

      Pour ajouter du réalisme, on peut également rajouter du sable :

      The sable is fixed in place in Oasis.

      Le problème, c'est que maintenant le jeu nous annonce :

      Vous pouvez voir un dromadaire, un palmier et un sable.

      Au niveau de l'article de ce cas particulier, "un sable" n'est pas correct puisqu'il faut un article partitif.
      Pour simuler cela avec Inform 7, il faut rajouter :

      The indefinite article of sable is "du".

      Ce qui affichera un résultat correct.

      Ensuite, si le sable n'est pas un objet que l'on souhaite mettre en avant lors des descriptions (c'est évident qu'il y a du sable dans un désert et une oasis), il peut être intéressant de le masquer dans les descriptions, tout en permettant au joueur d'interagir avec lui (l'examiner, le toucher etc.)

      Pour cela, on utilise la propriété (en anglais property, que l'on peut voir en fait comme des adjectifs) nommée "scenery".

      The sable is scenery in Oasis.

      Cette propriété contient déjà la notion de "fixed in place", donc ce n'est pas la peine de le rajouter.

      Mieux, si nous souhaitons créer un objet qui se répétera dans plusieurs endroits à la fois (comme le sable, le soleil, le ciel...), on peut utiliser la propriété "backdrop" à la place (en effet, un objet normal, scenery par exemple, ne pourra pas être dans plusieurs pièces en même temps).

      The sable is backdrop in Oasis, in Désert and in Crypte.   The soleil is backdrop in Oasis and in Désert.

      Lorsque plusieurs objets (ici ce sont des lieux) sont concernés par une action ou une définition, on peut utiliser une virgule ainsi que "and" pour les séparer, cela évite d'écrire plusieurs phrases distinctes en les factorisant : ("The...


      Comparer pour mieux choisir:
      En voir plus