Cadrer et couper
Chaque mod que j'ai sorti a commencé plus petit que l'idée dans ma tête. Pour Street Riders, la première version, c'était un seul PNJ qui faisait une roue arrière devant moi. Le reste est venu après, un incrément à la fois.
L'erreur du débutant, c'est l'inverse : tu écris le mod de rêve, tu ouvres l'éditeur, et tu essaies de tout construire d'un coup. Trois jours plus tard tu as un demi-système de spawn, un demi-menu, rien qui tourne, et aucune idée d'où est le bug. L'erreur s'est faite des jours plus tôt, quand tu as choisi le périmètre.
Cette leçon parle de découper ton idée en une pile d'incréments où chaque incrément est jouable seul, et de la discipline plus dure : choisir ce que tu ne construiras pas encore.
Chaque incrément doit tourner
Un incrément est une version du mod que tu peux lancer et regarder. Une tâche comme « écrire la fonction de spawn » est un morceau, et un morceau ne tourne jamais seul. Si tu ne peux pas appuyer sur une touche et voir quelque chose se produire, il s'agit d'un fragment inachevé.
Compare les deux façons de découper la même fonctionnalité :
- Penser en fragments : « le code de spawn », « le code d'état », « le code de nettoyage ». Aucun ne tourne seul. Tu ne sais s'ils marchent qu'une fois les trois finis, c'est-à-dire au moment où un bug est particulièrement dur à localiser.
- Penser en incréments : « un acteur apparaît devant moi », « l'acteur a maintenant une phase visible à l'écran », « l'acteur se nettoie quand je m'éloigne ». Chacun tourne. Chacun est testable dès que tu le finis.
Découpé ainsi, un mod n'est pas un gros bloc de code. C'est une pile d'incréments jouables, du premier acteur qui apparaît jusqu'à la scène entière commandée par un menu.
Découper une rencontre de rue en incréments
Prends le pitch d'un mod de rencontre de rue : un coin de rue s'anime, un rival s'approche, te pousse, dégaine, le combat éclate, les badauds paniquent, puis tout retombe. C'est beaucoup trop pour une seule séance. Donc on découpe, et chaque coupe est un incrément qui tourne :
- un acteur apparaît là où je suis
- l'acteur attend sur le coin avec une animation d'attente
- un rival hostile apparaît et les deux peuvent se battre
- l'acteur gagne une phase visible : calme, alerte, engagé
- j'ai des touches de debug pour forcer et observer la scène
- la phase devient une vraie machine à états
- la machine est testée hors du jeu
- le monde réagit : les badauds fuient, le nettoyage est garanti
- un menu déclenche et commande le tout
Remarque ce que chaque ligne a en commun : tu peux lancer le jeu et juger. C'est ça, le test d'une bonne coupe.
Décider ce que tu ne construiras pas
Couper le périmètre, c'est facile à dire et dur à faire, parce que couper veut dire dire non à des morceaux de ta propre idée. Fais-le exprès, par écrit.
Pour cette rencontre, les coupes honnêtes sont :
- pas de gang de motards qui arrive en formation, juste la confrontation
- pas de système d'économie ni de possession de territoire
- pas de dialogue à embranchements, la confrontation est une courte chaîne fixe
- pas d'animations customs créées de zéro, seulement des clips que le jeu embarque déjà
Écrire les coupes fait deux choses. Ça protège les incréments que tu as gardés de gonfler, et ça te donne un backlog pour plus tard sans encombrer la version que tu construis maintenant.
La coupe est la raison pour laquelle le mod sort un jour.
Ensuite, tu vérifies que le jeu peut faire tout ce que tes incréments lui demandent : pour chaque incrément, les natives, les animations et les modèles nécessaires doivent exister. Tu confirmes avant de t'engager.