War Seasons
Mon fil rouge devenu un vrai jeu : tower defense en architecture hexagonale, quatre cartes saisonnières, multijoueur temps réel, en production sur mon VPS.
- Next.js
- TypeScript
- Phaser
- Spring Boot
- Java
- WebSocket
- PostgreSQL
- Docker
- CI/CD
- Architecture hexagonale
- Canvas

Besoin
Faire passer mon projet fil rouge d’un prototype d’école à un vrai jeu en ligne : robuste, maintenable et avec sa propre identité visuelle.
Mon rôle
Seul sur tout le projet, de l’architecture au déploiement, jusqu’à la direction artistique.
Résultat
Jeu en ligne sur kcd-formes.fr : solo, duel 1v1 et coop en temps réel sur quatre cartes saisonnières, déployé automatiquement à chaque push.
Difficulté résolue
Ma première architecture hexagonale, tenue jusqu’au bout : multijoueur, simulation serveur et 100+ tests branchés sans toucher au cœur du jeu. Puis des règles saisonnières (crues, grêle, boue, brume) écrites une seule fois dans le domaine et partagées par le solo et le moteur temps réel.
Détails techniques
Reprise de mon projet fil rouge de 2ᵉ année (anciennement KCD Formes), entièrement réarchitecturée puis devenue War Seasons : un tower defense médiéval-fantasy en ligne.
- Architecture hexagonale (ports & adapters) : le domaine métier (tours, ennemis, vagues, économie, terrain saisonnier) est isolé des détails techniques (JPA/PostgreSQL, REST, WebSocket).
- Quatre cartes, quatre saisons : au printemps, le château est au milieu d'un lac et des crues neutralisent les tours d'une berge ; la grêle rend les ennemis plus vulnérables. En automne, la boue ralentit les ennemis (sauf les géants) et la brume réduit la portée des tours ; toutes deux changent de place à chaque vague.
- Simulation côté serveur : les vagues sont résolues sur le serveur puis rejouées à l'écran ; les règles saisonnières sont partagées par le solo et le moteur temps réel. 100+ tests unitaires et un harnais d'équilibrage multi-graines.
- Multijoueur temps réel (WebSocket/STOMP) : Versus 1v1 (envoi d'ennemis chez l'adversaire, aperçu live de sa grille) et Coop ; chat de match et tutoriel contextuel.
- Frontend Next.js / TypeScript + Phaser : 5 tours avec évolution et modes de ciblage, boss à capacités, paliers de bonus, classement par carte ; météo animée (pluie, grêle, crues, brume) et décor de saison trié en profondeur.
- Direction artistique : accueil animé en Canvas (ennemis en marche, tirs des tours, catapultes, météo de chaque saison), connexion sur un étendard qui se déroule, blason et charte unifiée sur tout le jeu.
- DevOps : Docker multi-stage, reverse-proxy Caddy, HTTPS Let's Encrypt auto-renouvelé, CI/CD GitHub Actions (déploiement auto sur mon VPS OVH à chaque push) et banc de performance de la scène de jeu.
En ligne sur kcd-formes.fr.
En cours : une version mobile.
Aperçu du projet





