Dans cet épisode, nous allons aborder un aspect crucial de l’expérience utilisateur : la courbe de progression. Pour éviter que votre jeu ne devienne monotone, nous allons implémenter un système de difficulté dynamique qui s’ajuste automatiquement à chaque fin de boucle d’apparition d’ennemis (ou d’objets).
Résumé de la mise en place#
- Variable de difficulté : Création d’une variable de type
Floatdans leCharacterpour stocker le niveau de difficulté actuel. - Initialisation : Définition de la valeur par défaut à 1.0 pour éviter les erreurs de calcul (division par zéro).
- Logique du Spawner :
- Incrémentation de la difficulté à chaque fin de boucle de spawn.
- Conversion du délai d’apparition (
Delay) en une variable dynamique (SpawnTimer). - Calcul mathématique pour ajuster le rythme d’apparition en fonction de la difficulté.
- Accélération des ennemis : Multiplication de la vitesse de déplacement des objets (
BP_Etron) par la variable de difficulté pour augmenter le défi visuel et mécanique.
Ce qui reste d’actualité aujourd’hui#
Bien que les versions d’Unreal Engine aient évolué, les concepts abordés ici restent des piliers du développement de jeux :
- Modularité des variables : Stocker les données de progression sur le
Character(ou unGameInstancepour une persistance entre les niveaux) est une pratique propre qui facilite la communication entre les Blueprints. - Équilibrage mathématique : L’utilisation de divisions ou de multiplicateurs pour lisser la progression est indispensable. Ne multipliez jamais brutalement une vitesse par un entier sans tester le ressenti (le “game feel”) ; l’utilisation de flottants permet une montée en puissance beaucoup plus organique.
- Optimisation : L’utilisation de références directes (via les nœuds d’initialisation) plutôt que des
Castà répétition dans leTickou dans des boucles est une excellente habitude pour préserver les performances de votre projet. - Itération : Comme vu dans l’épisode, le réglage de la difficulté est un processus itératif. N’hésitez pas à exposer vos variables de calcul (les diviseurs) en tant que
Editablepour pouvoir les ajuster en temps réel dans l’éditeur sans avoir à recompiler le code.
© 2026 - Créé avec ❤️ sous Hugo & Relearn.