Projet EpitechLogicielApplied AILivré

RPG HD-2D

RPG sous Unreal Engine 5.6 avec une IA de combat basée sur PyTorch.

Projet de fin de seconde année à Epitech : un RPG sous Unreal Engine 5.6 intégrant une IA de combat basée sur PyTorch, développée avec un second développeur IA.

Contexte

Projet de fin de seconde année à Epitech, réalisé en équipe de 5 étudiants sous Unreal Engine.

Équipe

Équipe de 5 étudiants.

Rôle

Développeur IA : travail sur l'IA de l'ennemi principal avec un second développeur IA, de la représentation de l'état de combat à l'intégration du comportement dans le jeu.

Réalisation

La partie IA convertit l'état d'un combat en un vecteur normalisé de 92 features, calcule un masque des actions disponibles, puis exécute un MLP PyTorch (92 → 128 → 64 → 5) dont les cinq sorties servent à choisir une action. Le décodeur écarte les actions impossibles et conserve toujours une action "Skip" disponible. Un checkpoint entraîné (.pt) accompagne le code de features et d'inférence.

Architecture

État de combat Unreal → adaptation du schéma / JSON → normalisation en 92 features → MLP PyTorch (92 → 128 → 64 → 5) → masque des actions valides → probabilités → action choisie.

Galerie média

Schéma / architectureArchitecture

Décisions techniques

  • Représentation fixe par 92 features

    L'état de combat est converti en un vecteur normalisé de 92 valeurs avant d'atteindre le modèle, avec une normalisation dépendante du niveau.

  • Masque d'actions plutôt que filtrage a posteriori

    Un masque calculé à partir de l'état désactive les actions impossibles avant la sélection, en conservant toujours "Skip" comme repli.

  • Du combat à une action jouable

    L'état du combat est transformé en 92 valeurs normalisées décrivant les informations utiles au modèle. Le réseau produit ensuite un score pour cinq actions possibles. Avant la sélection finale, un masque retire les actions impossibles dans l'état courant, puis l'action retenue est renvoyée au jeu.

Stack

Unreal Engine 5.6C++PythonPyTorchC#

Compétence → preuve

  • Structure un projet complet sur Unreal Engine 5.6

    Projet structuré avec EngineAssociation "5.6" et un module Runtime en C++ dédié.

  • Écrit la logique de jeu en C++

    Le C++ représente environ 85 % du code du projet.

  • Conçoit une IA de jeu par apprentissage plutôt que par script figé

    MLP PyTorch entraîné (92 → 128 → 64 → 5), checkpoint .pt versionné, masque des actions invalides.

Résultats

L'IA est intégrée au jeu et pilote les choix d'action de l'ennemi principal pendant les combats.

Limites

Le projet ne comporte pas d'évaluation chiffrée de l'IA de combat (taux de victoire, comparaison avec une approche rule-based, etc.).