Minha IA parou de chutar e começou a pensar.
Agora ela pontua cada opção de passe em tempo real com base em quatro coisas: a distância (existe uma faixa ideal, e chutões na esperança e bicudas pontuam mal), se a linha de passe está realmente aberta (medido geometricamente, não no chute), quanto espaço o receptor tem e quanto a bola de fato avança no campo. Ela também joga na frente de quem está correndo, pontuando onde ele vai estar. Disso sai uma porcentagem de Sucesso Esperado para cada opção, e ela escolhe a melhor. No overlay de debug é uma linha para cada companheiro, verde para bom, vermelho para nem pensar.
Ela também se compromete agora. Firma o pé, vira para o receptor e toca, em vez de disparar um passe a cada quadro como se estivesse tendo um ataque de pânico. Animação de verdade, a bola sai no quadro do contato.
Depois, os jogadores sem a bola ganharam o mesmo tratamento ao contrário. Em vez de pontuar para quem passar, um Avaliador de Movimentação pontua onde ficar: espaço livre, uma linha limpa a partir de quem conduz, distância dos companheiros. Os triângulos de passe surgiram sozinhos. Eu não escrevi "forme um triângulo" em lugar nenhum.
Os jogadores iam se amontoando devagar uns em cima dos outros ao longo da partida e eu não entendia por quê. Aí caiu a ficha: enquanto um passe está no ar, a bola não tem dono. Todo companheiro caía em "bola solta, o mais próximo pressiona", e o time inteiro convergia. Em todo santo passe.
Solução: um passe nosso no ar continua contando como posse. Posse não é "alguém está com a bola". Inclui a bola viajando entre dois jogadores seus. Óbvio olhando para trás. Me custou uma noite.
Mais uma: os jogadores agora têm um atributo de Agressividade de 0 a 1. Alto, ele se garante para driblar você e chuta de mais longe. Baixo, joga seguro e passa cedo. Mesmo código, personalidades diferentes.
Entregue: avaliador de passes · avaliador de movimentação sem a bola · atributo de agressividade
Este post foi traduzido do inglês com auxílio de IA. Ler o original