🤓 Ce que j'ai appris...
Autodidacte depuis le début lycée, ma pratique intensive du mapping, une discipline à la croisée de nombreux métiers, m'a conduit à acquérir des compétences variées : programmation, développement web et logiciel, infographie, game et level-design...
🎓 ... ce qu'on m'a appris
Mon bac Scientifique (spé. Maths) en poche, je me dirige ensuite en Licence de biologie spécialisation géologie (Géosciences), fasciné par les mécanismes complexes qui ont contribué à la formation de nos paysages familiers.
🏭 Et après ?
À l'issue de mes études, je décide de me réorienter professionnellement vers ma compétence principale qui occupe toujours mon temps libre, l'informatique, et rejoint l'industrie du jeu-vidéo en tant que scripter/level-builder, game-designer et programmeur-outil... Une riche expérience professionnelle qui m’a permis d’approfondir mes connaissances des méthodologies Agiles et de la coordination inter-équipes au sein de projets à fortes contraintes.
Fort de cette expérience, je m'établis ensuite à mon compte en tant que Développeur et Consultant Web indépendant, métier que j'exerce maintenant depuis plus de 15 ans...
Projets personnels
Programmer pour le plaisir c'est aussi programmer pour progresser
Frameworks Web
Curieux de comprendre leur fonctionnement interne et de tester de nouvelles fonctionnalités, j'ai entrepris le développement intégral de plusieurs frameworks :
WebKore
2010 → 2012
Développement intégral d'un framework PHP inspiré de Symfony 1 et 2.
- ORM (type ActiveRecord)
- Configuration yaml (parseur personnalisé)
- MVC - Organisation modulaire
- Routeur HTTP avec réécriture d'URL intégré et gestion des urls canoniques/redirections
WebKore.NET
2013
Portage sur la plateforme .NET du framework WebKore.
- Orienté conventions ("opinionated")
- Inspiré du framework ASP.NET
- Utilisation du moteur de templates RAZOR
- Compatible GNU/Linux
MediaKore/MediaServe 2014
Création d'un micro serveur HTTP pour avec des applicatifs ASP.NET, compatible GNU/Linux.
- Requêtes multithreads
- Chargement dynamique des différents applicatifs (dll) dans des environnements isolés (AppDomain)
- Utilisation du framework Mono
- Précompilateur Less CSS intégré
Divers Web
Mes principaux projets professionnels sont détaillés en page d'accueil mais vous trouvez ici quelques autres exemples tirés de mes réalisations personnelles.
CinéPortail
2017 → 2020
Une plateforme SaaS à destination des salles de cinémas qui propose de nombreux outils pour faciliter la gestion de salle et la communication avec les spectateurs.
- Création de plateformes sur-mesure intégralement personnalisables : contenu, fonctionnalités, thème graphique...
- Fonctionnalités principales : fiches films, événements, articles, outils d'administration...
- Synchronisation de la programmation des salles avec le logiciel de caisse.
- PHP
- Symfony
- Twig/Vue.js
- MinIO (S3)
- RabbitMQ
Image cropper/resizer 2018
Composant de redimensionnement et de recadrage d'image pour Vue.js
- Ratio fixe ou libre
- Restriction de formats autorisés
- Dimensions mini et maxi
- Redimensionnement automatique (via un canvas html)
D3 Calculator
2018
Simulateur d'équipement pour Diablo 3, permettant de calculer l'impact des attributs sur les statistiques du héros (points de vie, dégâts...)
- Mise à jour et calculs en temps réel
- OOP : utilisation de pseudo-classes Javascript
- JS
- POO
Emoji Picker
2025
Un site assez simple que les amateurs d'emojis apprécieront, permettant de rechercher et de les copier-coller en un clin d'oeil.
- Classification par catégories
- Recherche par nom et mots-clés
- Copie dans le presse-papier en un simple clic
Bureaux Beaux et Durables 2013
Site vitrine assez simple mais néanmoins intéressant de par l'utilisation du plugin Apostrophe pour Symfony.
- Chaque page est constituée de blocs éditables indépendants (Apostrophe).
- Synchronisation avec le site Scoop It pour la publication automatique des news.
- Intégration html de la maquette fournie par un graphiste.
- PHP
- Symfony 1.4
Text-highlighter 2010
- JS
Thèmes graphiques
- HTML
- CSS
- LESS
- SASS
- Tailwind
Divers Programmation
J'ai été amené à travailler sur des applications de types très différents, et notamment des moteurs 3D qui m'ont énormément appris ; en terme technologies bien sûr, mais aussi d'architecture, de contraintes et d'optimisation...
SEO Console / OkSEO
2016
Outils d'analyse des données des API Google Analytics et Search Console.
- Statistiques des pages (position, impressions, clics, ctr)
- Mises-à-jour incrémentielles (haut volume de données) à partir des API.
- Outils d'analyse des mots-clés des recherches
- Outils d'analyse comportementale SEO (flux de navigation)
- WPF
- Multithreading
Quark Engine 2010
Premier prototype de moteur 3D codé en C++ et utilisant le framework Qt.
- Rendu de géométries simples
- Rotation de la caméra
- Chargement dynamique de renderers OpenGL
- OpenGL
- Qt
Moon Editor 2011
Prototype de moteur 3D codé en C# utilisant le framework OpenTK.
- Géométries statiques et UV Mapping (modèles et textures de Warcraft 3)
- Translations et Rotations du modèle
- OpenGL
- OpenTK
Analyseur de séries temporelles
2008
Projet universitaire permettant de réaliser des régressions linéaires à partir de séries temporelles données (réalisé en IDL).
- Calcul des régressions linéaires
- Tracé des courbes
- Lecture et écriture de fichiers
- Configuration avancée de l'interface et des courbes
Parsing et traitement de fichiers
Au-delà de simples fichiers texte, j'ai été amené à manipuler de nombreux autres formats et fait de la rétro-ingénierie de formats binaires, notamment pour la réalisation de plusieurs importateurs de modèles 3D :
BlizzImporter
2006
Script 3dsMax permettant d'importer les modèles 3D du jeu Warcraft 3 et leurs animations.
- Parsing de fichiers textes (.mdl) et binaires (.mdx)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Éditeur d'animations (concaténation de plusieurs animations originales en une seule)
M2 Importer (WoW)
2005
Script 3dsMax permettant d'importer les modèles 3D du jeu World of Warcraft et leurs animations.
- Parsing de fichiers binaires (.m2, .wmo)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Éditeur d'animations (concaténation de plusieurs animations originales en une seule)
- Éditeur de géométrie (sélection des variations du modèle à importer)
MDL Importer
2003
Script 3dsMax avec interface graphique permettant d'importer les modèles 3D du jeu Warcraft 3.
- Parsing de fichiers texte (.mdl)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Model events et émetteurs de particules
Game programming/building - Mapping
De tous les éditeurs de jeux que j'ai pu tester, mon favori restera incontournablement celui de Warcraft 3 qui offrait une grande liberté de création et dans lequel tout était possible (ou presque !) : programmation des systèmes de jeu via un puissant langage de scripts, intégration de textures et de modèles, décors et modélisation du terrain... Je me suis entre autres amusé à recoder de nombreux systèmes tirés du jeu World of Warcraft dans cet éditeur pour enrichir les fonctionnalités du jeu original.
Au fur et à mesure de la complexification des systèmes développés, ces projets ont été un excellent terrain d'apprentissage de la programmation et de la *débrouille* pour contourner les limitations des outils disponibles.
JPhysics
Librairie de code simulant un moteur physique dans le jeu Warcraft 3.
- Simulation de la gravité, rebonds, friction
- Prise en compte du relief et de la texture du terrain
JQuest
Librairie de code automatisant la création de quêtes dans le jeu Warcraft 3 (vJASS).
- Prérequis de quêtes (niveau et classe du héros, quêtes parentes...)
- Journal de quêtes dynamique
- Mise à jour automatique des objectifs (récolte, exploration, escorte...)
JBuff
Librairie de code enrichissant le système d'améliorations magiques (buffs/debuffs) du jeu Warcraft 3 et servant de framework pour la création d'améliorations personnalisées.
- Améliorations 100% scriptables
- Améliorations cumulables
- Dissipassion des amélioration/enchantements
JSpell
Librairie de code enrichissant le système de sorts du jeu Warcraft 3 et servant de framework pour la création de sorts personnalisés.
- Sorts 100% scriptables
- Temps de cast / interruption
- Sorts canalisables
- Familles de sorts
- Regénération de mana
- Barre de progression personnalisable
JCombat
Librairie de code reproduisant les systèmes de combat de WoW dans le jeu Warcraft 3 (vJASS).
- Gestion de la menace (aggro) & listes de combat
- Phases de combat scriptées
- IA des monstres personnalisables
- Patrouilles programmables/automatisées
Game building - Mapping
Ayant testé de nombreux éditeurs de jeux — d'Age of Empires à Half-Life (Hammer) — mon favori sera incontournablement celui de Warcraft 3 dans lequel tout (ou presque) était possible : modélisation du terrain, intégration de textures et de modèles, programmation des systèmes de jeu via un puissant langage de scripts... Et si ça ne l'était pas, on trouvait un moyen pour que ça le devienne !
Et surtout, une communauté très ingénieuse et créative... <3
Nights of Kalimdor
Support pour les compétences acquises au petit à petit, ce projet m'a servi d'inspiration et à bac à sable à de nombreux apprentissages...
Peinture et sculpture de figurines
J'ai également pratiqué la peinture de figurines pendant mes jeunes années (jusqu'au lycée) Mes années lycée ... en parallèle du début de ma passiond de l'informatique... la peinture de figurines...
Warhammers
...
Un peu plus à mon propos...
Au lieu de penser en dehors de la boîte, débarrassez-vous de la boîte
Langues
Français (langue maternelle), Anglais (lu, écrit, parlé), Allemand (notions avancées)
Hobbies
Musique (guitare, piano, chant), Randonnées, Voyages, Arts
Je m'adonne également à la rénovation et le bricolage, des activités qui font suprenamment écho à mon approche du développement : comprendre l’existant, intervenir avec mesure et améliorer durablement.
Éthique
Parvenir, dans mon choix de vie, à rester éveillé à ce qui parle au plus fort de moi, et à m’y vouer corps et âme.


































