🎯 Contexte
Après 3 ans de développement chez Guest Suite, j'ai voulu mettre en pratique l'ensemble de mes compétences sur un projet personnel, de A à Z — conception, architecture, développement back-end et front-end.
J'ai choisi de travailler à partir de la SuperHero API, qui recense des centaines de personnages (super-héros, vilains) avec leurs caractéristiques chiffrées (intelligence, force, vitesse, durabilité, pouvoir, combat). J'en ai fait un jeu de combat.
>>> Ce que j'ai réalisé
Conception du modèle de données Double modèle : relationnel (MySQL) pour les utilisateurs et les statistiques de jeu, non relationnel (MongoDB) pour les résultats des combats — plus de 30 millions de combinaisons possibles.
Développement back-end API REST en Symfony 5.2. Récupération et formatage des données SuperHero API. Traitement asynchrone des combats avec RabbitMQ. Tests unitaires avec PHPUnit.
Développement front-end Interface en Vue.js 2.6, connectée à l'API back-end.
🎮 Comment on joue ?
À la création du compte, le joueur définit un ordre d'importance entre les 6 caractéristiques (intelligence, force, vitesse, durabilité, pouvoir, combat). Cet ordre pondère le score de chaque personnage — et peut être modifié entre les parties.
Au lancement d'une partie, un super-héros et un super-vilain sont tirés aléatoirement. En arrière-plan, leurs scores sont calculés selon la pondération du joueur, et le résultat du combat est déterminé et sauvegardé.
Le joueur dispose de 3 vies. Il doit deviner quel personnage gagne — en se basant sur son propre ordre de priorité des caractéristiques. S'il se trompe, il perd une vie. Game Over quand les 3 vies sont épuisées.
Le système de points est progressif : plus le match est serré (scores proches), plus il est difficile à prédire — et plus le joueur gagne de points s'il devine correctement.
📊 Résultats
→ Application complète livrée en 2 mois sur mon temps personnel
→ Architecture full-stack maîtrisée de bout en bout
→ Code en libre accès sur Gitlab


