Hoje à noite não foi divertido.
Alguns jogadores me disseram que a bola parecia estar "nos trilhos" no drible. Eles tinham razão. Estava, literalmente. O sistema antigo desligava a física e escrevia a posição da bola na frente do jogador a cada quadro.
Então reconstruí tudo do zero. Depois quebrei, várias vezes:
- Um lateral bateu no peito de um jogador e voou para fora do estádio.
- Os passes grudavam em quem passava e não iam a lugar nenhum.
- O jogador ultrapassava a bola.
- Depois a bola fugia do jogador.
- Não dava para driblar em círculo de jeito nenhum.
Agora está melhor. A bola é guiada por física de verdade, a condução é assistida e os giros escolhem animações diferentes de acordo com a força do corte.
Por que a abordagem "realista" falhou
Minha primeira reconstrução foi a que parece certa no papel: toques separados, um por passada, a bola rolando livre entre os toques. Como no futebol de verdade. Não funciona. Um toque é uma linha reta, então numa corrida em curva a bola sai pela tangente e você fisicamente não consegue driblar em círculo. E um valor fixo de "a bola sai a 1,2 vez a sua velocidade" também não funciona, porque o atrito desacelera a bola e não desacelera você. Ou ela se perde, ou você passa por ela. Não existe valor que resolva as duas coisas.
O que funcionou de verdade
Uma mola de velocidade puxando para um ponto de ancoragem à frente dos seus pés, guiada para onde você está direcionando, e não para onde já está se movendo. Ela corrige o desvio lateral, segura corridas em curva, e a bola continua totalmente física: quica, é dominada num passe, e um zagueiro pode tomá-la de você. No fim, "realista" e "parece certo" são problemas diferentes, e os grandes jogos de futebol resolveram isso décadas atrás com uma assistência que eu fui teimoso demais para usar desde o começo.
Onde ainda estou travado
A animação move o pé mais rápido do que a bola consegue acompanhar, então nos giros com a parte de dentro do pé a bola fica atrás da chuteira e só alcança quando a animação termina. Reescrevi essa peça quatro vezes hoje à noite. Suspeita atual: estou rastreando o osso do tornozelo, mas a bola na verdade encontra o peito do pé, o que significa que a solução real é um socket de contato de verdade na chuteira, não mais código. Problema para amanhã.
Essa é a parte do desenvolvimento de jogos sobre a qual ninguém posta. Uma mecânica, uma noite inteira, e a resposta honesta é "mais perto".
Entregue: drible guiado por física · condução assistida · escolha do giro pela força do corte
Este post foi traduzido do inglês com auxílio de IA. Ler o original