Projets informatiques

Projets professionnels

Solution Builder en mission à Engie

2022-2024 | Java - Spring - TypeScript - Angular - VBA - Cloud Amazon

Pour ma première mission en tant que développeur consultant à Sopra Steria, j'ai rejoint l'équipe CloudRef à Engie

Cette équipe est en charge du référentiel clients et prospects de la "Direction des Clients Professionels" d'Engie.
Mes missions ont principalement consisté en la création de processus d'intégration en lot (batch) de données externes afin d'alimenter le référentiel, le développement de divers webservices permettant de faire vivre ou de consulter les données du référentiel, ainsi que la mise en place d'un portail d'accès prenant la forme d'une Interface Homme Machine (IHM).
J'ai également travaillé sur l'amélioration continue et la maintenabilité du code, notamment via la mise en place de tests unitaires, de documentation et d'outils d'autogénération.

Programmeur Outils sur Mario+Rabbids: Sparks of Hope

2022 | C++ - Snowdrop - Stage fin d'étude IGD

Mario+Rabbids: Sparks of Hope est un jeu mélant exploration et aventure avec un système de combat stratégique, sorti en 2022. Il est la suite du jeu Mario+Rabbids: Kingdom Battle sorti en 2017. Il est développé par Ubisoft en collaboration avec Nintendo.
Lors de ce second stage de fin d'étude, j'ai rejoint l'équipe moteur en tant que programmeur outil. Mon rôle y était principalement d'implémenter de nouvelles fonctionnalités sur l'interface logicielle du moteur. Celles-ci répondaient généralement à une demande des autres équipes du projet afin qu'ils puissent construire le jeu, mais je n'ai jamais directement édité le jeu.

Ce stage-ci a finalisé mon année de M2 du master Interaction Graphic & Design (IGD).

Programmeur Gameplay sur Rugby22

2021 | C++ - Cintia - Stage fin d'étude TSP

Rugby22 est un jeu de Rugby à XV développé par Eko Software et édité par Nacon, sorti fin janvier 2022. C'est une itération du jeu Rugby20.
Au cours de mes 6 mois de stage j'ai occupé le poste de Programmeur Gameplay. A ce titre, j'ai principalement réalisé des modifications sur l'HUD, et sur le gameplay pendant et hors des matchs.

Ce stage a complété ma dernière année de formation à Télécom Sudparis (TSP).

Projets personnels

Anima

2023-??? | Unreal - C++ - Blender

Anima est un projet de jeu dont le coeur de gameplay est similaire à ceux de la licence Pokémon. Il sera entièrement jouable en multijoueur et incorporera des éléments du genre Roguelike.
Je développe la version actuelle avec le moteur de jeu Unreal Engine 5. Il s'agit de ma troisième itération sur ce jeu, la première tentative remontant à l'été 2020 sur le moteur Unity.

Anima Data Manager

2022-2024 | C++ - Qt

Mon projet Anima nécessite d'utiliser des assets DataTable et StringTable dans Unreal Engine, alimentables par des fichiers ".csv" ou ".json". Cependant les éditeurs de ".csv" et ".json" à ma disposition me ne convenant pas, j'ai décidé de créer ma propre application dédiée avec Qt.
Elle permet de gérer différentes tables de données, de les lier entre elles, et de les exporter vers Unreal. De même, elle propose la création de tables de textes à afficher dans le jeu avec gestion des différentes traductions.

Actuellement en version 1.3, l'application est terminée mais peut encore recevoir des ajustements ou nouvelles fonctionnalité si le besoin s'en fait sentir à l'utilisation.

Projets de Master "Interaction, Graphic & Design"

Projet de Recherche Guidé - VR Perspectives

2021-2022 | Unity - Réalité Virtuelle - Oculus Quest 2

Projet visant à développer une application en réalité virtuelle (VR) permettant d'explorer et de tirer profit d'autres points de vue que celui de la première personne. Ont notamment été considérés les points de vue en 3ème personne, de coté ou encore en vue isométrique...
L'élaboration de ce projet s'est inscrite dans une démarche similaire à celle d'un article de recherche, et le rapport du projet est consultable via l'icône '?' ci-dessous.

Nodal World

Automne 2021 | Java - Java Swing

Nodal world est un logiciel/jeu vidéo dans lequel l'utilisateur peut simuler un monde dont il définit les règles. Il a pour cela un éditeur nodal à sa disposition.
Il peut ainsi définir les règles de création de terrain. Il peut également peupler son monde avec des entités appartenant à différentes espèces, dont il contrôle la vie grâce à des règles de génération, déplacement et mort. L'utilisateur a également à sa disposition d'autres outils afin de l'aider à gérer les variables de son monde, déboguer ses réseaux de nœuds, sauvegarder ou encore charger un autre monde.
Plus de détails dans le fichier readme du Git.

Demon Doors

Hiver 2021 | Unity - C# - Réalité Augmentée (AR) - Vuforia

Ce court projet consiste à créer une application en réalité augmentée pour le cours "Mixed Reality and Tangible Interactions" (MRTI). Le sujet était libre mais devait comporter des interactions entre éléments virtuels et réels. Notre binôme a décidé de créer un jeu de combat automatique où toute la stratégie repose sur le placement des héros.
C'est un jeu developpé sur Unity avec la librairie Vuforia pour gérer la partie réalité augmentée, et prévu pour être joué sur Android.

Déformation de Mesh dite "ARAP"

Automne 2021 | C++ - Libigl

Ce projet avait pour but d'implémenter l'algorithme proposé dans l'article scientifique "As-Rigid-As-Possible Surface Modeling", accessible en cliquant sur l'icône '?'. Cet article propose une façon de déformer un maillage d'objet 3D de manière à ce que le résultat soit le plus naturel possible, c'est-à-dire la plus rigide possible localement. !!!!!! Pour cela la déformation doit localement minimiser l'énergie de déformation.
Le projet a été réalisé en C++ en utilisant la bibliothèque Libigl pour la gestion de l'univers 3D et de son rendu graphique.

Carte Collaborative

Hiver 2021 | HTML - Javascript - CSS - Node.js - Leaflet

Le but de ce projet était de réaliser un outil collaboratif. Nous avons décidé de faire une carte collaborative où les utilisateurs peuvent placer et éditer des marqueurs visibles par tous, superposer leur champs de vision, ou encore demander aux autres de regarder un point précis sur la carte.
L'application a été réalisé en HTML/Javascript avec Node.js pour la gestion du serveur et la librairie Leaflet pour l'affichage et la gestion locale de la carte.

Projets d'école d'ingénieur Télécom Sudparis

Projet de fin d'étude JIN - Myth Busters

2020-2021 | Unreal - C++ - GGPO

Il s'agit d'un jeu de combat en 1 contre 1 mettant en scène des dieux de différentes mythologies dans une arène circulaire sans gravité. Les joueurs sont libres de se déplacer verticalement et horizontalement et ont pour but de faire accumuler des dégats à leur adversaire afin de l'éjecter hors de l'arène.
Un point crucial du projet est sa composante multijoueur que nous voulions réaliser en implémentant le middleware GGPO.

Projet d'IHM - Platformer 2D

Automne/Hiver 2020 | Unity - C# - Arduino

Projet réalisé d'abord dans le cadre du cours "Interaction Homme Machine" (IHM) consistant à créer un platformer 2D sous Unity. Nous devions construire nous-même notre système de collision et de déplacement (l'utilisation du moteur physique de Unity était interdite), et rendre les propriétés du joueur paramétrables par un game designer externe.

Une version alternative, créée pour le cours "Internet des Objets Connectés" (IOT), permet une communication vers une carte Arduino intégrée à un montage électronique. Cela ajoute de nouveaux feedbacks et contrôleurs au jeu. Ledit montage implique notamment des diodes et des capteurs tels qu'un bouton poussoir et un détecteur capacitif. Cette variante est disponible sur la branche "IOT_Louis" du dépôt Git.

Projet d'IA - Warbot

Hiver 2020 | NetLogo

Le principe du projet est de faire s'affronter de façon autonome deux armées virtuelles de robot. Ces armées sont constituées de robots de différents types (les bases, les explorateurs, les récolteurs et les lance-rockets) qui ont tous leurs propriétés propres (détaillées dans Rules_v3.0.2.pdf). Le coeur du projet consiste alors à écrire pour chacun de ces types de robot un comportement particulier à respecter.
Chaque binôme devait définir et implémenter les différentes routines des robots avant d'affronter ceux des autres binômes dans un tournoi. Notre stratégie est celle élaborée dans le fichier red.nls du dépôt Git.

Miniprojet C++ - Médusé

Juin 2020 | C++ - CMake - SFML - PugiXML - Box2D - Tiled

Projet réalisé en 2 semaines dans le cadre de la fin du cours Développement en C++. Le thème était la mythologie Grecque et il était imposé d'utiliser la bibliothèque SFML ainsi que 2 autres bibliothèques de notre choix.
Nous avons décidé de réaliser un jeu de plateforme en 2D où le joueur incarne Persée partant chasser Méduse. Pour cette raison, si le joueur regarde vers la droite il meurt instantanément et retourne à la salle précédente. Cependant pour l'aider dans sa quête, le joueur dispose d'un bouclier qu'il utilise comme mirroir le rendant insensible à Méduse mais qui inverse ses mouvements. Le joueur peut aussi se mettre dans l'ombre des murs qui le protègeront du regard de méduse.

Cassiopée - Jintech

2019-2020 | Unity - C# - TCP

Jintech est un simulateur du robot conçu par le club de robotique de Télécom Sudparis, Intech, afin d'aider le club à paramétrer son robot pour participer à la "Coupe de France de Robotique". Le logiciel a été développé sur Unity avec 2 autres étudiants et devait répliquer le comportement du robot que ce soit dans ses déplacements, ses actionneurs (bras mécaniques, ventouses) ou ses capteurs.
Le similateur peut être piloté par l'utilisateur via le clavier ou par un code externe en utilisant une connexion TCP.