Une fois que la scène est créé et que les modèles Escoria y sont rattachés, le jeu devrait fonctionner. Tout doit être présent : l'arrière-plan, le personnage, et quelques boutons actions avec notre noeud. Mais à l'heure actuelle, rien ne se passe si vous essayez d'y jouer. La logique et la description de ce qui devrait arriver et quand doit encore être rédigée. Pour ce faire, il faut utiliser le scripting de scénario propre à Escoria, dans des fichiers Esc.
Le principe est :
Ce comportement peut recevoir plusieurs actions comme :
Ces actions sont vraiment courantes dans les jeux de type points and clicks, mais d'autres actions peuvent être rajoutées. Actuellement, nous nous contenterons de ce qui est fournis par défaut dans les templates Escoria.
Revenons à notre projet de jeu.
Nous n'avons pas encore grand chose dans notre scène, alors envisageons seulement de le faire parler.
Ouvrez votre éditeur de texte en passant par le bouton script en haut de l’interface de Godot, créez un nouveau fichier texte et enregistrez-le vide (pour l'instant) comme old_man.escdans le dossier device/scene/intro-game/ de votre dossier du projet. Attention à bien utiliser les noms de fichiers corrects car les fichiers seront nombreux.
Pour attribuer un script de scénario à un personnage ou un élément, retournez dans l'inspecteur de Godot et mettez en place la propriété duEvents path(sous Global Id) du noeud old_man au fichier que nous venons de créer. Si vous lancez la scène et que rien n'apparaît c'est simplement parce que le fichier de l'action est vide.
Commençons par éditer le fichier esc et ajouter une action parler. Pour cela, écrivez le nom de l'action définie par les verbes de cette façon :
:talk
De cette façon, l'action de parler sera déclenchée uniquement lorsque le bouton "parler" est cliqué et le old_man activé. Il faut rajouter le mot-clé say au Global id afin que le personnage parle et que son texte s'affiche à l'écran :
say old_man "Hello young panda, today is time for your first offering to the almighty panda god! I have prepared a bamboo stick for you, pick it up and bring it to me."
Nous pouvons répéter pour chaque phrase que nous souhaitons afficher un arrêt. Vous aurez alors quelque chose comme :
:talk
say old_man "Hello young panda, today is time for your first offering to the almighty panda god! I have prepared a bamboo stick for you, pick it up and bring it to me."
say old_man "Don’t worry, you’ll succeed"
stop
Au lancement de la scène, il faut cliquer sur le bouton talk du vieux monsieur. Ensuite sa première phrase se lancera. La seconde phrase s'affichera lorsque le joueur cliquera sur n'importe quelle touche ou sur la barre espace.
Bien entendu, vous pouvez alterner les personnages afin de créer un dialogue. Ce qui est sympathique, lorsque le fichier de scénario Esc est configuré, c'est qu'il n'est pas nécessaire d'ouvrir Godot pour modifier le jeu des dialogues et les interactions. Tout peut être modifié depuis un simple fichier texte, ce qui est pratique pour les designers et les scénaristes.
On remarquera l’utilisation du mot-clé stop pour terminer la discussion ou le monologue.Dans certains cas, certaines choses arrivent uniquement si le joueur a essayé quelques tests ou collecter un certains nombre d'objets. De fait, il est nécessaire de parvenir à 2 étapes pour cela :
Pour définir que quelque chose a déjà été fait, nous pouvons utiliser la commande set_global avec le nom du drapeau (que l'on peut appeler une variable) et lui assigner une valeur pour signalier si c'est vrai ou non (spécifiquement si l'action annule le flag). Par exemple, lorsque le old_man parle pour la première fois, nous pouvons dire qu'il a déjà parlé, et donc vous souhaitez ne pas lancer encore le même dialogue. Cela se configure ainsi :
:talk
say old_man "Hello young panda, today is time for your first offering
to the almighty panda god! I have prepared a bamboo stick for you,
pick it up and bring it to me."
say old_man "Don’t worry, you’ll succeed"
set_global introduced true
stop
Nous avons opté pour le nom introduced de notre flag et l'avons paramétré à vrai.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.