01 / PRENDRE SES REPÈRESCe que tu vas fabriquer
Un personnage doit récupérer trois lanternes, puis rejoindre un terminal avant la fin du compte à rebours. Il peut gagner, perdre, mettre en pause et reprendre une sauvegarde. C’est un petit jeu complet avec un début, des actions et une fin.
- Ouvre ce guide dans un onglet et le moteur dans un autre. Sur un grand écran, place-les côte à côte.
- Garde un dossier
MonPremierJeusur ton ordinateur : il accueillera les sauvegardes et l’export. - Lis une étape, reproduis-la, vérifie son résultat, puis coche « Étape terminée ».
- Avant chaque expérience, arrête Play : les réglages du jeu en cours ne remplacent pas les réglages de départ.
Ce parcours utilise les menus et la logique visuelle du navigateur. Aucune installation de compilateur ni connaissance de C# n’est nécessaire pour ces étapes.
02 / LES MOTS SANS LE JARGONUn jeu, c’est quoi à l’intérieur ?
| Mot affiché | Ce que ça veut dire | Dans notre jeu |
|---|---|---|
| Projet | Le dossier logique de tout ton jeu. | Ses scènes, objets, règles et réglages. |
| Scène | Un espace de jeu ou un niveau. | La mission avec les trois lanternes. |
| Objet / GameObject | Un élément placé dans une scène. | Le personnage, une lanterne, le terminal. |
| Asset / ressource | Un fichier utilisé par le jeu. | Une image, un son ou un modèle 3D. |
| Composant | Un rôle ajouté à un objet. | Affichage, déplacement, inventaire, collision. |
| Variable | Une information qui porte un nom. | essais garde un nombre. |
| Valeur | Le contenu actuel de cette information. | essais contient 0, puis 1. |
| Type | La sorte d’information autorisée. | Nombre, vrai/faux, texte. |
| Événement / trigger | Ce qui déclenche une règle. | Appuyer sur E près d’une lanterne. |
| Condition | Une question avec une réponse vraie ou fausse. | Les trois lanternes sont-elles récupérées ? |
| Action / instruction | Ce que le jeu doit faire. | Ajouter un point de progression. |
| Blueprint / comportement | Une règle construite avec ces éléments. | Quand E est pressé → collecter la lanterne. |
| Play / Stop | Tester le jeu / revenir à son édition. | Jouer la mission, puis la modifier. |
| Build / export | Le paquet qui permet de distribuer le jeu. | Une archive ZIP pour navigateur. |
| Bug / déboguer | Un résultat inattendu / chercher sa cause. | Un objectif reste à 2/3 : vérifier la dernière collecte. |
03 / TROIS TYPES À CONNAÎTREBoolean, string et number
boolean = seulement vrai ou faux
On dit booléen en français. true veut dire vrai et false veut dire faux. Exemple : aLaCle = false signifie « le joueur n’a pas encore la clé ». Dans beaucoup de menus du moteur, Oui / Non représente ces deux valeurs.
string = du texte
Un nom, une phrase ou un identifiant. Dans du code ou du JSON, on écrit le texte entre guillemets : "Alex". Dans un champ texte normal du moteur, saisis simplement Alex : les guillemets ne sont pas nécessaires.
number = un nombre
Pour compter ou mesurer : 3 lanternes, 100 points, 2.5 secondes. Dans les exemples de code, le point sépare les décimales. Un champ numérique peut afficher une virgule selon ton navigateur.
3 est un nombre ; "3" est du texte. false est un booléen ; "false" est du texte. Le type indique comment la valeur doit être utilisée.Plus tard : vector2 stocke deux nombres, par exemple X et Y ; vector3 en stocke trois, X, Y et Z. void, dans une fonction, veut dire « ne renvoie pas de valeur ». En C#, tu verras aussi bool pour les booléens, int pour les entiers et float pour certains nombres décimaux. Ici, on utilise les types affichés par Blueprint.
04 / TON PREMIER PROJETCréer un espace pour apprendre
- Dans WarLike Hub, clique sur + Nouveau projet. Si tu vois directement l’éditeur, clique d’abord sur ▦ Hub.
- Dans Nom du projet, écris
Mon premier jeu. - Dans Type de moteur, choisis Projet 2D.
- Dans Type de jeu compatible avec le projet, choisis Projet vierge.
- Clique sur + Créer le projet.
Un autre nom de projet ou un décor inattendu ? Retourne au Hub et vérifie le projet ouvert. Tu peux garder tes essais dans des projets séparés.
05 / UN JEU QUI TOURNEInstaller la mission et la jouer
- Ouvre ⬡ Blueprint Studio dans la barre du haut.
- Choisis l’onglet ◇ Projet & export.
- Clique une fois sur Créer un exemple de jeu complet. Une nouvelle scène est créée ; la scène précédente reste dans le projet.
- Dans la colonne de gauche, retrouve Explorateur, Lanterne 1, Lanterne 2, Lanterne 3 et Terminal d’extraction.
- Reviens dans Projet & export, puis clique sur ▶ Tester dans l’éditeur.
- Lis le dialogue puis clique sur Continuer →. Clique ensuite dans la vue de jeu pour lui donner le clavier.
- Déplace-toi avec les flèches ou ZQSD / WASD. Approche chaque lanterne et appuie sur E. Après la troisième, approche le terminal et appuie sur E.
06 / UNE MODIFICATION VISIBLETon texte et ton compte à rebours
- Arrête Play. Ouvre Blueprint Studio, sélectionne Explorateur, puis le comportement Au démarrage.
- Choisis ☷ Instructions. Si le panneau annonce un graphe, clique sur Convertir en liste modifiable pour cet exercice.
- Dans l’action Démarrer un compte à rebours, remplace Durée (secondes) par
240. Garde l’identifiantmission. - Dans Afficher un dialogue, remplace Texte du dialogue par le texte ci-dessous. Ne change pas l’objectif de trois lanternes.
- Lance de nouveau le test, puis arrête-le.
Bienvenue dans mon premier jeu !
Retrouve les trois lanternes puis rejoins le terminal.
Flèches : se déplacer. E : interagir. Échap : pause.Pourquoi garder mission ? C’est le nom utilisé par la règle de défaite pour retrouver ce compte à rebours. L’affichage « 4:00 » peut changer ; l’identifiant sert à relier les règles entre elles.
07 / LES INFORMATIONS DE TON JEUCréer trois variables
Stop, puis Blueprint Studio → Projet & export → Variables globales initiales. Clique trois fois sur + Ajouter une variable et reproduis ce tableau. Clique hors du champ après chaque saisie pour valider.
| Nom exact | Type | Valeur initiale à saisir | À quoi elle sert |
|---|---|---|---|
essais | number | 0 | Compter les appuis de notre exercice. |
aLaCle | boolean | false | Mémoriser une autorisation. |
nomJoueur | string | Alex | Afficher le nom du joueur. |
aLaCle et alacle sont deux noms différents. Dans Valeur initiale du booléen, écris le mot anglais false, sans guillemets. Les autres menus booléens peuvent proposer Oui / Non.Globale veut dire accessible aux comportements du projet. Initiale veut dire valeur au démarrage d’une nouvelle partie. Une variable locale, que tu verras plus tard, appartient à une exécution particulière. Ces trois variables servent à l’exercice ; la collecte de la mission conserve son propre objectif.
08 / COPIER PUIS COMPRENDREUne touche qui change les variables
On va programmer : quand j’appuie sur K → ajouter 1 à essais → mettre aLaCle à vrai → afficher nomJoueur.
Chemin guidé à reproduire
- Dans Blueprint, sélectionne Explorateur, puis clique sur + Nouveau déclencheur. Garde ses autres comportements.
- Dans Nom du comportement, écris
Exercice K. Choisis Événement → À l’appui d’une touche, Touche → k, Une seule fois → Non. - La première instruction affiche « Bienvenue ! ». Change son type en Modifier une variable. Mets Nom de variable → essais et Valeur → 1. La source reste Valeur number.
- Clique sur + Ajouter une instruction. Choisis Définir une variable, mets Nom de variable → aLaCle, puis Valeur → Oui. Si le panneau ne montre pas encore Oui/Non, valide le nom puis rouvre ce comportement.
- Ajoute une dernière instruction Afficher un message. Dans Valeur · source, choisis Variable globale, puis dans Valeur · donnée, choisis nomJoueur : string.
- Lance Play, ferme le dialogue, clique dans le jeu, puis appuie sur K. Ouvre Blueprint et ⌁ Débogage pour regarder les variables. Relâche puis appuie de nouveau sur K pour un autre essai.
essais passe à 1, puis 2 ; aLaCle devient true ; le message affiche Alex. Au prochain nouveau Play, les valeurs repartent de celles du tableau.Version à importer si je bloque sur les menus
Télécharge ce comportement, sélectionne Explorateur, puis ▦ Bibliothèque → ↑ Importer un comportement. Choisis le JSON téléchargé. L’import ajoute un comportement : ne l’importe pas en plus d’une version « Exercice K » déjà active, sinon K déclenchera les deux. Les trois variables de l’étape 07 doivent déjà exister.
09 / FAIRE PRENDRE UNE DÉCISION AU JEUSi j’ai la clé, alors… sinon…
Ajoute un autre déclencheur sur Explorateur, nommé Exercice L : À l’appui d’une touche, touche l, Une seule fois → Non. Dans la première instruction, choisis Si / Sinon.
- Dans la condition de ce Si/Sinon, choisis Variable globale, Identifiant → aLaCle, Comparaison → ==, Valeur → Oui. Laisse Inverser le résultat → Non.
- Dans le chemin Alors, ajoute Afficher un message avec
Clé reconnue : accès autorisé. - Dans le chemin Sinon, ajoute le message
Pas encore de clé : appuie d'abord sur K. - Teste dans une nouvelle partie : L, puis K, puis L.
| Signe | À lire | Exemple |
|---|---|---|
== | est égal à | aLaCle == true |
!= | est différent de | essais != 0 |
>= | est supérieur ou égal à | essais >= 3 |
< | est inférieur à | temps < 10 |
ET exige que toutes les conditions soient vraies ; OU en exige au moins une. Avec notre condition unique, garde le réglage par défaut.
Importer la version de secours
Même méthode : Explorateur → Bibliothèque → Importer un comportement. Garde une seule version active de l’exercice L.
10 / REFAIRE UNE MÉCANIQUE DU JEUReconstruire la collecte d’une lanterne
Tu vas remplacer seulement le comportement de Lanterne 1. Conserve Lanterne 2, Lanterne 3 et le terminal. Exporte une copie du projet avant l’exercice si tu veux garder ton état précédent.
- Stop → Blueprint → Lanterne 1 → ☷ Instructions. Observe les actions existantes. Si nécessaire, convertis le graphe en liste modifiable.
- Retire le comportement de Lanterne 1 avec Supprimer ce comportement, puis clique sur + Nouveau déclencheur. Ne supprime pas l’objet dans la Hiérarchie.
- Nom :
Ma collecte. Événement : À l’interaction. Touche :e. Rayon de la zone :105. Une seule fois : Oui. - Remplace l’instruction de message par Donner un objet : identifiant
lantern, quantité1, cible Le joueur. - Ajoute Faire progresser un objectif : identifiant
lanterns, valeur1. - Ajoute Modifier le score, valeur
100. - Ajoute Afficher un message, valeur
Ma lanterne fonctionne !. - Teste une nouvelle partie. Approche Lanterne 1 et appuie sur E, puis une seconde fois. Termine la collecte des deux autres et rejoins le terminal.
lantern désigne l’objet d’inventaire ; lanterns désigne l’objectif. Ce sont deux identifiants distincts. « Une seule fois → Oui » empêche de gagner plusieurs fois les points de la même lanterne.Reconstruire en important le fichier
Après avoir retiré l’ancien comportement de Lanterne 1, importe celui-ci depuis sa Bibliothèque. Il ne faut pas conserver deux collectes actives sur le même objet.
11 / VÉRIFIER ET CONSERVERUne petite liste de tests
Teste ces cas après tes modifications. Une case cochée signifie que tu as réellement essayé, pas seulement que le texte semble correct.
| Action de test | Résultat attendu |
|---|---|
| Nouvelle partie | Le dialogue apparaît, l’objectif est à 0/3, le temps repart près de 4:00. |
| L, puis K, puis L | Refus, changement des variables, puis autorisation. |
| E deux fois à la même lanterne | Une seule progression pour cet objet. |
| Terminal avant les trois collectes | Un message demande de récupérer les lanternes. |
| Terminal après 3/3 | Mission accomplie. |
| Échap, attendre, reprendre | Le jeu et son compte à rebours ont été figés pendant la pause. |
| Compte à rebours à 10 secondes, nouvelle partie, attendre | Défaite au terme du temps. Stop, puis remettre 240 pour la version finale. |
| F5 après une collecte, autre collecte, F9 | Retour à la progression sauvegardée dans cette mission. |
Trois sauvegardes différentes
- Enregistrer / Ctrl+S : conserve ton projet dans le Hub du navigateur.
- Export JSON du projet : une copie à garder dans ton dossier. Dans la barre, déplie ☷ Plus si nécessaire, puis clique sur ↓ Export JSON.
- F5 / F9 pendant cette mission : sauvegarde / recharge la partie jouée. Cela ne remplace pas la copie du projet pour continuer à le créer.
12 / PARTAGER UN VRAI RÉSULTATExporter et faire tester ton jeu
- Stop → Blueprint Studio → Projet & export. Dans Titre du jeu, écris le titre que les joueurs verront.
- Dans Scène de démarrage, choisis Mission · Trois lanternes. La scène ouverte dans l’éditeur et celle du jeu exporté peuvent être différentes.
- Lis les diagnostics. Corrige toute erreur bloquante, puis clique sur ↓ Exporter le jeu Web (.zip).
- Garde le ZIP dans ton dossier. Sous Windows, clic droit → Extraire tout. Le fichier
index.htmldoit se trouver dans le dossier décompressé. - Pour le test local ci-dessous, installe Python depuis son site officiel si tu ne l’as pas. Dans l’Explorateur Windows, ouvre le dossier qui contient
index.html, clique dans la barre d’adresse, saisiscmdet appuie sur Entrée. - Dans ce terminal, colle la commande puis appuie sur Entrée. Ouvre ensuite http://localhost:8000 sur le même ordinateur. Garde le terminal ouvert ; Ctrl+C arrête le serveur.
py -m http.server 8000 --bind 127.0.0.1Sur macOS / Linux, utilise python3 -m http.server 8000 --bind 127.0.0.1. Si py n’est pas reconnu sous Windows mais Python est installé, essaie python à la place de py. Pour obtenir Python : python.org.
Pour quelqu’un sur un autre ordinateur, localhost ne donne pas accès à ton PC. Partage le ZIP avec les mêmes instructions, ou publie le contenu extrait sur un hébergement de site statique pour obtenir un lien Web. La publication et la création du compte d’hébergement constituent une étape séparée. WarLike produit ici un jeu Web expérimental ; les scripts C# locaux ne sont pas compilés dans cet export.
Message à copier pour ton premier test
Salut ! J’ai créé mon premier petit jeu avec WarLike Engine.
Le but : récupérer trois lanternes et rejoindre le terminal.
Flèches : déplacement. E : interaction. Échap : pause.
Peux-tu essayer et me dire à quel moment tu bloques ?
Une capture et les étapes du problème m’aideront beaucoup.Ça ne fait pas ce que j’attendais
Je ne peux pas modifier un champ
Arrête Play. Vérifie aussi si le comportement possède un graphe : dans Instructions, « Convertir en liste modifiable » permet de travailler avec la liste de cet exercice.
Le message affiche « nomJoueur » au lieu de « Alex »
Tu as saisi du texte constant. Pour lire le contenu de la variable, choisis Valeur · source → Variable globale, puis Valeur · donnée → nomJoueur : string.
Le booléen ne devient pas vrai
Vérifie le type boolean et le nom exact aLaCle. Dans la valeur initiale, true/false sont en anglais, sans guillemets. Dans l’action, Oui correspond à true et Non à false. Teste une nouvelle partie et regarde Débogage.
La lanterne compte deux fois
Vérifie « Une seule fois → Oui » et la liste des comportements de cet objet. Un import ajoute une règle : si l’ancienne et la nouvelle sont actives, elles peuvent toutes les deux se déclencher.
Il manque un objectif ou le terminal ne donne pas la victoire
Le démarrage de l’Explorateur doit créer l’objectif lanterns, quantité 3. Chaque lanterne doit augmenter cet identifiant de 1. Le terminal vérifie ce même objectif. Une faute de frappe peut relier la collecte à un autre nom.
Le ZIP ou le JSON ne s’ouvre pas comme un jeu
Le JSON est une sauvegarde de projet à importer dans le moteur. Le ZIP doit être extrait, puis servi en HTTP. Ne double-clique pas simplement sur son index.html : le chargement des modules et des ressources peut être bloqué en ouverture locale.
Le serveur indique que le port est déjà utilisé
Remplace 8000 par 8001 dans la commande et ouvre http://localhost:8001. Si le terminal indique un autre dossier, arrête le serveur et rouvre cmd depuis le dossier du jeu extrait.
Mon projet a disparu après un changement de navigateur
Le Hub conserve les projets dans le navigateur utilisé. Reviens dans ce navigateur ou importe ton fichier JSON de sauvegarde.
Tu as maintenant une base
Tu as manipulé trois types de données, déclenché une règle, testé une condition, reconstruit une collecte et préparé un export. Pour continuer, garde une copie du projet et choisis une seule évolution : déplacer les lanternes, changer les textes, ajouter un son ou refaire un petit niveau.
Le prochain sujet est la fonction : un groupe d’instructions que plusieurs objets peuvent appeler. Par exemple « Donner des points » reçoit une quantité en paramètre, puis ajoute ces points au score. Tu retrouveras ce sujet dans le guide Blueprint.