◈ WARLIKE STUDIO • DOCUMENTATION

Guide officiel du moteur 2D / 3D

Version 3.0 Beta.7.3 — créer un projet, construire une scène, programmer sa logique et importer de vrais modèles GLB.

1. Démarrer avec WarLike Hub

À l’ouverture, le WarLike Hub permet de créer un projet nommé en choisissant 2D ou 3D. Les deux modes ont des bibliothèques et des simulations différentes. Pour ouvrir un projet existant, clique sur Ouvrir dans la liste des projets récents.

  1. Saisis un nom descriptif, par exemple Fracture Line.
  2. Choisis Projet 2D pour les sprites, RPG, RTS et jeux d’action 2D, ou Projet 3D pour les volumes et modèles GLB.
  3. Clique sur Créer le projet.
  4. Retrouve le Hub avec le bouton ▦ Hub en haut de l’éditeur.

Tu peux choisir une couleur pour chaque projet. Les couleurs personnalisées sont enregistrées dans ses métadonnées locales. L’option Récupérer le projet précédent peut récupérer une ancienne sauvegarde locale.

Le Hub n’est pas encore un stockage en ligne de projets : ses données sont enregistrées dans le navigateur. La suppression des données du site peut les effacer.

2. Découvrir l’interface

PanneauUtilisation
HierarchyListe des objets de la scène, sélection et recherche.
SceneVue d’édition de la scène 2D ou 3D.
Game / PlaySimulation interactive pour tester les comportements.
InspectorTransform, matériaux, couleurs, éclairage, audio et composants logiques.
Project / AssetsCatalogue d’assets 2D, prefabs géométriques et modèles GLB 3D.
Console / HistoryMessages et historique d’édition.

Sélectionne un objet dans la Hierarchy ou en cliquant dans Scene. L’Inspector affiche alors ses composants modifiables.

3. Créer une scène 2D

Le moteur 2D inclut des objets, personnages, animations, collision AABB simple, véhicules, interactions, dialogues et démos spécialisées. Utilise les menus Assets ou Project / Assets pour ajouter des éléments.

Les démos permettent d’explorer des cas concrets : combat, conduite, RPG, logique visuelle, Ninja/Zombies et bâtiment/RTS. Certaines fonctionnalités restent expérimentales.

4. Créer une scène 3D

Le moteur 3D utilise un rendu WebGL indépendant. Il possède une caméra orbitale, des primitives géométriques, des matériaux simples, des sources lumineuses et des sources audio spatialisées expérimentales.

L’Inspector du projet 3D donne accès aux paramètres de couleur, rugosité et métal. Les démos disponibles incluent Ville, Nature et Garage.

Les prefabs procéduraux (maisons, voitures et personnages construits avec des volumes) sont stylisés. Pour afficher de vrais polygones détaillés, utilise un modèle GLB comme décrit ci-dessous.

5. Importer de vrais prefabs 3D (.glb)

Modèles intégrés de démonstration

Dans un projet 3D, ouvre Project / Assets et cherche les exemples tels que Cesium Man, Fox, Duck, Lantern, BoomBox, Toy Car ou Antique Camera. Ils proviennent des exemples Khronos glTF et sont chargés à la demande.

Bibliothèques gratuites de vrais modèles 3D

Dans Project / Assets en mode 3D, ouvre 🌐 Bibliothèques 3D gratuites. Les liens pointent vers les sites officiels. Télécharge le modèle depuis sa page, vérifie la licence de l'asset, puis importe son fichier .glb dans le moteur.

SourceSpécialitéLicence
Poly HavenPhotogrammétrie, props réalistes, décorsCC0
QuaterniusPersonnages, véhicules, armes et packsCC0
KenneyAssets de jeux et kits modulairesCC0
CinevvaCatalogue de modèles GLBVérifier la fiche
KhronosModèles GLB de référenceVariable selon modèle

Si le téléchargement fournit un .fbx ou un .obj, ouvre-le dans Blender, puis exporte-le au format glTF 2.0 (.glb). Les textures et animations complexes peuvent encore être partiellement prises en charge par WarLike.

Importer ton propre personnage, arme ou véhicule

  1. Prépare un fichier .glb glTF 2.0, idéalement exporté depuis Blender.
  2. Dans Project / Assets, clique sur Importer un modèle GLB.
  3. Choisis ton fichier (limite actuelle de 25 Mo).
  4. Sélectionne la catégorie Characters, Weapons, Vehicles ou Props.
  5. Ajoute le prefab à la scène par double-clic ou glisser-déposer.

La géométrie réelle du modèle est décodée en triangles puis affichée dans WebGL. Les couleurs des matériaux peuvent être simplifiées : le moteur ne prend pas encore en charge toutes les textures glTF, les animations squelettiques, les modèles compressés Draco/Meshopt ou les accessoires attachés à des os.

Important : un GLB importé depuis ton ordinateur reste en mémoire pendant la session. Le JSON de la scène mémorise sa référence, mais n’incorpore pas le fichier GLB. Après rechargement de la page, il faudra l’importer de nouveau. Les modèles en ligne nécessitent une connexion et un accès CORS autorisé par l’hébergeur.

Pour les droits d’utilisation des exemples, consulte le catalogue Khronos et les licences individuelles.

6. Visual Logic — programmation sans code

Sélectionne un objet, puis ouvre Inspector → Logic Sequences. Ajoute un composant ou choisis un exemple préconfiguré (porte verrouillée, interrupteur, événement temporisé).

ÉlémentRôle
TriggerLancer une séquence au démarrage, à l’interaction, à l’entrée/sortie d’une zone, à une touche, à un signal ou à un intervalle.
ConditionsComparer des variables globales/locales, tester une distance, combiner plusieurs conditions.
InstructionsAfficher un message, définir/modifier une variable, attendre, déplacer ou colorer un objet, envoyer un signal.
IF / ELSE IF / ELSEChoisir la première branche dont toutes les conditions sont vérifiées.

Exemple : ouvrir une porte

Trigger: Interact (E) → IF hasKey == 1 → afficher « Porte ouverte » et changer la couleur, ELSE → afficher « Porte verrouillée ».

La logique est réinitialisée lors de Play/Stop et s’exécute localement dans le mode 2D ou 3D choisi. Ce système est inspiré de l’organisation de Game Creator, mais n’en est pas une copie.

Physique 3D expérimentale — Rigidbody

Dans un projet 3D, sélectionne un objet puis ouvre Inspector → Physics 3D • Rigidbody et clique sur Add Rigidbody 3D. Tu peux régler Mass, Gravity, Bounciness, Friction, les composantes de vitesse et le mode Kinematic.

En mode Play, le composant applique une gravité, des impulsions et des collisions AABB simplifiées. Les paramètres sont inclus dans l'export/import JSON. Les personnages jouables et les agents IA restent pilotés par leurs contrôleurs dédiés.

Ce module est un prototype : il ne remplace ni PhysX, ni des contacts 3D robustes, ni un solveur de contraintes. Aucune collision précise de triangles, de pente, de joint, ni corps rigide rotatif n'est implémentée.

7. Gameplay Components : personnages, statistiques et inventaire

Sélectionne un objet dans la Hierarchy, puis ouvre Inspector → Gameplay Components. Ajoute les composants dont ton personnage a besoin. Les paramètres sont stockés avec la scène et sont inclus dans son export JSON.

ComposantRéglagesFonction actuelle
StatsmaxHealth, health, maxStamina, stamina, staminaRegenVie, endurance, dégâts, soins et régénération
Character Controller 3DwalkSpeed, sprintSpeed, jumpForce, gravity, dodgeDistance, dodgeCooldown, staminaCostDéplacement caméra-relatif, course, saut et esquive
Inventairecapacity, items, equipmentAjouter/retirer des objets et équiper une arme ou une armure
AI State Machinedetection, attackRange, attackDamage, attackCooldown, speed, patrolRadiusPatrouille, poursuite et attaque automatique

Contrôles en mode Play 3D

ToucheAction
ZQSD / WASDDéplacement
MajSprint utilisant l'endurance
EspaceSaut
CtrlEsquive directionnelle, avec coût d'endurance et cooldown
FAttaque de proximité contre une cible IA
Clic droit + souris / moletteCaméra orbitale / zoom

Le contrôleur se déplace sur le plan X/Z représenté par les coordonnées x/y des entités. La collision repose sur des rectangles simplifiés, et non sur une simulation physique rigide.

Inventaire et équipement

  1. Ajoute Inventaire à ton personnage.
  2. Saisis un ID d'objet, par exemple sword, puis clique sur + Objet.
  3. Utilise Arme pour l'équiper dans le slot weapon ou Armure pour le slot armor.
  4. L'attaque 3D utilise actuellement des valeurs simplifiées : une arme équipée donne 35 dégâts et 180 unités de portée au lieu de 15 dégâts et 110 unités sans arme.

Le rendu d'une arme GLB et le slot d'équipement restent distincts : équiper un objet ne l'attache pas automatiquement à la main du personnage. Il n'existe pas encore de système de balistique 3D, de rechargement ou de projectiles complet.

8. IA, combat et séquences de comportements

Créer un ennemi

  1. Ajoute un personnage ou un prefab dans la scène 3D.
  2. Dans l'Inspector, ajoute AI State Machine et Stats.
  3. Configure Rayon détection, Portée attaque, Vitesse, Dégâts et Cooldown.
  4. Ajoute un personnage jouable, lance Play et approche-toi de l'ennemi.

Transitions actuelles : patrol quand la cible est éloignée, chase quand elle est détectée, attack à courte portée et dead lorsque sa vie atteint zéro. L'IA utilise maintenant une recherche de chemin A* sur grille pendant la poursuite, avec recalcul périodique et évitement local de secours. Dans l'Inspector, les paramètres Navigation A*, Taille cellule A* et Recalcul chemin (s) contrôlent le système. Il ne s'agit pas encore d'un NavMesh 3D : les passages étroits, la verticalité et les obstacles dynamiques demandent davantage de travail.

Logique visuelle

Ouvre Inspector → Logic Sequences et ajoute un trigger, des conditions, puis des instructions. Le panneau Graphique des comportements montre le chemin d'exécution, ses branches IF/ELSE et les instructions dans l'ordre. C'est une prévisualisation : on édite les séquences via les formulaires de l'Inspector, et non en reliant des nœuds à la souris.

FamilleExemples
ConditionsdistanceLess, distanceGreater, healthBelow, healthAbove, hasTag, variable, localVariable, randomChance
InstructionsmoveObject, teleportObject, setHealth, addHealth, setAnimation, setBehavior, giveItem, removeItem, equipItem, damageObject, healObject, wait, emitSignal

Les instructions ciblant un autre GameObject acceptent son ID. Sans ID cible valide, elles s'appliquent à l'objet qui porte la séquence.

Quick Start — Gameplay Recipes

Pour créer plus vite, sélectionne un objet dans la Hierarchy, ouvre Inspector → Quick Start • Gameplay Recipes, choisis un modèle puis clique sur Appliquer le modèle. L'éditeur demande confirmation avant de remplacer les composants concernés.

ModèleCe qu'il configure
Player AdventurePersonnage jouable, santé, endurance, inventaire et contrôleur 3D
Enemy GuardIA de patrouille, détection, poursuite et attaque
Enemy BossEnnemi renforcé, davantage de santé et de dégâts
Healing StationObjet interactif qui soigne le personnage joueur
Locked DoorPorte conditionnée par la variable globale hasKey
Loot ChestCoffre qui donne une clé au joueur une seule fois

Ces recettes accélèrent la configuration de composants. Elles ne remplacent pas une physique 3D complète, une animation de personnage ou un système de navigation à chemins calculés. Vérifie le résultat en Play.

9. Tutoriel : un garde, une arme et une porte

  1. Dans WarLike Hub, crée un Projet 3D nommé « Démo Gameplay ».
  2. Sélectionne le personnage jouable. Ajoute les composants Stats, Character Controller 3D et Inventaire.
  3. Ajoute l'objet sword à son inventaire et équipe-le comme arme.
  4. Ajoute un deuxième personnage, puis AI State Machine avec une détection de 450, une portée de 65 et une vitesse de 75.
  5. Ajoute un objet représentant une porte. Dans Logic Sequences, sélectionne l'événement interact et ajoute une instruction message « Porte activée ».
  6. Dans Graphique des comportements, examine l'ordre des nœuds.
  7. Lance Play : déplace-toi avec ZQSD, esquive avec Ctrl, attaque avec F et interagis avec E.

Les composants et leur exécution restent expérimentaux. Exécute npm test et npm run typecheck dans le projet cloné puis valide les interactions dans ton navigateur.

7. Tester avec Play / Stop

Clique sur ▶ Play pour lancer la simulation et ■ Stop pour revenir à la scène d’édition. Le moteur restaure normalement la scène d’origine à l’arrêt.

EntréeAction
ZQSD / WASDDéplacement dans les scènes compatibles.
Maj (3D)Courir avec le contrôleur 3D expérimental.
Clic droit (3D)Faire tourner la caméra.
Molette (3D)Zoom caméra.
E (2D ou logique)Interagir lorsqu’un composant le permet.

Le combat de proximité 3D est disponible en version expérimentale. La conduite 3D, les projectiles, les animations squelettiques et la physique avancée restent à développer.

8. Sauvegarde, projets et partage

Le bouton ↓ en haut du studio sauvegarde le projet local nommé. Export JSON permet d’enregistrer une scène sur ton ordinateur. Pour restaurer une scène, utilise Import JSON.

Attention : les fichiers GLB importés localement, les fichiers audio de session et autres ressources binaires ne sont actuellement pas emballés avec l’export JSON.

9. Dépannage et limites

Le Hub ne s’affiche pas

Actualise la page avec Ctrl + Maj + R. Vérifie la version affichée dans la barre supérieure et ouvre la console du navigateur avec F12 si l’initialisation échoue encore.

Un asset 3D apparaît sous forme de cube

Le cube peut être un indicateur de chargement ou d’échec du GLB. Vérifie la connexion réseau, la taille du modèle, les restrictions CORS et la console.

Mon arme 3D est visible mais inutilisable

Afficher un modèle d’arme ne crée pas automatiquement un système de tir, de rechargement, d’animation ou d’attachement aux mains. Ces composants doivent encore être développés pour la 3D.

Le modèle est déformé ou sans textures

Les transformations, matériaux, UV et animations glTF ne sont que partiellement pris en charge. Le moteur est encore en bêta.

Les fonctionnalités annoncées ici correspondent au code du projet et à ses limites connues. Leur comportement complet n’a pas encore été vérifié dans tous les navigateurs et GPU.

Pour les détails techniques : Prefabs GLB · Logic Sequences.