5. Intégrer et déplacer votre vaisseau

Dans ce guide, nous allons apprendre à placer votre vaisseau dans la room et à lui donner vie grâce aux bases du Game Maker Language (GML).

Résumé des notions clés#

  • Placement dans la Room : Utilisez l’onglet “Object” pour sélectionner votre vaisseau et le placer dans votre niveau. L’utilisation de la grille (Grid) est essentielle pour aligner précisément vos éléments.
  • Le concept Événement/Action : La logique de Game Maker repose sur ce duo. Un événement (ex: appui sur une touche) déclenche une action spécifique.
  • Utilisation du GML (Game Maker Language) : Plutôt que le Drag & Drop, nous utilisons ici l’éditeur de code pour une meilleure flexibilité.
  • Variables intégrées : Game Maker gère nativement les coordonnées x et y de vos objets, vous évitant de les déclarer manuellement.
  • Système de coordonnées : Dans Game Maker, l’origine (0,0) se situe en haut à gauche. Pour monter, on soustrait une valeur à y ; pour descendre, on l’additionne.
  • Syntaxe condensée : Apprenez à utiliser les opérateurs d’affectation composée comme y -= 5 ou y += 5 pour un code plus propre et rapide.
  • Commentaires : Utilisez // pour des notes personnelles et /// pour nommer vos blocs de code dans l’interface de l’objet.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes de Game Maker aient évolué, les fondamentaux abordés ici restent le socle de tout projet :

5. Munitions, Rechargement et HUD Statique

Dans ce cinquième épisode de notre série sur Construct 2, nous allons approfondir la gestion de l’interface utilisateur et des mécaniques de jeu essentielles, en nous concentrant sur les munitions et le rechargement.

Résumé des notions clés abordées :#

  • Gestion du HUD Statique avec Parallax (0,0)
    • Apprentissage de la propriété Parallax pour les calques (Layers) dans Construct 2.
    • Configuration du calque HUD (Heads-Up Display) avec une valeur de parallax de 0,0 pour s’assurer que les éléments d’interface (vie, munitions) restent fixes à l’écran, indépendamment du défilement de la caméra.
  • Affichage des Munitions
    • Création d’un objet Text sur le calque HUD pour afficher le nombre de munitions restantes.
    • Personnalisation du texte (police, taille, couleur, position).
  • Variables d’Instance pour les Munitions
    • Pour le Joueur (Marine) :
      • MaxMun : Variable d’instance pour définir la capacité maximale de munitions que le joueur peut porter (ex: 6 pour un revolver).
      • Munition : Variable d’instance pour suivre le nombre actuel de munitions du joueur.
    • Pour les Chargeurs (Charger) :
      • Charge : Variable d’instance pour définir la quantité de munitions qu’un chargeur (pickup) fournit.
  • Initialisation des Munitions au Démarrage du Niveau
    • Utilisation de l’événement système On Start Of Layout pour initialiser la variable Munition du joueur à la valeur de MaxMun. Cela assure que le joueur commence chaque niveau avec un chargeur plein.
  • Mise à Jour de l’Affichage des Munitions
    • Dans l’événement système Every Tick (à chaque image du jeu), mise à jour de l’objet Text des munitions pour qu’il affiche la valeur actuelle de la variable Munition du joueur.
  • Mécanique de Tir et Consommation de Munitions
    • Modification de l’événement Mouse - On Left Button Clicked (lorsque le joueur tire).
    • Condition : Ajout d’une condition Marine.Munition > 0 pour s’assurer que le joueur ne peut tirer que s’il a des munitions.
    • Action : Soustraire 1 à la variable Munition du joueur après chaque tir.
  • Ramassage des Chargeurs (Pickups)
    • Création d’un objet Sprite pour représenter un chargeur de munitions sur le sol.
    • Événement : Marine - Is Overlapping another object (Charger) (lorsque le joueur entre en collision avec un chargeur).
    • Condition Cruciale : Ajout d’une condition pour éviter de recharger au-delà de la capacité maximale : Marine.MaxMun >= Marine.Munition + Charger.Charge. Cela vérifie si l’ajout des munitions du chargeur ne dépasse pas la capacité maximale du joueur.
    • Actions :
      • Ajouter la valeur de Charger.Charge à la variable Munition du joueur.
      • Détruire l’objet Charger pour le faire disparaître du niveau.

Ce qui reste d’actualité aujourd’hui#

Bien que ce tutoriel utilise Construct 2, les concepts abordés sont des piliers fondamentaux du développement de jeux vidéo et restent entièrement pertinents, quel que soit le moteur ou le langage utilisé :

6. Exporter et installer son premier mod Minecraft

Dans cet épisode, nous abordons l’étape cruciale de la création de contenu : le passage du projet à la réalité. Une fois vos blocs et items créés dans MCreator, il est temps de les compiler pour pouvoir les tester en jeu ou les partager avec vos amis. Nous verrons comment préparer votre environnement avec Forge et exporter votre travail proprement.

Résumé des étapes clés#

  • Préparation de l’environnement : Installation de l’API Forge via des outils simplifiés (comme l’était autrefois PiPex) pour créer un profil dédié dans le Launcher Minecraft.
  • Nettoyage : Suppression des anciens mods de test dans le dossier .minecraft/mods pour éviter les conflits.
  • Exportation dans MCreator : Utilisation de la fonction “Export to Zip File”.
  • Configuration du mod : Choix du nom, de la version (ex: 0.1), de la description et de l’icône du mod.
  • Sélection des éléments : Filtrage des éléments à inclure (exclure les tests inutiles comme “The French Baguette”).
  • Compilation : Lancement de la recompilation et récupération du fichier .zip final.
  • Installation finale : Déplacement du fichier dans le dossier mods et vérification dans le menu du jeu.

Ce qui reste d’actualité aujourd’hui#

Bien que les outils comme PiPex soient obsolètes et que les versions de Minecraft aient évolué, les principes fondamentaux du modding restent les mêmes :

6. Remplacer le personnage par défaut dans Unreal Engine 4

Dans ce sixième chapitre de notre série dédiée à la création d’un jeu de plateforme, nous allons passer à l’étape cruciale de la personnalisation visuelle : remplacer le mannequin “crash test” par défaut par votre propre personnage.

Résumé des étapes clés#

  • Organisation : Création d’un dossier dédié (/Perso) pour importer proprement vos assets.
  • Importation FBX : Utilisation des options d’importation (Import Mesh et Import Skeletal) pour garantir que le modèle 3D possède un squelette fonctionnel.
  • Configuration du Squelette : Association du squelette au UE4 Mannequin Skeleton pour assurer la compatibilité avec les animations existantes.
  • Gestion des Matériels : Importation automatique des textures (Base Color, Normal Map, Specular) pour un rendu visuel complet.
  • Intégration : Remplacement du mesh dans le Blueprint FirstPersonCharacter via le Viewport.
  • Retargeting d’animation : Ajustement des paramètres de translation du squelette (Skeleton vs Animation Relative) pour corriger la posture du personnage et éviter les déformations lors des mouvements.

Ce qui reste d’actualité aujourd’hui#

Bien que cet article se concentre sur Unreal Engine 4, les principes fondamentaux abordés restent parfaitement valables pour Unreal Engine 5 :

5. Création d'un ennemi dynamique et aménagement de niveau

Note : Cet article est une archive pédagogique du cinquième épisode de ma série sur la création d’un jeu de plateforme avec Construct 2.

Points clés abordés#

  • Amélioration du Level Design : Conseils pour rendre vos niveaux plus visuels et attrayants en modifiant la disposition des éléments de décor.
  • IA d’ennemi basique : * Mise en place d’un ennemi qui se déplace automatiquement de gauche à droite.
    • Utilisation de la logique de retournement automatique pour simuler une patrouille.
  • Organisation du code : * Introduction aux Groupes d’événements : création d’un groupe dédié (AnimJackEnemy) pour isoler la logique de l’ennemi.
    • Activation/Désactivation des groupes au démarrage pour optimiser la lisibilité et la maintenance du projet.
  • Gestion des bugs de collision : Identification et résolution de problèmes liés aux chutes non désirées à travers les plateformes (complémentaire au tutoriel de debug).

Conseils d’organisation pour vos feuilles d’événements#

À mesure que votre projet gagne en complexité, la structure de votre feuille d’événements devient cruciale :

6. Créer des falaises et des cascades

Apprenez à donner du relief à vos environnements dans Intersect Engine en maîtrisant la création de cartes connectées, de falaises et d’effets de cascades dynamiques pour vos zones de jeu.

Notions clés abordées#

  • Gestion des cartes connectées : Utilisation de la Map List et du Map Grid pour lier deux zones adjacentes et assurer une continuité fluide dans votre monde.
  • Utilisation des calques (Layers) : Maîtrise des calques Ground, Mask et Fringe pour superposer les éléments de décor et gérer les priorités d’affichage.
  • Création de reliefs : Utilisation des Tile Types (Montagnes et Cliffs) pour structurer le terrain et créer des dénivelés visuels.
  • Effets animés : Intégration de tuiles Animated pour l’eau et utilisation du type Waterfall pour créer des cascades.
  • Astuces de collision : Utilisation du calque Fringe pour permettre au joueur de passer derrière des éléments de décor, comme une cascade, ajoutant ainsi de la profondeur au gameplay.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Intersect Engine évoluent, les fondamentaux du mapping restent inchangés. La gestion des calques (Ground/Mask/Fringe) demeure la pierre angulaire pour créer des environnements immersifs. La technique consistant à lier des cartes via le Map Grid est toujours la méthode standard pour construire des mondes ouverts sans surcharger la mémoire du client. Enfin, l’utilisation des tuiles animées et des propriétés de collision reste une compétence indispensable pour tout développeur souhaitant créer des zones interactives et vivantes dans son MMORPG.

6. Gérer la Vie, Créer un Menu et Optimiser son Jeu

Dans ce sixième épisode de notre série dédiée à Construct 2, nous allons approfondir la gestion des packs de vie, structurer notre jeu avec un menu d’accueil et peaufiner les performances et l’organisation de notre projet.

Résumé des notions clés#

  • Gestion des Packs de Vie (Health Packs)
    • Création du sprite “Elpack” (Health Pack) et ajout d’une variable d’instance pv (points de vie) pour définir la quantité de soin.
    • Ajout d’une variable d’instance MaxV (vie maximale) au joueur pour définir sa capacité de vie maximale.
    • Initialisation de la vie du joueur à MaxV au démarrage du layout pour garantir une vie pleine au début.
    • Implémentation de deux logiques de ramassage pour les packs de vie :
      • Ajout des pv du pack à la vie du joueur si cela ne dépasse pas MaxV.
      • Réinitialisation de la vie du joueur à MaxV si le ramassage du pack le ferait dépasser, évitant ainsi de soigner au-delà du maximum.
  • Création d’un Menu Principal
    • Ajout d’un nouveau layout “Menu” et d’une feuille d’événements dédiée “ES_Menu” pour gérer la logique du menu.
    • Intégration d’un bouton “Jouer” sur le menu qui, une fois cliqué, redirige le joueur vers le “Level 1” (le jeu).
    • Modification de l’événement de mort du joueur pour qu’il revienne au menu principal plutôt que de simplement disparaître.
  • Optimisation et Améliorations du Jeu
    • Nettoyage des balles: Ajout d’un événement pour détruire automatiquement les balles qui sortent du layout, économisant ainsi des ressources.
    • Point de sortie du tir: Création d’un “Image Point” nommé “gun” sur le sprite du joueur, permettant aux balles de partir de l’extrémité de l’arme pour un rendu plus réaliste.
    • Organisation du code: Utilisation de groupes d’événements (“System”, “Marine”, “Balles”) pour structurer et rendre plus lisible la feuille d’événements.
    • Exportation du jeu: Explication du processus d’exportation du projet en “HTML5 Website” et des étapes pour le déployer sur un hébergement web.
  • Devoir Maison
    • Appliquer la logique de “vie maximale” aux munitions : faire en sorte que ramasser un chargeur ne permette pas de dépasser la capacité maximale du chargeur du joueur.

Ce qui reste d’actualité aujourd’hui#

Bien que Construct 2 ait évolué vers Construct 3, les principes fondamentaux abordés dans ce tutoriel restent des piliers du développement de jeux vidéo et sont applicables à la plupart des moteurs de jeu modernes :

6. Limiter les déplacements de votre vaisseau

Apprenez à restreindre les déplacements de votre vaisseau à l’intérieur de votre zone de jeu pour éviter qu’il ne disparaisse hors de l’écran grâce à la fonction clamp.

Résumé des notions clés#

  • L’événement Step : Comprendre que cet événement s’exécute à chaque image (60 fois par seconde selon la vitesse de votre room), ce qui est idéal pour les vérifications constantes de position.
  • La fonction clamp() : Utilisation de cette fonction intégrée à Game Maker pour contraindre une valeur entre un minimum et un maximum.
  • Gestion de l’origine du sprite : Importance de prendre en compte le point d’origine de votre sprite (souvent au centre) pour calculer correctement les limites de collision avec les bords de l’écran.
  • Calcul des marges : Ajustement des valeurs de clamp en fonction de la taille réelle de votre objet (hauteur/largeur) pour que le vaisseau reste entièrement visible à l’écran.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions de Game Maker aient évolué, les principes fondamentaux abordés ici restent des piliers du développement 2D :