Contexte
Dans le cadre de la SAE du semestre 5 de mon BUT Informatique option IAMSI à l'IUT de Montpellier, j'ai co-développé Capital Wars, un jeu de gestion d'entreprise multijoueur en ligne. Ce projet représente la réalisation la plus ambitieuse de ma formation : concevoir de A à Z une plateforme web complète, robuste et évolutive sur une durée d'un an académique (2025–2026).
Réalisé en équipe de quatre développeurs (Andriamihaja Manu, Julien Garcia, Raphaël Lambert, Alexis Michaux-Kinet), encadrés par M. Antoine Chollet, Capital Wars simule la concurrence entre entreprises virtuelles spécialisées dans la fabrication de produits manufacturés. Les joueurs prennent des décisions stratégiques sur la chaîne de production, les ressources humaines, le marketing et la finance dans un marché compétitif.
L'innovation centrale du projet est son architecture modulaire par plugins : un noyau stable gère les fonctionnalités de base, et des modules indépendants (DLC) viennent enrichir le jeu sans impacter le moteur principal. Cette approche garantit évolutivité, flexibilité pédagogique et maintenabilité à long terme.
Déroulement du projet
Fonctionnalités du noyau
Le cœur de Capital Wars repose sur Symfony 6.4 / PHP 8.1 avec Doctrine ORM et MySQL. L'architecture MVCS garantit une séparation claire entre entités métier, logique applicative et présentation via Twig.
- Système de lobbies multijoueurs : création, administration, gestion des participants (4 à 6 entreprises)
- Moteur de jeu par périodes : simulation de 2 à 30 sessions de gestion de 1 à 4h chacune
- Feuille de décision : gestion de la production, des usines, des ressources humaines, du financement
- Système financier complet : Bilan, Compte de Résultat, Prêts bancaires, Objectifs Stratégiques
- Système de Quêtes et gamification : missions catégorisées (Économique, Social, Industriel) avec points d'XP
- Tableau de bord administrateur : KPIs en temps réel, gestion des utilisateurs, lobbies, périodes et paramètres
- Pages d'erreur personnalisées (404, 403, 500) et formulaire de contact avec webhook Discord
- Chat flotant de support accessible sur toutes les pages
Système de Plugins
L'architecture de plugins est la valeur technique principale du projet. Chaque plugin implémente des interfaces SOLID (contributeToBilan, contributeToResultat, contributeToDecision) et dispose d'une commande de génération automatique via make:plugin. L'organisateur peut activer/désactiver les plugins et configurer leurs fonctionnalités individuellement via 3 packs prédéfinis (Basic, Standard, Advanced).
Plugins fonctionnalité
- Bourse Marché boursier complet : émission d'actions, rachat (share buyback), OPA hostile, émission d'obligations, fractionnement d'actions (split), notation de crédit (AAA → D) et dividendes. Les entreprises fictives générées aléatoirement alimentent le marché.
- Chat Messagerie temps réel par polling AJAX : chat général du lobby et conversations privées entre joueurs. Un ChatController dédié gère la création/récupération des messages.
- Placement des Usines Trois types d'emplacements (Locality, Low Costy, Premiumy) influençant les coefficients de productivité, main-d'œuvre, exploitation, marketing et construction. Impact direct sur le Compte de Résultat.
- Personnage RH Marché de l'emploi avec 9 types de personnages spéciaux (Directeur RH, Manager, Coach, Chercheur, Publicitaire, Comptable, Chasseur de Têtes, Marketing, Expert Construction). Chaque personnage apporte des bonus passifs ou actifs, peut être formé pour monter en étoiles et affecte les finances.
Plugins fun
- Événements Aléatoires (PESTEL) Système de gestion des risques macroéconomiques : 6 catastrophes selon le modèle PESTEL (Politique, Économique, Social, Technologique, Environnemental, Légal). Chaque catastrophe a des impacts spécifiques atténués par un indice de résilience calculé par entreprise. Système d'assurance multi-risques configurable.
- Paris Hippiques Module de divertissement permettant aux entreprises de parier sur des courses hippiques et diversifier leurs stratégies financières.
Qualité & Gestion de Projet
- Méthodologie Agile Scrum : sprints, mêlées quotidiennes, revues et rétrospectives
- GitHub : backlog avec tags de priorité, tableau Kanban, issues et workflow automatisé de création
- Tests PHPUnit avec mocks et stubs, GitHub Actions CI/CD (branches main et development)
- SonarQube : analyse de qualité de code avec couverture à 60%
- Discord : récaps journaliers, notifications de maintenance, merge, tests automatisés et centralisation des documents
Conclusion
Capital Wars est le projet le plus ambitieux et complet de mon parcours en BUT Informatique. Il m'a permis de mettre en pratique l'intégralité des compétences accumulées sur trois ans : architecture logicielle avancée, développement full-stack Symfony, gestion de projet Agile, qualité logicielle et travail collaboratif en équipe de 4.
La conception du système de plugins, pensé pour respecter les principes SOLID tout en restant accessible à l'extension, est la réalisation technique dont je suis le plus fier. Elle démontre ma capacité à concevoir des architectures évolutives répondant à des besoins complexes et changeants. Ce projet, déployé et accessible en version alpha publique, constitue la preuve concrète de ma maturité technique en tant que développeur web.