Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Проблема запаздывания в сетевой игре.

Проблема запаздывания в сетевой игре.

Поделиться
izgУдалёнwww25 июня 201022:49#0
Сегодня написал небольшую игру, где можно по сети вдвоем на карте бегать.
Внезапно возникла проблема - сервер не может передавать координаты спрайтов со скоростью ФПС, поэтому будет или отставание, или рывки.
Как в таких играх обычно решают проблему плавности? Что почитать на эту тему?
Black PhoenixПостоялецwww25 июня 201022:51#1
Запихивают игровое состояние в кадр, и держат несколько кадров. Рисуй только 3ий кадр (например), что-бы следущие 3 игровых кадра (0, 1, 2) были постоянно невидимы пользователю.

Теперь привяжи сервер и клиент к номеру кадра, и всякие неровности можно будет сгладить (а пропущеные кадры - интерполировать). Пока эти флуктуации происходят в ещё невидимых, их видно не будет.

BUzerУчастникwww26 июня 20104:40#2
izg
> сервер не может передавать координаты спрайтов со скоростью ФПС
Передавай реже, с каким-нибудь фиксированным интервалом. На клиенте для плавности делай экстраполяцию.
Используй UDP, и не шли больше информации, чем нужно клиенту (например, не шли заведомо невидимое)
KlounПостоялецwww26 июня 201014:07#3
kolobokspbПостоялецwww27 июня 20107:12#4
у меня не геймдев. но я дополнительно к позиции и ориентации ещё и скорости передаю. линейную и ангулярную, а потом вычисляю.

/ Форум / Программирование игр / Общее

Тема в архиве.

2001—2017 © GameDev.ru — Разработка игр