Como funciona a assistência à frenagem de jogos de corrida de carros?


8

Existem muitos jogos de corrida de carros para PC em torno dos quais este assistente de direção exclusivo ajuda a frear o carro para que você possa ligá-lo com segurança. Enquanto em alguns jogos é apenas uma 'assistência', ele apenas ajuda o freio do carro, mas não garante uma curva segura. Enquanto em outros, a assistência à frenagem ajudará você a obter uma curva segura. Fiquei me perguntando o que poderia ser o algoritmo que é seguido para alcançá-lo.

Um algoritmo muito básico que eu conseguia pensar era,

  • Pré-determine a distância de frenagem de um carro ideal para cada curva da pista, dependendo do raio da curva, e comece a frear de acordo. Por exemplo, para uma curva menor que 90 o , o carro começaria a frear automaticamente a 50m de distância do início da curva.

Um algoritmo mais avançado, que garantiria uma curva segura, poderia ser

  1. Pré-determine a velocidade do carro no início de cada turno, individualmente para cada pista, turno e carro. Além disso, pré-determine a taxa de desaceleração de cada carro individualmente, o que varia devido ao desempenho do carro.
  2. A assistência de frenagem continuaria registrando a velocidade do carro em um determinado instante de tempo.
  3. Comece a frear o carro adequadamente, para que ele atinja a velocidade exata necessária no início da curva.
  4. Por exemplo, permita que a velocidade de um carro em particular no início de uma volta, 43m de raio, seja 120 km / h. Deixe a taxa de desaceleração do carro ser de 200 km / h 2 . Se, em algum instante, a velocidade do carro for 200 km / h, o carro começará a frear automaticamente a 400 m desde o início da curva.

2
Opções mais sofisticadas levariam em consideração o clima, a superfície da estrada, a distribuição de peso do carro, as características da suspensão e os pneus. Eu já vi jogos como o Real Racing 2, onde as opções de atualização modificam a suspensão e os pneus, e outros permitem o ajuste da suspensão. Um jogo com características persistentes do mundo pode levar em conta as porcarias acumuladas na estrada e a alteração do desgaste e da rigidez dos pneus à medida que aquecem.
Andy Dent

[parece que ainda não posso comentar, por isso posto isso como resposta] Além da segunda de Suas propostas, eu ajustaria esse algoritmo para frear um pouco demais, de modo que a velocidade no início do turno seja menor que a velocidade ideal . A intenção aqui é que o jogador descubra que ele pode dar a volta mais rapidamente sem sair da pista se não usar a assistência. Gostaria de incentivar o jogador a desativar as assistências, o que deve deixá-lo mais orgulhoso de si mesmo.
Grzegorz Sławecki

Algum algoritmo aqui seria visivelmente diferente do que controlar um oponente de IA?
rebocadores

Não é perceptível, mas sim, diferente em muitos aspectos. Você pode fazer a IA se mover em qualquer velocidade e ângulo e ainda causar uma impressão de movimento normalizada. Nesse caso, um personagem de IA pode girar mesmo nas velocidades de 160 km / h, mesmo que não seja possível, mas o primeiro algoritmo aqui não permitiria que um jogador fizesse isso. Mesmo para o segundo, o papel da assistência é levar o carro à velocidade ideal necessária no início da curva. Se um jogador planeja aumentar sua velocidade depois disso, ele não poderá virar.
Ayush Khemka

Respostas:


4

Fundamentalmente, a assistência à frenagem funciona comparando a velocidade do carro do jogador com a velocidade do ponto mais próximo na linha de corrida ideal da pista e aplicando automaticamente os freios, conforme necessário, para reduzir a velocidade do carro do jogador para coincidir com a velocidade especificada na linha de corrida ideal. É exatamente como escrever a IA do carro de corrida, mas apenas aplicando as saídas de freio da IA, não o acelerador ou a direção.

Isso (obviamente) exige que você tenha dados sobre uma linha de corrida ideal, para poder dizer quanto o jogador precisa desacelerar. Essa linha de corrida geralmente é gerada computacionalmente durante o desenvolvimento e é enviada com o jogo como um dado estático, em vez de ser calculado em tempo de execução. (Eu trabalhei em jogos que geravam dinamicamente uma linha de corrida na frente do jogador, mas isso era computacionalmente caro, e eu não o recomendo, a menos que você tenha faixas que mudam de maneiras imprevisíveis)


1

Você pode calcular o caminho que o carro descreveria se girar com a velocidade atual sem deriva. Em seguida, aplique os freios na proporção do d distante , que é a distância medida do caminho calculado até a curva.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.