Внедрить компенсацию задержки сети сложно, как этого избежать?
Может быть, можно использовать трюки и создавать игровую механику таким образом, чтобы лаги воспринимались как некритические или даже как естественные части игры?
Что это за техника и существуют ли какие-либо игры (MMORPG, Strategies, ...), которые используют такую технику?
ОБНОВИТЬ:
Пошаговые игры не требуют компенсации задержки, но было бы интересно увидеть подходы в реальном времени (или просто впечатление от реального времени, важная часть - пользователь не должен быть заблокирован и вынужден ждать).
Основная причина, по которой я избегаю компенсации отставания, - это простота.
Ответы:
Обычно клиент реализует своего рода обратную связь, чтобы игрок сразу знал, что выбранное действие было зарегистрировано, например:
Это может происходить, пока информация перемещается на сервер, поэтому игрок не осознает, что его действие еще не началось. Пока сервер отвечает быстро и действие начинается в ближайшее время, игрок может не заметить задержку.
Эти приемы работают в играх, где вводимые игроками данные довольно редки, и поэтому количество времени, которое вы тратите на ожидание вступления в силу эффекта, составляет относительно небольшую долю от общего времени, проведенного за игрой. Поэтому вы хотели бы найти способы структурировать игру так, чтобы игрок делал меньше входных данных. Вероятно, это означает, что действия игрока должны быть более абстрактными, а игра должна реализовывать поведение низкого уровня. Примеры:
источник
Случайные мысли:
Так что да, много обманывают.
источник
Ответ довольно прост - просто создавайте игры, в которых нет критических по времени разделов. Вы пытаетесь избежать реализации этих типов интерполяции по определенной причине, я так понимаю, это означает, что вы не беспокоитесь о хитром и быстром игровом процессе. Это вполне приемлемо для многих игр, включая Civilization (стратегическая игра). Тем не менее, понимают , что это не приемлемо для РЕАЛЬНОГО ВРЕМЕНИ стратегии игры , где вам нужно проездом много данных по сети с переменной тайминги. Если вы хотите создать игру в сети с очень высокой задержкой, учтите следующее:
Я надеюсь, что это поможет хоть немного; без знания ваших точных игровых идей это сложно. Я предполагаю, что у вас есть причины желать создать свою игру по такой схеме (простота, экономия полосы пропускания, снижение сложности сети)
источник
Вы также можете сделать лаги частью своего игрового процесса ради "реализма". Скажем, ваши игроки должны контролировать некоторых роботов на расстоянии, вы можете сделать так, чтобы задержка составляла не менее 500 мс или 1 с (вам нужно было бы реализовать некоторую динамическую систему заполнения лагов).
источник
Это также хороший трюк, чтобы просто скрыть действия игроков. Многие игры FPS делают именно это. Они не показывают никаких визуальных эффектов большинства пуль, только звуки воспроизводятся, и вы получаете результат в виде урона, нанесенного игрокам.
Я играл в некоторые игры FPS, в которых высокоточное оружие (снайперы и т. Д.) Имело очень четкие визуальные эффекты, и вы могли фактически видеть, что другой игрок стрелял позади вас, но из-за компенсации задержки вы были убиты.
источник