Un jeu « complet » ne veut pas dire « gros ». Il veut dire : une boucle de jeu claire, qui marche du début à la fin, sans bug bloquant, et publié. Mieux vaut un petit TD fini et jouable qu'un gros TD jamais terminé.
La boucle de jeu en une phrase (ex : « les ennemis suivent un chemin, j'achète des tours pour les tuer avant qu'ils atteignent ma base »).
✅ DANS le scope (ce que je vais VRAIMENT faire — 5-6 choses max)
❌ HORS scope (les idées tentantes que je m'interdis pour cette V1)
❓ Pourquoi ranger les waypoints dans un Folder plutôt qu'en vrac dans le Workspace ?
Humanoid. Pour le déplacer, on appelle Humanoid:MoveTo(position) vers chaque waypoint, l'un après l'autre. Quand il atteint la base, il inflige des dégâts et disparaît.❗ Obligatoire : explique avec tes mots comment l'ennemi sait où aller (le rôle de MoveTo et de la boucle sur les waypoints).
❓ Que se passe-t-il si la vie de la base tombe à 0 ? (note l'idée, on le codera au jalon 5)
task.wait) entre chacun. À chaque vague suivante : plus d'ennemis et/ou plus de vie. Un compteur de vague indique la progression.❓ À quoi sert task.wait() ici ? Que se passerait-il sans aucun délai entre les spawns ?
RemoteEvent prévient le serveur qui crée la tour (jamais le client directement !). Le tir : la tour cherche en boucle l'ennemi le plus proche dans son rayon (distance = .Magnitude) et lui inflige des dégâts avec un temps de recharge.❗ Important : pourquoi le placement doit-il être validé côté serveur et pas seulement côté client ? (pense à la triche)
❓ Comment la tour trouve-t-elle l'ennemi « le plus proche » ? (le rôle de la distance / .Magnitude)
leaderstats (un IntValue par joueur). On gagne à chaque ennemi tué, on paie pour chaque tour. L'équilibrage, c'est régler ces nombres pour que le jeu soit ni trop facile ni impossible.❓ Équilibrage : teste ta partie. Est-elle trop facile ou trop dure ? Quels nombres as-tu changés (vie ennemis, dégâts tour, prix, récompense) et pourquoi ?
ScreenGui) montre au joueur l'info clé : argent, vague actuelle, vie de la base. Le « polish » (sons, feedback, menu) transforme un prototype en jeu. Puis File → Publish to Roblox pour le mettre en ligne.Checklist de finition
- HUD à l'écran : argent, n° de vague, vie de la base
- Un menu de départ (bouton « Jouer »)
- Du feedback : son ou effet quand un ennemi meurt / la base est touchée
- Aucun bug bloquant sur une partie complète
- Jeu publié sur Roblox (visible en ligne)
- Testé par au moins 2 personnes + corrections faites
📷 Captures du jeu fini
🔗 Lien du jeu publié sur Roblox
❓ Bilan du projet : qu'est-ce que les testeurs ont dit ? Qu'as-tu corrigé ? Qu'ajouterais-tu dans une V2 ?
1. Décris la boucle de jeu complète de ton Tower Defense, du spawn d'un ennemi à sa mort.
2. Pourquoi le placement des tours et les dégâts sont gérés côté serveur ?
3. Comment un ennemi suit-il le chemin ? Et comment une tour choisit-elle sa cible ?
4. Cite 2 nombres que tu as réglés pour équilibrer le jeu, et l'effet de chacun.
5. Qu'est-ce qui a été le plus dur, et comment Claude Code t'a aidé à t'en sortir ?