Как помогает торможение в автомобильных гоночных играх?


8

Существует множество компьютерных гоночных игр, в которых есть этот уникальный помощник вождения, который помогает тормозить ваш автомобиль, чтобы вы могли безопасно повернуть его. Хотя в некоторых играх это просто «помощь», он просто поможет вашему автомобилю затормозить, но не обеспечит безопасный поворот. В то время как в других, помощь торможения поможет вам сделать безопасный поворот. Мне было интересно, каким может быть алгоритм, который используется для его достижения.

Очень простой алгоритм, который я мог придумать, был

  • Заранее определите тормозной путь идеального автомобиля для каждого поворота колеи в зависимости от радиуса поворота, а затем начните соответствующее торможение. Например, при повороте менее 90 o автомобиль автоматически начнет торможение на расстоянии 50 м от начала поворота.

Более продвинутый алгоритм, который обеспечит безопасный поворот, может быть

  1. Предварительно определите скорость автомобиля в начале каждого поворота, индивидуально для каждой трассы, поворота и автомобиля. Кроме того, заранее определите скорость замедления каждого автомобиля в отдельности, которая зависит от характеристик автомобиля.
  2. Помощник при торможении будет фиксировать скорость автомобиля в определенный момент времени.
  3. Начните торможение автомобиля соответствующим образом, чтобы в начале поворота он достиг необходимой скорости.
  4. Например, пусть скорость конкретного автомобиля в начале поворота на радиусе 43 м составляет 120 км / ч. Пусть скорость замедления автомобиля составляет 200 км / ч 2 . Если в какой-то момент скорость автомобиля составит 200 км / ч, то автомобиль автоматически начнет торможение на расстоянии 400 м от начала поворота.

2
Более сложные варианты будут учитывать погоду, дорожное покрытие, распределение веса автомобиля, характеристики подвески и шин. Я видел такие игры, как Real Racing 2, где опции апгрейда изменяют подвеску и шины, а некоторые другие позволяют настраивать подвеску. Игра с постоянными мировыми характеристиками может учитывать накопившуюся хрень на дороге и изменение износа и жесткости шин по мере их прогрева.
Энди Дент

[кажется, я пока не могу комментировать, поэтому я публикую это как ответ]. В дополнение ко второму из Ваших предложений я бы настроил этот алгоритм так, чтобы он слишком сильно тормозил, чтобы скорость в начале поворота была ниже оптимальной скорости. , Смысл в том, чтобы игрок обнаружил, что он может сделать ход быстрее, не сбившись с пути, если он не использует помощь. Я хотел бы призвать игрока отключить помощь, которая заставит его больше гордиться собой.
Гжегож Славецкий

Будет ли какой-нибудь алгоритм здесь заметно отличаться от управления искусственным противником?
буксиры

Не заметно, но да, отличается во многих аспектах. Вы можете заставить ИИ двигаться с любой скоростью и под любым углом и при этом создавать впечатление нормализованного движения. В этом случае ИИ-персонаж может поворачиваться даже на скорости 160 км / ч, даже если это невозможно, но первый алгоритм здесь не позволит игроку сделать это. Даже для второго роль помощника - разогнать автомобиль до оптимальной скорости, необходимой в начале поворота. Если игрок планирует увеличить свою скорость после этого, он не сможет повернуть.
Аюш Хемка

Ответы:


4

По сути, система помощи при торможении сравнивает скорость автомобиля игрока со скоростью ближайшей точки на оптимальной гоночной трассе и автоматически применяет тормоза по мере необходимости, чтобы снизить скорость автомобиля игрока до скорости, указанной на оптимальной гоночной трассе. Это похоже на написание AI гоночного автомобиля, но только с использованием выходов тормоза AI, а не на акселератор или рулевое управление.

Это (очевидно) требует, чтобы у вас были данные об оптимальной гоночной трассе, чтобы вы могли сказать, сколько игрок должен замедлить. Эта гоночная линия обычно генерируется вычислительным путем в процессе разработки и поставляется с игрой в виде фрагмента статических данных, а не рассчитывается во время выполнения. (Я работал над играми, которые динамически генерировали гоночную линию перед игроком, но это было вычислительно дорого, и я не рекомендую его, если у вас нет треков, которые изменяются непредсказуемым образом)


1

Вы могли бы рассчитать путь, который автомобиль описал бы, если бы он поворачивал с текущей скоростью, не дрейфуя. Затем примените тормоза пропорционально дистанции d , которая является расстоянием, измеренным от рассчитанного пути до кривой.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.