dimanche 12 juillet 2026devblog

Apprendre à l'IA à vraiment faire des passes

Chaque coéquipier reçoit un pourcentage de réussite attendue, puis l'IA choisit comme un footballeur, pas comme un lancer de dés. Et le bug qui m'a appris ce que veut dire la possession.

Jour 27RÉFLÉCHIRPUIS PASSER

Mon IA a arrêté de taper dans le ballon et s'est mise à réfléchir.

Elle note désormais chaque option de passe en temps réel sur quatre critères : la distance (il y a une distance idéale, et les dégagements à l'aveugle comme les passes de deux mètres sont mal notés), si la ligne de passe est vraiment libre (mesuré géométriquement, pas deviné), l'espace dont dispose le receveur, et combien le ballon fait réellement progresser l'équipe. Elle anticipe aussi les appels, en notant l'endroit où le joueur sera. Il en sort un pourcentage de réussite attendue pour chaque option, et elle choisit la meilleure. Sur l'overlay de debug, c'est une ligne vers chaque coéquipier : verte si c'est bon, rouge si c'est non.

Elle s'engage aussi, maintenant. Elle s'arrête, se tourne vers le receveur et frappe, au lieu de balancer une passe à chaque image comme en pleine crise de panique. Vraie animation, le ballon part sur l'image du contact.

Puis les joueurs sans ballon ont eu droit au même traitement, à l'envers. Au lieu de noter à qui passer, un évaluateur de déplacements note où se placer : l'espace libre, une ligne de passe dégagée depuis le porteur, l'écart avec les coéquipiers. Les triangles de passes sont apparus tout seuls. Je n'ai écrit « fais un triangle » nulle part.

Le bug qui m'a le plus appris

Au fil d'un match, les joueurs finissaient lentement par s'agglutiner les uns sur les autres, et je ne voyais pas pourquoi. Puis j'ai compris : pendant qu'une passe est en l'air, le ballon n'a aucun propriétaire. Tous les coéquipiers basculaient en mode « ballon libre, le plus proche va presser », et toute l'équipe convergeait. À chaque passe.

La correction : une de nos passes en l'air compte toujours comme de la possession. La possession, ce n'est pas « quelqu'un a le ballon ». Ça inclut le ballon qui voyage entre deux de vos joueurs. Évident après coup. Ça m'a coûté une soirée.

Une dernière chose : les joueurs ont désormais un trait d'agressivité, de 0 à 1. Un joueur élevé se croit capable de vous dribbler et frappe de plus loin. Un joueur bas joue la sécurité et lâche le ballon tôt. Même code, personnalités différentes.

Livré : évaluateur de passes · évaluateur de déplacements sans ballon · trait d'agressivité

Cet article a été traduit de l'anglais avec l'aide de l'IA. Lire l'original