Projet 01 10
Personnage d’Etheria devant une forêt et des îles flottantes

Projet fil rouge Gtech · 4 personnes

Etheria’s End

Une aventure entre les îles flottantes, avec un grappin pour les rejoindre et quelques créatures sur le chemin. Nous l’avons développée à quatre sur Unreal Engine.

Mon rôle
Co-lead · IA & systèmes C++
Format
PC · Solo · Action-RPG
État du projet
Démo jouable
Technologies
Unreal Engine 5.6C++BlueprintsIA

01Le projet

Une aventure que nous avons construite à quatre.

Dans Etheria, on suit Kael, parti sauver son amie d’enfance Maelys. Pour traverser les îles flottantes, on utilise un grappin, un planeur et les colonnes de vent que l’on croise en chemin.

C’est notre projet fil rouge à Gtech. Nous avons réalisé une démo qui se joue du début à la fin, avec une introduction, un village, une quête, des combats et un donjon. De mon côté, j’ai surtout travaillé sur les IA et les systèmes C++, avec aussi du game design et du sound design.

Comment on joue

  1. 01

    Explorer

    Grimper, se balancer et planer entre les îles.

  2. 02

    Résoudre

    Aborder des énigmes à plusieurs solutions.

  3. 03

    Affronter

    Lire le danger et choisir le bon moment.

  4. 04

    Se reposer

    Se soigner et sauvegarder au feu de camp.

02Mon travail

Ce que j’ai développé sur Etheria.

J’étais co-lead sur le projet. J’ai travaillé sur les IA et les systèmes C++, tout en participant au game design et au sound design.

01

Comportements des ennemis

J’ai travaillé sur les différents états des ennemis : ils peuvent dormir, patrouiller, poursuivre le joueur ou combattre. Leur comportement change aussi la façon dont on découvre le monde, avec des créatures plus tranquilles au début et plus agressives dans les zones dangereuses.

  • IA
  • C++
  • États de comportement
02

Des créatures qui arrivent à destination

J’ai travaillé sur les déplacements avec le NavMesh et l’évitement RVO. Lorsqu’une créature se retrouve bloquée, le système détecte le problème et recalcule un chemin. C’est le genre de détail peu visible quand tout marche, mais très visible quand il manque.

  • NavMesh
  • RVO
  • Récupération de chemin
03

Co-lead, game design et son

Mon rôle de co-lead m’amenait aussi à participer aux choix de game design et au sound design. J’aime pouvoir passer du comportement d’une créature à ce que le joueur voit et entend, plutôt que m’arrêter à une seule partie du jeu.

  • Co-lead
  • Game design
  • Sound design

03Sous le capot

L’ennemi qui ne voulait plus se réveiller.

Pour économiser des mises à jour, nous désactivions le Tick des ennemis endormis. Sauf que le réveil dépendait lui aussi du Tick. L’ennemi s’endormait donc très bien, mais la suite se faisait attendre.

Les états de l’IA

À explorer

Laisser dormir sans perdre le réveil.

L’ennemi arrête sa logique exécutée à chaque image. Des timers continuent à vérifier s’il doit se réveiller, indépendamment du Tick.

FTimerManager

Clique sur un état pour voir comment il fonctionne.

Comment le code est organisé

BaseAIController
Décisions et navigation
BaseAICharacter
Base commune aux créatures
AIMovementComponent
Déplacement et évitement
AIAnimationComponent
Lisibilité du mouvement

Le C++ porte la logique du jeu. Les Blueprints servent à la régler et à l’intégrer. Les interfaces et les Event Dispatchers permettent aux systèmes de communiquer.

Quelques choix de développement

Le réveil était dans le Tick désactivé

Le point de départ

La dormance désactivait le Tick qui surveillait lui-même les conditions de réveil.

Ce qu’on a fait

Nous avons déplacé la surveillance vers FTimerManager. L’ennemi peut arrêter ses mises à jour tout en gardant une façon de se réveiller.

La patrouille démarrait trop tôt

Le point de départ

OnPossess pouvait arriver avant le BeginPlay du personnage possédé.

Ce qu’on a fait

Nous avons différé son départ pour attendre la fin de l’initialisation. Le problème venait de l’ordre des événements, pas du chemin que l’ennemi essayait de suivre.

04En images

Quelques images de notre démo. Le grappin et le planeur font partie du travail de l’équipe. Les réglages des IA montrent plus directement la partie sur laquelle j’ai travaillé.

Personnage d’Etheria devant une forêt et des îles flottantesVidéo à venir

Une traversée d’Etheria

Un extrait de la démo viendra bientôt compléter ces images.

05Bilan & équipe

Une démo terminée, et encore des idées pour la suite.

Nous sommes arrivés à une démo jouable de bout en bout. Tout ce que nous avions imaginé n’y est pas entré, notamment le boss Golem. Nous avons préféré terminer correctement le parcours déjà en place.

Ce qui est en place

  • Une base C++ organisée en composants.
  • Des ennemis avec dormance, navigation et combat.
  • Un parcours reliant exploration, quête, énigme et donjon.

Où en est le projet

  • Le Golem a été repoussé pour garder du temps sur le reste de la démo.
  • Le combat et la progression méritent encore de l’équilibrage.
  • Pour la suite : plus d’énigmes, de donjons et des builds automatisés plus tôt.
Ce que j’en retiens

Un parcours complet testé dans une vraie build apprend beaucoup plus qu’une longue liste de fonctionnalités encore séparées.

L’équipe

Léo Queiros Da Silva
Co-lead · IA, systèmes C++, game design & sound design
Shailendra Blondel
Lead · Architecture & systèmes C++
Mathias Rebecca
Co-lead · Narration, level design & cinématiques
Maurad Bahri
Développement · VFX, UI & UX

Envie de parler de ce projet ?

On en parle