Derniere mise a jour : 9 fevrier 2026

Tower Defense

2024 Jeu Strategie

Presentation

Objectif principal : Faire un tower defense basique style les vieux jeux Flash. Des ennemis suivent un chemin, tu poses des tours pour les eliminer avant qu'ils atteignent la sortie.

Technologies utilisees : JavaScript avec Canvas pour le rendu. J'ai utilise un systeme de grille pour placer les tours et un pathfinding simple (les ennemis suivent des waypoints predéfinis).

Fonctionnalites cles : 3 types de tours (rapide/faible, lent/fort, zone), vagues d'ennemis avec des boss, amelioration des tours, systeme d'or gagne en tuant des ennemis.

Livrables attendus : Un jeu jouable avec au moins 10 vagues, un ecran de victoire/defaite, et une interface pour acheter et placer les tours.

Calendrier previsionnel : Deux semaines de dev. Le plus long c'etait d'equilibrer le jeu pour que ce soit ni trop facile ni impossible.

Parties prenantes & criteres de succes : Projet perso pour apprendre la gestion de plusieurs entites en meme temps et les patterns de jeu strategique.

Le Defi

Gerer beaucoup d'entites en meme temps sans que ca rame. Avec 50 ennemis et 20 tours qui tirent, ca fait beaucoup de calculs de distance et de collision par frame. Au debut le jeu descendait a 15 FPS.

La Solution

J'ai mis en place un systeme de spatial hashing : la map est divisee en cellules, chaque entite sait dans quelle cellule elle est. Une tour ne check que les ennemis de sa cellule et des cellules voisines, pas tous les ennemis de la map. Ca a tout change.

Architecture Technique

Classe Enemy avec HP, vitesse et position sur le chemin. Classe Tower avec portee, degats et cooldown. Classe Projectile pour les tirs. Un WaveManager qui spawn les ennemis selon un fichier de config. Le chemin est une liste de points, les ennemis interpolent entre chaque point.

Points Cles

  • Spatial hashing pour l'optimisation
  • 3 types de tours ameliorables
  • Systeme de vagues avec boss

Apercu

Resultats & Apprentissages

Le jeu tourne a 60 FPS meme avec plein d'entites. J'ai appris l'importance de l'optimisation et du game design (equilibrer les tours pour qu'aucune soit inutile). Le spatial hashing c'est une technique que je reutiliserai.

Evolutions Futures

Ajouter plus de maps avec des chemins differents. Un mode endless. Des ennemis avec des capacites speciales (immunite aux tours de zone, regeneration). Un systeme de sauvegarde de progression.

Retour aux projets Me contacter