Играя в GTA III на Android, я заметил кое-что, что раздражало меня почти во всех гоночных играх, в которые я играл (может быть, за исключением Mario Kart): ехать прямо вперед легко, но кривые очень сложны. Когда я меняю полосу движения или проезжаю мимо кого-то, машина начинает поворачиваться взад-вперед, и любая попытка исправить это только усугубляет ситуацию. Единственное, что я могу сделать, это нажать на тормоза. Я думаю, что это какая-то перегрузка.
То, что делает это настолько раздражающим, - то, что это никогда не случается со мной в реальной жизни (слава богу :-)), таким образом, 90% игр с транспортными средствами внутри кажутся мне нереальными (несмотря на то, что, вероятно, имеют действительно хорошие физические движки). Я говорил об этом с парой людей, и кажется, что вы либо «получаете» гоночные игры, либо нет. С большой практикой мне удавалось добиться полуготовности в некоторых играх (например, из серии «Необходимость в скорости»), очень осторожно ездя, много тормозя (и обычно у меня болят пальцы).
Что вы можете сделать как разработчик игры, чтобы предотвратить катастрофическую резонансную катастрофу и сделать так, чтобы чувство вождения было правильным? (Для казуальной гоночной игры, которая не стремится к 100% реалистичной физике)
Мне также интересно, какие игры, такие как Super Mario Kart, делают по-другому, чтобы у них не было слишком большого перегиба?
Я полагаю, что одна проблема заключается в том, что если вы играете с клавиатуры или сенсорного экрана (но не с колесами и педалями), у вас есть только цифровой вход: нажатие газа или нет, рулевое управление влево / вправо или нет, и гораздо сложнее управлять соответствующим образом для заданная скорость. Другое дело, что у вас, вероятно, нет хорошего ощущения скорости, и вы едете намного быстрее, чем вы (безопасно) в реальности. На мой взгляд, одним из решений может быть изменение скорости рулевого управления.
Ответы:
Одним из решений было бы немного обмануть и угадать, что игрок хочет сделать. Когда игрок находится на прямом участке и нажимает влево, можно предположить, что он хочет сменить полосу движения. Когда он приближается к кривой или перекрестку, он, безусловно, хочет повернуть. Игрок не может контролировать свой точный угол поворота на кривой, так что вы можете решить, дать ли игроку преимущество сомнения и всегда позволять ему проезжать кривые под идеальным углом, когда он нажимает кнопку поворота в нужный момент (до тех пор, пока настолько физически, насколько это возможно - любой игрок, который пытается проехать по кривой со шпилькой со скоростью 200 км / ч, заслуживает наказания коротким полетом по траве).
Это, конечно, может быть сложно, когда игрок на самом деле хочет развернуться на прямом участке или на самом деле хочет поменять полосы перед перекрестком.
Другое решение состоит в том, чтобы иметь разницу между нажатием клавиши и удержанием клавиши. Чем дольше игрок держит клавишу поворота, тем выше угол поворота. Это даже не кажется нереальным, потому что когда у вас есть руль, вам нужно время, чтобы повернуть его полностью.
Редактировать: на сенсорном экране вы можете использовать ползунки вместо кнопок для управления рулевым управлением и скоростью аналоговым способом. Когда экран чувствителен к давлению, вы также можете интерпретировать давление (но дать визуальную обратную связь о максимальном давлении, или чрезмерно усердные игроки могут сломать свои дисплеи). Когда устройство имеет датчики ориентации, вы можете использовать устройство наклона для управления рулем.
источник
Я сталкивался с этим (старым) вопросом, исследуя то, что реализовали другие игры, кроме Grand Theft Auto IV и V, но у меня есть достойный ответ для достижения контролируемой избыточной поворачиваемости. У меня есть только некоторый опыт работы с моделью вождения в Grand Theft Auto V, но эта информация должна быть применима к большинству реалистичных моделей вождения.
В большинстве игр для вождения, похоже, происходит то, что выход рулевого управления автомобиля напрямую связан с входом игрока - даже если используется какое-то (временное) сглаживание. Это вызывает вялое чувство или дрожание - и машина не исправляет себя после того, как отпустила управление. Это в отличие от реального автомобиля, где автомобиль стремится центрироваться после освобождения силы на колесе. Некоторые игры пытаются исправить это, изменяя свою модель обработки или используя модели аркадной обработки.
Что можно увидеть в Grand Theft Auto V, так это то, что пользовательский ввод рулевого управления напрямую не связан с выходом рулевого управления. Транспортное средство движется само по себе, к его текущему вектору скорости. Это видно при форсировании ситуации с небольшим избыточным поворотом и наблюдении за управляемыми колесами - без какого-либо вмешательства они сами поворачиваются. Любой пользовательский ввод затем добавляется поверх этих «естественных» исправлений.
Недостатком этого подхода является то, что автомобиль чувствует себя слишком липким и несколько упрямым, чтобы попасть в пауэрлифтинг или дрейф, так что значение встречной поворачиваемости может быть ограничено некоторым углом.
Эту теорию можно проверить, повторно внедрив систему рулевого управления и сравнив ее с исходным поведением.
Следует помнить, что Grand Theft Auto V была выбрана здесь как «идеальная», хотя мне еще предстоит найти какую-либо другую игру, в которой реализована эта система.
Если вам интересно какой-то код, вот фрагмент моей реализации.
источник