Samuel Fillion

Evo\Wave

Dans le cadre de notre projet de fin d’études en création de jeux vidéo à l’UQAT, nous avons développé un jeu en Unreal Engine, en travaillant entièrement à distance dans un contexte de pandémie.

Outils et pipeline de production :

  • Gestion de projet : Hansoft & Perforce
  • Documentation et collaboration : Notion pour la bible du projet
  • Level Design et itérations : Figma pour la conception des cartes et la présentation des idées
  • Communication : Réunions hebdomadaires sur Discord

🎮 Mon rôle : Concepteur de niveaux

Le jeu est Evo/Wave, un collectathon 3D rendant hommage à l’histoire des jeux vidéo. Il est disponible sur Steam depuis le 12 mars 2021: https://store.steampowered.com/app/1532180/EvoWave/

Présentation du Jeu

Le joueur incarne LAI-6, une intelligence artificielle chargée de restaurer un monde rétro-futuriste corrompu par Magnavex, une entité malveillante ayant ramené le monde à différentes époques vidéoludiques.

Concept unique : Chaque niveau représente une console rétro différente, et le joueur doit récupérer des composantes pour restaurer progressivement les graphismes et les mécaniques du jeu.

Utilisation de Figma pour le Level Design

Dès le début du projet, j’ai introduit Figma à l’équipe en tant qu’outil central de conception collaborative. Cet outil, que j’ai découvert lors de mon DEC en techniques d’intégration multimédia, nous a permis de travailler simultanément sur les cartes de niveaux et d’optimiser nos présentations et itérations en équipe.

Niveau 2 – Parc en style PS1/N64

Intentions et Conception

Ce niveau adopte une esthétique inspirée de la Nintendo 64, et introduit une nouvelle mécanique de gameplay :

  • Compétence débloquée : Le planage (jump + spin après une tornade aérienne).
  • Approche progressive : Initialement, le joueur ne dispose que d’un double saut.

Structure du niveau :

  1. Point de repère visuel : Le joueur repère immédiatement une grande fontaine centrale, inactive au départ.
  2. Objectif intermédiaire : Les PNJs indiquent que le courant doit être rétabli, dirigeant ainsi l’attention vers un pylône électrique, situé sur une île inaccessible sans la capacité de planage.
  3. Phase de plateforme : Une section de plateforming mène à l’acquisition du pouvoir de planage.
  4. Bouclage du level design : Avec cette nouvelle compétence, le joueur peut atteindre l’île, rétablir l’énergie, activer la fontaine et accéder à la fin du niveau.

Voici le plan à vue d’oiseau:

Paper map du niveau 2 – N64

Niveau 3 – Miami Synthwave des Années 80

Intentions et Conception

Ce niveau adopte une direction artistique néon et rétro, inspirée de la vibe synthwave des années 80.

Processus de conception :

  1. Recherche de références visuelles pour ancrer l’ambiance du niveau.
  2. Première itération de la carte, divisée en zones distinctes.
  3. Réitérations en intégrant les suggestions de l’équipe pour affiner le layout et le rythme du gameplay.

Modularité et optimisation :

Placement précis des BSPs dans Unreal en respectant des métriques strictes et une grille commune, assurant une intégration fluide des assets artistiques.

Utilisation de props modulaires pour garantir cohérence et flexibilité.

Première itération de la carte
Les différents sous-niveaux ainsi que les idées qui les composent (Boardwalk, quai et plage)
Plan finale de la carte du niveau 3

Boss Fight – Affrontement contre Magnavex

Conception des Phases du Combat

L’affrontement final contre Magnavex se compose de quatre phases, chacune introduisant de nouveaux défis pour le joueur.

Missiles à tête chercheuse

  • Mon rôle: J’ai été responsable de la programmation des missiles en Blueprints dans Unreal Engine.
  • Standardisation du code : Assurer un respect des conventions de nomenclature de l’équipe pour assurer la clarté et la maintenabilité du projet.
  • Challenge : Le joueur doit esquiver trois missiles à tête chercheuse, tout en attaquant Magnavex.

Décomposition du Blueprint :
1. Autodestruction après 5 secondes (avec un delay suivi d’un DestroyActor).

2. Gestion des collisions :

  • Si le missile touche le joueur → Application de dégâts.
  • Si le missile touche un autre objet → Explosion et destruction.
La deuxième partie du blueprint est de se détruire lors d’une collision. Je vérifie également si l’objet de la collision est le joueur. Si c’est le cas, on applique des dégâts.

3. Mouvement suiveur :

  • Utilisation de la classe projectile native d’Unreal.
  • Définition du joueur comme cible pour une trajectoire adaptative.

Réglage de la magnitude d’accélération pour ajuster la réactivité du missile aux mouvements du joueur.


4. Rotation dynamique vers le joueur (event tick).

Le rôle de cette fonction est de s’assurer que le missile suit le joueur. Ce n’est pas trop difficile puisqu’on part d’une classe projectile native d’Unreal. Il y a moyen de faire agir le projectile de sorte à ce qu’il suive une trajectoire; on lui passe donc comme cible le joueur.

Apprentissages et Itérations

🚀 Principales leçons retenues :

  • Toujours offrir une liberté de choix au joueur, même en guidant vers un critical path.
  • Éviter les espaces trop vastes : Des distances trop longues entre les objectifs peuvent nuire à l’engagement du joueur.
  • L’importance des playtests et itérations : Chaque test utilisateur a permis d’ajuster le level design pour garantir une progression fluide et intuitive.

🔄 Réitération, playtest, réitération, playtest – une boucle essentielle pour affiner l’expérience de jeu.

Conclusion

Ce projet a été une opportunité d’appliquer une approche méthodique du level design, intégrant :
Structuration claire des niveaux pour guider le joueur intuitivement.
Optimisation technique et modulaire pour une intégration efficace dans Unreal Engine.
Processus itératif basé sur des retours constructif et des analyses des playtests.

Grâce à cette expérience, j’ai pu affiner mes compétences en level design, en conception d’expériences engageantes et en collaboration interdisciplinaire dans un environnement de production réel.