Je m'appelle Maxence Vanhaezebroeke, j'ai ans, et je réalise
des projets de programmation en tous genres.
J'ai obtenu un DUT Informatique, puis j'ai continué sur une licence et un master Informatique à
Clermont-Ferrand.
J'ai réalisé la seconde année de mon master au Puy-en-Velay, avec une formation orientée sur la
3D et l'IA.
Je suis passionné par le développement et la conception de jeux vidéo.
Je travaille beaucoup sur Unreal Engine et Unity pour le développement de
jeux.
Je réalise aussi d'autres travaux en tous genres dans différents langages de programmation.
(2019) - Projet Scolaire
Durant ma deuxième année d'IUT, nous avons eu cours un sur la programmation orientée
objet (Java).
L'objectif était de créer une application XML en Java (le sujet de l'application
était libre) tout
en utilisant des patrons de conception que nous avions vu en cours
précédemment.
Une fois de plus, j'ai réalisé ce projet avec un ami.
Nous avons choisi pour thème d'application le jeu de plateau "La bonne paye" que
nous avons renommé "La paye
Généreuse".
L'objectif était d'avoir un jeu fonctionnel en multijoueur (en local), c'est
pourquoi nous avons décidé de
créer un plateau avec peu de cases (- de 10) afin de se concentrer sur la partie
métier de notre jeu.
Sur l'écran de jeu, nous affichons différentes informations :
(2019) - Projet Scolaire
En fin d'année d'IUT, nous avons eu cours sur la réalité virtuelle, avec pour projet
de réaliser un programme utilisant une technologie liée à la réalité virtuelle au
choix.
(casque de réalité virtuelle, bracelet doté de capteurs, etc.)
En binôme, nous avons choisi de réaliser une interface graphique permettant de
contrôler à distance un robot
Lego Mindstorm Ev3. Cette interface a été réalisée sur Unity, elle permet de
contrôler le robot via
Bluetooth. Nous avons également choisi que pour interagir avec cette interface, nous
utiliserons le dispositif de reconnaissance de mouvements Leap Motion.
Sur la vidéo, on peut voir un test de l'interface avec des déplacements du
robot.
On dispose de plusieurs boutons sur l'écran permettant de faire bouger le robot,
mais on peut également voir 2 boutons vert et rouge lorsque l'on tourne la main
gauche.
(paume de main vers le ciel)
En appuyant sur le bouton vert, le logiciel va se connecter en Bluetooth au robot.
(Les LED frontales du robot clignotent pour indiquer la réussite de la
connexion)
Le bouton rouge sert à se déconnecter et à quitter le logiciel.
Pour que le robot avance, il faut tenir la jauge en bas droite dans une main. Cette
jauge sert également à diriger à droite et à gauche le robot.
Le bouton en haut à gauche de l'écran sert à inverser le sens des moteurs : il
permet au robot de faire marche arrière.
Et le bouton et haut à droite permet de doubler la vitesse du robot. (fonctionne en
marche avant comme en marche arrière)
(2019 - 2020) - Projet Personnel
J'ai pour projet de réaliser un jeu en multijoueur sous Unreal Engine.
Le but de ce jeu serait de se battre entre joueurs dans des niveaux différents,
avec des mécaniques de jeux différentes.
J'ai choisi de faire un jeu à la troisième personne : c'est un style de jeu qui me
plaît, et qui permet de complètement voir ce que fait le joueur dans le jeu.
Je n'ai pas décidé d'un thème précis : je me suis concentré sur l'avancement du jeu.
Pour l'instant, il n'est possible de se battre qu'avec un sabre : d'autres armes
seront
éventuellement ajoutées à l'avenir.
Pour l'aspect multijoueur : j'utilise l'outil "
Online Subsystem
" conçu par Unreal Engine, plus particulièrement celui qui permet de déployer son
application sur
Steam.
Mes objectifs sont :
- Pouvoir permettre aux joueurs de créer des parties et de rejoindre (pas de
serveurs
dédiés)
- Mettre en place un système de lobby, où les joueurs s'attendent avant de lancer
une partie
(lobby créé par l'hôte de la partie)
- Créer des maps, animations, particules, zones de dégâts et autres éléments du jeux
qui fonctionnent
et qui soient correctement répliqués entre le serveur et les clients
- Avoir un ATH détaillé : système de chat écrit, temps restant, historique des
points,...
J'ai pu répondre à quasiment tous mes objectifs. Il me reste encore de la
maintenance à faire,
mais j'ai pu tester avec un ami qui possède Unreal Engine, et l'aspect multijoueur
est
fonctionnel.
Le jeu n'est pas encore disponible : il n'est pas encore possible de choisir les
parties
en multijoueur que l'on veut rejoindre, ce qui est pour moi impossible à gérer sur
une plus
grande échelle (au moins 5 joueurs en simultanés qui veulent rejoindre différentes
parties)
Galerie :
(2021) - Projet Personnel
J'ai réalisé un jeu sur Unity dans lequel il est possible de jouer au Blackjack.
Mon but était de réaliser un petit jeu rapide sur Unity, en me concentrant sur
la programmation, et de découvrir tous les points importants du développement sur ce
moteur.
Voici un lien vers le projet :
Lien en cours d'intégration...
J'ai utilisé des assets gratuit téléchargés sur le
Unity Asset Store pour
représenter les cartes et la salle de jeu.
J'ai créé un menu quand on arrive dans le jeu.
En tant que joueur, nous disposons d'une interface pour intéragir avec la table :
demander une carte, passer
son tour, etc.
La logique du blackjack et des cartes est fonctionnelle.
J'aimerai bien rajouter d'autres éléments : particules, animations,
personnalisation, etc.
Mais le jeu est fonctionnel, et je souhaite consacrer plus de temps à d'autres
projets.
Galerie :
(2022-2023) - Projet Personnel
J'ai réalisé un jeu sur Unreal Engine 5 consistant à conduire une voiture, dans le
but de drifter.
Mon but était de réaliser un projet pour développer la propre physique de mon
véhicule.
J'ai décidé de ne pas rentrer dans trop de détails, pour ne pas rendre le
développement interminable.
J'ai d'abord conçu la partie suspension, qui va permettre au modèle de la voiture de
"flotter",
et de passer des obstacles sans problème. Cela permet de gérer les variations de la
route,
et d'obtenir un comportement réaliste.
En voici un exemple :
Ensuite, j'ai implémenté une friction au sol qui permet de ralentir la voiture et
d'appliquer
des forces latérales pour que la voiture ait de l'adhérence. Après avoir rajouté la
possibilité
d'avancer et reculer, j'ai donc obtenu un comportement semblable à une voiture, qui
glisse plutôt bien.
J'ai mis en place une caméra qui se déplace de manière lisse automatiquement autour
de la voiture,
et qui peut-être déplacée manuellement avec la souris si besoin.
Exemple : (Clic pour ouvrir l'animation)
(2023) - Projet Personnel
J'ai développé un jeu sur Unity que j'ai nommé Table Soccer Pro. Le but étant de
reprendre le jeu de baby-foot et de l'adapter en un jeu vidéo.
Le projet inclut une grande partie de physique (Rigidbody sous Unity) pour la
balle, ainsi que les barres de jeu, qui elles aussi sont considérées comme des
éléments physiques pour pouvoir obtenir les meilleures interactions possibles avec la
balle.
Le but d'un baby-foot est pour moi de passer du bon temps avec d'autres
personnes, et c'est pour cette raison que j'ai décidé de développer une partie multijoueur.
J'ai commencé par utiliser Netcode for GameObjects, la librairie réseau fournie par
Unity pour réaliser ce projet. J'ai choisi de passer sur Fish-Net, une librairie qui
offre la possibilité de faire de la prédiction côté client : chose non fournie par Netcode
Go pour l'instant.
Pour plus de détails, j'ai expliqué une majeure partie du jeu sur la partie Readme
du dépôt Github, disponible via ce lien :
(J'ai également mis quelques gifs de démonstration - il ne me manque plus qu'à rajouter un exemple d'une partie en multijoueur !)
TableSoccerPro -
GitHub
J'ai développé un site web (HTML/CSS) interagissant en PHP avec une base de données
SQL.
Le but était de créer une interface permettant l'ajout de fournisseurs, avec la
génération d'un fichier pour connaître les différents ajouts.
Il fallait également une page de connexion, limitant l'accès à ce site à certains
utilisateurs.
J'ai donc pensé à faire un site web puisse que j'avais déjà réalisé un projet
répondant à tous ces critères, et faire une page web me laissait
plus de choix au niveau de la personnalisation.
J'ai pu également manipuler un serveur sous Windows Server 2012, ce que je
n'avais jamais fait auparavant.
Suite à ce stage, j'ai été embauché en CDD du mois de juillet 2019 au mois d'août
2019 dans la même entreprise.
J'ai pu réaliser davantage de tests sur le déploiement de mon site web en base de
production.
J'ai eu l'occasion de me rendre sur le site de Picture Annecy pour installer de
nouveaux ordinateurs, et résoudre des problèmes existants.
J'ai effectué mon stage de première année de master au sein de l'entreprise UNIVR,
à Paris. (75012)
C'est dans cette même entreprise que j'ai réalisé mon alternance au cours de mon
Master 2 3DIA.
Les outils que j'ai pu utiliser :
Voici le site de Virtual
Room.
L'entreprise propose des expériences à réaliser de 2 à 4 joueurs en réalité
virtuelle, dont voici les 4 jeux :
J'ai travaillé sur les 4 jeux présents, ainsi que sur un cinquième jeu.
C'est pour moi ma première expérience dans le développement du jeu vidéo dans une
entreprise.
J'ai pu m'appuyer sur des bases acquises lors du développement de mes projets
personnels pour rapidement
prendre en main les différents outils, et comprendre le fonctionnement des projets
existants.
C'est un plaisir de travailler dans une équipe aussi conviviale, dans laquelle j'ai
pu pleinement
m'investir et prendre part à des tâches diverses.