Hay muchos juegos de carreras de autos para PC que tienen esta asistencia de conducción única que ayuda a frenar su automóvil para que pueda girarlo con seguridad. Si bien en algunos juegos es solo una "asistencia", solo ayudará a frenar su automóvil, pero no garantizará un giro seguro. Mientras que en otros, la asistencia de frenado lo ayudará a obtener un giro seguro. Me preguntaba cuál podría ser el algoritmo que se sigue para lograrlo.
Un algoritmo muy básico que se me ocurrió fue,
- Predetermine la distancia de frenado de un automóvil ideal para cada giro de la pista, dependiendo del radio del giro, y luego comience a frenar el automóvil en consecuencia. Por ejemplo, para un turno de menos de 90 o , el automóvil comenzará a frenar automáticamente a 50 metros de distancia desde el inicio del giro.
Un algoritmo más avanzado, que garantizaría un giro seguro, podría ser
- Predetermine la velocidad del automóvil al comienzo de cada giro, individualmente para cada pista, giro y automóvil. Además, determine previamente la tasa de desaceleración de cada automóvil individualmente, que varía según el rendimiento del automóvil.
- La asistencia de frenado seguiría registrando la velocidad del automóvil en un determinado instante de tiempo.
- Comience a frenar el automóvil apropiadamente para que el automóvil alcance la velocidad exacta necesaria al comienzo del giro.
- Por ejemplo, deje que la velocidad de un automóvil en particular al comienzo de un giro de 43 m en radio sea de 120 km / h. Deje que la velocidad de desaceleración del automóvil sea de 200 km / h 2 . Si, en algún momento, la velocidad del automóvil es de 200 km / h, entonces el automóvil comenzará a frenar automáticamente a 400 m desde el comienzo del giro.
Respuestas:
Básicamente, la asistencia de frenado funciona comparando la velocidad del auto del jugador con la velocidad del punto más cercano en la línea de carrera óptima de la pista, y aplicando automáticamente los frenos según sea necesario para reducir la velocidad del auto del jugador para que coincida con la velocidad especificada en la línea de carrera óptima. Es exactamente como escribir AI de un coche de carreras, pero solo aplica las salidas de freno de la IA, no el acelerador o la dirección.
Esto (obviamente) requiere que tengas datos sobre una línea de carrera óptima, para que puedas saber cuánto necesita frenar el jugador. Esta línea de carreras generalmente se genera computacionalmente durante el desarrollo, y se envía con el juego como una pieza de datos estáticos, en lugar de calcularse en tiempo de ejecución. (He trabajado en juegos que generaron dinámicamente una línea de carreras frente al jugador, pero esto era computacionalmente costoso, y no lo recomiendo a menos que tenga pistas que cambien de maneras impredecibles)
fuente
Podría calcular la ruta que el automóvil describiría si gira con la velocidad actual sin deriva. Luego aplique los frenos en proporción a la distancia d , que es la distancia medida desde la ruta calculada hasta la curva.
fuente