- Moteur dans
src/game/core/(World, GameEngine, Quadtree, CurveUtils, constants) - Entités dans
src/game/entities/— héritent toutes deBaseEntity→SteeringAgent - UI React dans
src/pages/etsrc/components/(.jsx) - p5.js en instance mode : toujours passer
pen premier argument des constructeurs
- ES modules (
import/export), pas de CommonJS - Pas de point-virgule
- Single quotes pour les strings
??pour les valeurs par défaut, pas||- Classes avec
constructor(p, config = {})pattern
- Les comportements retournent un vecteur force, jamais d'effet de bord
- Combinaison via
applyForce()puisintegrate()en fin deupdate() maxSpeedetmaxForcecontrôlent le véhicule, ne pas les contourner- Collision rigide (
resolveObstacleCollisions) séparée du steering
World.update(): physique, IA, collisions — jamais de rendu iciWorld.render(): dessin uniquement — jamais de logique ici- Les entités détruites (
isDestroyed) sont filtrées en fin d'update
laneGuides= points de contrôle (rendu avecsplineVertex)lanes= chemins interpolés Catmull-Rom (path following des minions)- Toujours garder les deux en sync via
smoothLanes()