Sorry, JAWA user's manual is not yet translated. Right now we just can provide an appproximative auto-translation :

manuel scenarioStudio

cycle de vie des jeux
notes de version
updated : 21/02/24

modules complémentaires (plugins) et API externe

Depusi la version 31 JAWA intègre dans scenarioStudio un système de modules complémentaire (ou `plug'ins`). Ceci permet aux créateurs de jeux d'y intégrer des contenus web générés par d'autres outils (comme un quizmaker, un mini jeu, une calculatrice ou autre) ou même pour les développeurs web de créer leurs propres modules et leur permettre d'interagir avec la partie en cours (modifier une variable, lancer une interaction) via une petite API javascript (voir paragraphe final).

Pour ce faire, JAWA offre la possibilité de charger des fichiers dans une zone de stockage associée au jeu et appeler un `lanceur` html avec l'effet avancé `plugin` (voir ci après).

Ajouter des modules ou fichiers

Depuis la palette, cliquez sur `compléments` pour ouvrir le gestionnaire de compléments. Celui-ci présente la liste des fichiers et dossiers actuellement présents dans le jeu. Il vous est possible de créer des sous-dossiers (à N niveaux de profondeurs) pour organiser votre espace de stockage (icône dossier vert), et d'y naviguer (depuis la liste des fichiers ou les raccourcis du chemin actuel affiché au dessus)

JAWA propose 2 méthodes pour déployer des fichiers :

Ajout de fichiers multiples : par drag/drop d'un ou plusieurs fichiers depuis votre ordinateur vers la zone inférieure de la fenêtre (vous pouvez également cliquer dessus pour parcourir votre ordinateur et sélectionner plusieurs fichiers). Il n'est en revanche pas possible de charger par cette méthode des sous-dossiers il vous faudra faire les uploads dossier par dossier ou utiliser la méthode ci-après, si votre contenu est organisé avec des sous dossiers.

Déploiement d'un package ZIP (archive) : si votre contenu a une structure complexe (nombreux sous dossiers), faites en une archive ZIP et déployez là en une seule opération en cliquant sur l'icône `paquet ZIP`.

NB : Dans tous les cas, les fichiers seront déployés dans le dossier en cours.

Gérer les fichiers : Vous pouvez à tout moment supprimer un fichier, ou tout un dossier, en cliquant sur l'icône supprimer adjacent qui apparaît au survol de l'élément. Vous pouvez également obtenir le lien interne vers vos fichiers de la même manière en survolant un fichier et en cliquant sur l'icône lien. Ces liens relatifs seront nécessaires pour `appeler` le plugin dans un jeu.

Limitations :
 ▸ Pour raison de sécurité, seuls les fichiers web interprétables par le navigateur sont autorisés : HTML, Javascript (JS et Json), CSS, images, fontes , audio et vidéo. Aucun code serveur ne peut être déployé et exécuté par ce biais.
 ▸ Afin de préserver la volumétrie, la totalité des compléments ne peut dépasser 100mo (voir jauge de quota) sauf dérogation à demander à JAWA.

Intégrer un plugin au jeu

Tout d'abord, une fois les fichiers du complément récupérez le lien vers le fichier lanceur de votre contenu (par exemple le index.html) celui ci peut être obtenu facilement en survolant le fichier et en cliquant sur l'icône lien. Assurez-vous d'utiliser un lien relatif, pour garantir la portabilité de votre jeu sur d'autres serveurs.

2 effets permettent d'afficher un plugin dans une interaction :

▸ l'effet `message` en utilisant le mode d'affichage de contenu web (voir syntaxe dans le chapitre § les effets). Le contenu s'affichera alors dans une boîte de message, un click permettra de passer au message suivant.

▸ le nouvel effet avancé `plugin` offre plus d'options (voir chapitre `§ les effets > effets avancés` tout en bas). Il permet notamment de contrôler plus finement la zone d'affichage (plein écran ou boîte dimensionnée à façon) et surtout de définir si la fenêtre proposera un bouton `continuer` auquel cas le joueur passera à l'effet suivant de l'interaction en cliquant dessus, ou alors va bloquer le déroulement de l'interaction : dans ce cas c'est le code logiciel du module qui devra faire avancer quand le joueur aura fait ce qu'il devait dans ce module (voir ci après § API d'interconnexion)

Dans les 2 cas il faudra fournir l'adresse du lanceur html.


Ajouter des fontes personnalisées à son jeu

JAWA propose une sélection de polices libres de droit, mais vous pouvez également charger vos propres fontes custom via les compléments, que vous pourrez ensuite utiliser comme font de dialogue ou de messages, ou encore pour vos objets texte.

Pour cela il faut créer un dossier "/fonts" à la racine de vos compléments puis y déposer vos fontes (au fomat ttf, otf, eof ou woff).

Les fontes "custom" seront disponibles en rechargeant le panneau des paramètres ou l'éditeur d'objets.



API d'interconnexion d'un plugin à la partie

Cette section s'adresse aux développeurs WEB qui voudraient créer leurs propres plugins JAWA et les interconnecter avec le moteur JAWA. Le moteur JAWA expose une petite API javascript permettant à un plugin de lire les variables de jeu de la partie en cours(par exemple pour configurer le plugin) et d'agir sur le déroulement de la partie (modifier une variable de jeu, actionner un objet ou personnage, ou une combinaison). Pour raison de sécurité et fiabilité, les plugins sont exécutés dans un `iframe`, les appels aux fonctions du moteur JAWA devront être préfixés par la classe `parent` (voir liste des fonctions ci-après).

Liste des fonctions de l'API JAWA L'API JAWA comprend 4 fonctions permettant d'interagir avec la partie en cours :

Récupérer la valeur d'une variable de jeu :

parent.jawaGetVariable(vname);

vname désigne le nom de la variable de jeu (non sensible à la casse).

Modifier la valeur d'une variable de jeu :

parent.jawaSetVariable(vname,value);

vname désigne le nom de la variable de jeu (non sensible à la casse) et value la nouvelle valeur.

Actionner un objet/perso ou un script :

parent.jawaTriggerElement(objet,declencheur,objet2);

Objet désigne l'id du script ou de l'objet à activer. Déclencheur (facultatif) désigné le type d'action que ferait le joueur dessus : ▸ `O` : observer l'objet (click gauche) ▸ `A` : actionner l'objet /script (click droit). ▸ `C` : combiner l'objet /script avec Objet2 (glisser déposer). Si non précisé, c'est le déclencheur `O` qui sera utilisé : clic gauche (observer).

Objet2 (facultatif) doit être précisé si le déclencheur utilisé est `C` (combiner) pour dire avec quel objet on combien le premier.

IMPORTANT : si votre plugin déclenche un interaction,cela mettra fin à l'interaction en cours.

Fermer le plugin et passer à l'effet suivant :

parent.jawaClosePlugin();

Pas d'arguments.

NB : Les plugins ne seront pas préchargés avec leu jeu, il est donc recommandé qu'ils intéègrent leur propres système de preload (barre de progression).