WARLIKE ENGINE / ATELIER 01 / AUCUN PRÉREQUIS

Ton premier jeu.
En partant de zéro.

Tu ne sais pas ce qu’est une variable, un boolean ou une string ? On va créer une petite mission 2D ensemble, en reproduisant les réglages, puis en comprenant ce qu’ils font.

Commencer le parcoursOuvrir WarLike Engine ↗

12 étapes · à suivre à ton rythme · guide autonome à garder sur ton ordinateur
Parcours pour le moteur de jeu WarLike Engine · interface vérifiée le 29 octobre 2026

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.

  1. Ouvre ce guide dans un onglet et le moteur dans un autre. Sur un grand écran, place-les côte à côte.
  2. Garde un dossier MonPremierJeu sur ton ordinateur : il accueillera les sauvegardes et l’export.
  3. Lis une étape, reproduis-la, vérifie son résultat, puis coche « Étape terminée ».
  4. Avant chaque expérience, arrête Play : les réglages du jeu en cours ne remplacent pas les réglages de départ.
La méthode : copier → tester → expliquer avec tes mots → changer une seule chose → retester. Tu n’as pas à tout retenir dès la première lecture.

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 direDans notre jeu
ProjetLe dossier logique de tout ton jeu.Ses scènes, objets, règles et réglages.
ScèneUn espace de jeu ou un niveau.La mission avec les trois lanternes.
Objet / GameObjectUn élément placé dans une scène.Le personnage, une lanterne, le terminal.
Asset / ressourceUn fichier utilisé par le jeu.Une image, un son ou un modèle 3D.
ComposantUn rôle ajouté à un objet.Affichage, déplacement, inventaire, collision.
VariableUne information qui porte un nom.essais garde un nombre.
ValeurLe contenu actuel de cette information.essais contient 0, puis 1.
TypeLa sorte d’information autorisée.Nombre, vrai/faux, texte.
Événement / triggerCe qui déclenche une règle.Appuyer sur E près d’une lanterne.
ConditionUne question avec une réponse vraie ou fausse.Les trois lanternes sont-elles récupérées ?
Action / instructionCe que le jeu doit faire.Ajouter un point de progression.
Blueprint / comportementUne règle construite avec ces éléments.Quand E est pressé → collecter la lanterne.
Play / StopTester le jeu / revenir à son édition.Jouer la mission, puis la modifier.
Build / exportLe paquet qui permet de distribuer le jeu.Une archive ZIP pour navigateur.
Bug / déboguerUn résultat inattendu / chercher sa cause.Un objectif reste à 2/3 : vérifier la dernière collecte.
Dans l’éditeur, Hiérarchie liste les objets, Inspecteur règle l’objet sélectionné, Scène permet de le placer et Project / Assets contient les ressources.

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.

aLaCle = false → porte fermée

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.

Bonjour Alex !

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 collectes × 100 = 300 points
À ne pas confondre : 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

  1. Dans WarLike Hub, clique sur + Nouveau projet. Si tu vois directement l’éditeur, clique d’abord sur ▦ Hub.
  2. Dans Nom du projet, écris Mon premier jeu.
  3. Dans Type de moteur, choisis Projet 2D.
  4. Dans Type de jeu compatible avec le projet, choisis Projet vierge.
  5. Clique sur + Créer le projet.
Résultat attendu : l’éditeur affiche le nom du projet et un objet Player. Ce personnage est le point de départ du projet vierge.

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

  1. Ouvre ⬡ Blueprint Studio dans la barre du haut.
  2. Choisis l’onglet ◇ Projet & export.
  3. 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.
  4. Dans la colonne de gauche, retrouve Explorateur, Lanterne 1, Lanterne 2, Lanterne 3 et Terminal d’extraction.
  5. Reviens dans Projet & export, puis clique sur ▶ Tester dans l’éditeur.
  6. Lis le dialogue puis clique sur Continuer →. Clique ensuite dans la vue de jeu pour lui donner le clavier.
  7. 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.
Résultat attendu : l’objectif avance de 0/3 à 3/3, puis le jeu affiche Mission accomplie. Échap ouvre la pause. Stop te ramène à l’édition.
Les touches n’agissent pas sur le personnage quand tu écris dans un champ ou qu’un dialogue attend une réponse. Clique sur Continuer, ferme le panneau qui gêne, puis clique dans le jeu. Tu peux d’abord apprendre avec les flèches, quel que soit ton clavier.

06 / UNE MODIFICATION VISIBLETon texte et ton compte à rebours

  1. Arrête Play. Ouvre Blueprint Studio, sélectionne Explorateur, puis le comportement Au démarrage.
  2. Choisis ☷ Instructions. Si le panneau annonce un graphe, clique sur Convertir en liste modifiable pour cet exercice.
  3. Dans l’action Démarrer un compte à rebours, remplace Durée (secondes) par 240. Garde l’identifiant mission.
  4. Dans Afficher un dialogue, remplace Texte du dialogue par le texte ci-dessous. Ne change pas l’objectif de trois lanternes.
  5. 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.
Résultat attendu : ton nouveau dialogue apparaît et le compte à rebours repart près de 4:00. En testant, les secondes continuent naturellement de s’écouler.

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 exactTypeValeur initiale à saisirÀ quoi elle sert
essaisnumber0Compter les appuis de notre exercice.
aLaClebooleanfalseMémoriser une autorisation.
nomJoueurstringAlexAfficher le nom du joueur.
Respecte les majuscules : 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

  1. Dans Blueprint, sélectionne Explorateur, puis clique sur + Nouveau déclencheur. Garde ses autres comportements.
  2. Dans Nom du comportement, écris Exercice K. Choisis Événement → À l’appui d’une touche, Touche → k, Une seule fois → Non.
  3. 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.
  4. 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.
  5. Ajoute une dernière instruction Afficher un message. Dans Valeur · source, choisis Variable globale, puis dans Valeur · donnée, choisis nomJoueur : string.
  6. 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.
Résultat attendu : 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.

La différence : définir une variable remplace sa valeur ; modifier un nombre ajoute une quantité. Définir essais à 1 le laisserait à 1 à chaque appui. Ajouter 1 fait 1, 2, 3…

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.

  1. Dans la condition de ce Si/Sinon, choisis Variable globale, Identifiant → aLaCle, Comparaison → ==, Valeur → Oui. Laisse Inverser le résultat → Non.
  2. Dans le chemin Alors, ajoute Afficher un message avec Clé reconnue : accès autorisé.
  3. Dans le chemin Sinon, ajoute le message Pas encore de clé : appuie d'abord sur K.
  4. Teste dans une nouvelle partie : L, puis K, puis L.
Résultat attendu : le premier L refuse l’accès. K met le booléen à vrai. Le second L autorise l’accès. Ce test affiche des messages ; il ne crée pas une porte physique.
SigneÀ lireExemple
==est égal àaLaCle == true
!=est différent deessais != 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.

  1. Stop → Blueprint → Lanterne 1 → ☷ Instructions. Observe les actions existantes. Si nécessaire, convertis le graphe en liste modifiable.
  2. 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.
  3. Nom : Ma collecte. Événement : À l’interaction. Touche : e. Rayon de la zone : 105. Une seule fois : Oui.
  4. Remplace l’instruction de message par Donner un objet : identifiant lantern, quantité 1, cible Le joueur.
  5. Ajoute Faire progresser un objectif : identifiant lanterns, valeur 1.
  6. Ajoute Modifier le score, valeur 100.
  7. Ajoute Afficher un message, valeur Ma lanterne fonctionne !.
  8. 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.
Résultat attendu : la première lanterne ajoute une seule progression et 100 points. La répéter ne doit pas faire 2/3. Le terminal refuse avant 3/3 et donne la victoire après 3/3.
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 testRésultat attendu
Nouvelle partieLe dialogue apparaît, l’objectif est à 0/3, le temps repart près de 4:00.
L, puis K, puis LRefus, changement des variables, puis autorisation.
E deux fois à la même lanterneUne seule progression pour cet objet.
Terminal avant les trois collectesUn message demande de récupérer les lanternes.
Terminal après 3/3Mission accomplie.
Échap, attendre, reprendreLe jeu et son compte à rebours ont été figés pendant la pause.
Compte à rebours à 10 secondes, nouvelle partie, attendreDéfaite au terme du temps. Stop, puis remettre 240 pour la version finale.
F5 après une collecte, autre collecte, F9Retour à 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.
Le stockage du Hub est lié à ton navigateur. Garde le JSON sur ton ordinateur avant de changer de navigateur ou d’effacer les données du site. Les coches de ce guide ne sauvegardent pas le jeu.

12 / PARTAGER UN VRAI RÉSULTATExporter et faire tester ton jeu

  1. Stop → Blueprint Studio → Projet & export. Dans Titre du jeu, écris le titre que les joueurs verront.
  2. 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.
  3. Lis les diagnostics. Corrige toute erreur bloquante, puis clique sur ↓ Exporter le jeu Web (.zip).
  4. Garde le ZIP dans ton dossier. Sous Windows, clic droit → Extraire tout. Le fichier index.html doit se trouver dans le dossier décompressé.
  5. 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, saisis cmd et appuie sur Entrée.
  6. 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.1

Sur 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.

Résultat attendu : ton jeu s’ouvre avec son menu, puis la mission, sans les panneaux de l’éditeur. Refais le test de victoire et de pause dans cet export.

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.

Pour demander de l’aide : indique l’étape du guide, l’objet sélectionné, le nom du comportement, le résultat attendu et le résultat obtenu. Une capture de l’erreur exacte est plus utile que « ça ne marche pas ».

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.

Documentation du moteur

La progression de lecture reste sur cet appareil lorsque le navigateur l’autorise. Elle n’envoie aucune donnée.