Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Плавное движение в играх 
V
    Опции темы
jhonyxakep
Дата 12.10.2016, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Divide Et Impera
**


Профиль
Группа: Участник
Сообщений: 983
Регистрация: 7.4.2009
Где: Что, Когда?

Репутация: нет
Всего: 8



Привет всем.

Есть  некая игра, в которой я реализую мультиплеер. Поскольку работа сети далека от идеала требуется сихнронизировать видимых ботов у игрока (авто) с реальными соперниками. На данный момент я передаю от соперников все данные о положении, при этом реально использую на автомобиле-боте только скорость, а позицию и углы поворота синхронизирую только при большом расхождении.
К сожалению на маленьких скоростях такой метод почти не работает, потому, что именно в это время угол поворота машины игрока меняется чаще всего, поэтому в такие моменты позиция соперника и угол поворота сихнронизируются каждый пакет данных.

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

Был бы рад услышать варианты решения этой проблемы, спасибо.
PM MAIL ICQ   Вверх
Курсант
Дата 18.1.2017, 12:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Можно передавать данные об управляющих воздействиях, которые отправляет пользователь (пользователь - самое медленное устройство), и положения автомобилей вычислять на обоих компьютерах. У Вас ведь есть физический движок. ИМХО, это будет самый точный способ. Только надо пересылать управляющие воздействия и моменты времени, когда они сделаны, чтобы синхронизировать реакции. Такое вот ИМХО.
PM ICQ Skype   Вверх
jhonyxakep
Дата 18.1.2017, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Divide Et Impera
**


Профиль
Группа: Участник
Сообщений: 983
Регистрация: 7.4.2009
Где: Что, Когда?

Репутация: нет
Всего: 8



Цитата(Курсант @  18.1.2017,  12:19 Найти цитируемый пост)
Можно передавать данные об управляющих воздействиях, которые отправляет пользователь (пользователь - самое медленное устройство), и положения автомобилей вычислять на обоих компьютерах. У Вас ведь есть физический движок. ИМХО, это будет самый точный способ. Только надо пересылать управляющие воздействия и моменты времени, когда они сделаны, чтобы синхронизировать реакции. Такое вот ИМХО. 


Спасибо за ответ, думал форум уже канул в небытие.

С тех пор решил эту проблему разными способами синхронизации при разных скоростях, и усреднением значений позиций авто при сильном расхождении между позицией получившийся в результате симуляции физики и позиции от другого клиента. Обычно этого хватает для почти незаметной корректировки, если нет значительных лагов.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0941 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.