Yann Grallan

Yann
Grallan

Software Engineer, Gameplay & Engine ProgrammerIngénieur logiciel, programmeur gameplay et moteur

Seeking an engine or gameplay systems programming role focused on tools, software architecture, and performance optimization in Unreal Engine 5 / C++ production pipelines.Je recherche un poste de programmeur moteur ou systèmes gameplay, axé sur les outils, l’architecture logicielle et l’optimisation des performances dans des pipelines de production Unreal Engine 5 / C++.

Collaborative · Self-directed · Clear communicator · CuriousCollaboratif · Autonome · À l’aise en communication · Curieux

Portrait of Yann Grallan, white shirt, studio lighting.

ExperienceExpérience

Sogeclair – Training & Simulation

Toulouse, France

Software Engineer Intern, Gameplay ProgrammerIngénieur logiciel stagiaire, programmeur gameplay Apr 2026 – Aug 2026avril 2026 – août 2026 Unreal Engine 5 · C++ · Mass Entity · PCG · WebSocket

Engineered a real-time tramway simulator in Unreal Engine 5 from architecture through delivery: extending Epic’s CitySample, adopting Mass Entity, bridging Unreal to a JavaScript control server over WebSocket, and designing reusable PCG systems for roofs and overhead lines.Conçu un simulateur de tramway temps réel sous Unreal Engine 5, de l’architecture à la livraison : extension de CitySample d’Epic, adoption de Mass Entity, liaison Unreal à un serveur JavaScript via WebSocket, et systèmes PCG réutilisables pour toitures et caténaires.

More on my resume Plus de détail sur mon CV
Waterfront line along the bridge
Wet-weather run down a city street
Street level, overhead lines and traffic
Grass track along a boulevard
Roundabout crossing, aerial view

Pl. 01 / 06 Tramway crossing a roundabout amid city traffic Tramway traversant un giratoire dans le trafic urbain

My projectsMes projets

Logicraft Core Utils

Score on GitHubVoir sur GitHub
Unreal Engine 5 utility pluginPlugin utilitaire Unreal Engine 5 Jan 2025 – Presentjanvier 2025 – en cours UE5 · C++20 · CRTP · Blueprints

A modular C++ utility plugin for Unreal Engine 5: LINQ-style lazy queries, a Maybe monad for null-safe chaining, chunk-based actor pooling, and a versioned save/load system exposed to designers through Blueprints.Plugin C++ modulaire pour Unreal Engine 5 : requêtes paresseuses à la LINQ, une monade Maybe pour un chaînage sûr vis-à-vis du null, pooling d’acteurs par blocs, et un système de sauvegarde et de chargement versionné exposé aux designers via Blueprints.

Linq: lazy Where / OrderBy / Take pipeline over actors
Actor pooling: pre-spawned chunks, O(1) spawn and return
Maybe monad: null-safe chaining without nested IsValid()
Save system: SaveGame properties and version migration

Pl. 01 / 04 Linq: lazy Where / OrderBy / Take pipeline over actors Linq : pipeline paresseux Where / OrderBy / Take sur des acteurs

Custom C/C++ game frameworkFramework de jeu C/C++ sur mesure Oct 2025 – Presentoctobre 2025 – en cours C · C++ · CSFML · ToolingC · C++ · CSFML · Outils

A custom C wrapper over CSFML with multi-threaded resource loading, animation and particles plus an authoring tool, a state / sub-state architecture, a memory tracker, and categorized logging. Maintained across multiple production projects.Enveloppe C autour de CSFML : chargement multithread des ressources, animation et particules avec un outil de création, architecture par états et sous-états, suivi mémoire et journaux par catégories. Maintenu sur plusieurs projets de production.

States and sub-states that self-register before main()
State loading on a worker thread behind a live loading screen
Sprite-sheet animation keys with reverse playback
Particle burst with colour and size fading
Allocation tracker and categorized leak report

Pl. 01 / 05 States and sub-states that self-register before main() États et sous-états qui s’enregistrent avant main()

Limbic

Release coming very soonRelease très bientôt
Research prototype: emotional NPCsPrototype de recherche : PNJ émotionnels Sep 2026 – Presentseptembre 2026 – en cours UE5 · C++ · StateTree · Utility AI · LLMUE5 · C++ · StateTree · IA Utility · LLM

Research question: can a language model make NPC reactions feel organic without taking behavior away from designers? NPCs here witness what the player does (an insult, a threat, a gift, a blow to someone they love) and react according to their personality, relationships, memories and health.Question de recherche : un modèle de langage peut-il rendre les réactions des PNJ organiques sans retirer le comportement aux designers ? Les PNJ sont témoins de ce que fait le joueur (une insulte, une menace, un cadeau, un coup porté à un proche) et réagissent selon leur personnalité, leurs relations, leurs souvenirs et leur santé.

Jev, the evaluation model, never picks an action. It only appraises the event and returns probabilities, which shift continuous emotions held toward each character, decaying back to rest and colored by past events. A StateTree with Utility selection then decides, deterministically and tuned in data, while an immediate reflex masks the network latency.Jev, le modèle d’évaluation, ne choisit jamais l’action. Il se contente d’évaluer l’événement et renvoie des probabilités, qui font évoluer des émotions continues envers chaque personnage, qui reviennent au repos avec le temps et sont teintées par les événements passés. Un StateTree à sélection Utility décide ensuite, de façon déterministe et réglable en données, tandis qu’un réflexe immédiat masque la latence réseau.

Working so far, locked down by Unreal automation tests:Réactions en place, verrouillées par des tests d’automatisation Unreal :

  • Flee: a frightened NPC runs to the best reachable point away from the threat, and re-plans when cut off. Fuite : un PNJ effrayé court vers le meilleur point atteignable à l’opposé de la menace, et recalcule sa route s’il est coupé.
  • Attack: an angered, provoked NPC chases the player and strikes with the melee component it shares with the player. Attaque : un PNJ en colère et provoqué poursuit le joueur et le frappe avec le composant de corps à corps partagé avec le joueur.
  • Interpose: a protective NPC steps between the player and a threatened loved one. Défense : un PNJ protecteur s’interpose entre le joueur et un proche menacé.
  • Beg: a weakened or cornered NPC stops, faces the player and pleads instead of running. Supplication : un PNJ affaibli ou acculé s’arrête, fait face au joueur et supplie au lieu de fuir.

Plates coming soonPlanches à venir

Pl. — Captures from the test level are being prepared.Les captures du niveau de test sont en préparation.

TrainingFormation

Game Academy

Game Developer ProgramCursus Game Developer 2022 – 2026 C · C++20 · C# · UE5 · Unity 6
  • Software architecture, Unity 6, Unreal Engine 5. Cours d’architecture logicielle, Unity 6 et Unreal Engine 5.
  • Languages: C / C++ / C#, with a focus on modern C++ (C++20). Langages travaillés : C, C++ et C#, avec un accent sur le C++ moderne (C++20).
  • Version control and collaborative workflows (Git). Gestion de versions et travail collaboratif avec Git.

ContactContact

Feel free to write to me atN’hésitez pas à m’écrire à