Как бороться с задержкой в ​​разработке игр? - PullRequest
4 голосов
/ 23 февраля 2011

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

Я пытаюсь сделать пользовательский контроль как можно более плавным, и задержка мешает.

Я считаю, что средняя задержка может составлять около 80-200 мс, а для практически плавного управления задержка командного действия должна быть менее 100 мс.

У меня есть несколько вопросов:

  • Будет ли хорошей практикой попытаться отправить действия пользователя за 100 мс до требуемого ? например Пользователь нажимает клавишу со стрелкой «->», я отправляю действие со стрелкой вправо за 100 мс до того, как действие должно быть отправлено на сервер.

  • Как разработчики поддерживают согласованность / синхронизацию между тем, что происходит на онлайн-сервере и на клиенте?

  • Любые советы или рекомендации?


Спасибо, ребята, помощь будет очень цениться. :)

Ответы [ 2 ]

5 голосов
/ 23 февраля 2011

Вопрос 1) Да, но если вы делаете такое движение в реальном времени, я бы рассмотрел его рендеринг локально (с использованием обнаружения столкновений и т. Д.), А затем проверку на сервере, чтобы убедиться, что они его не обманули (т.е.обновляйте позицию на сервере каждую секунду и убедитесь, что они могли перейти от A к B за одну секунду и т. д.)

Вопрос 2) Время от времени (четверть, половина, полная секунда) вы отправляетепакет с обновлениями окружения о том, что делали другие игроки и что делал npcs и т. д.

Вопрос 3) Разработайте профиль.Сделайте так, как вы хотите, чтобы логически.Затем, если вы обнаружите, что играбельность слишком запаздывает, поработайте над оптимизацией интерфейса и сетевого уровня.Вы можете найти это просто отлично!

1 голос
/ 23 февраля 2011

Одной из важных вещей является загрузка ресурсов при необходимости. То есть в большинстве трехмерных «движущихся» игр ресурсы загружаются по мере приближения к нуждающимся в них объектам.

...