Как предотвратить скачки положения в сетевой игре? - PullRequest
2 голосов
/ 26 апреля 2011

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

Я также был бы признателен за некоторые реализации, использующие .net (предпочтительно c #) по теме.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

интерполяция и экстраполяция - это то, на что вы должны обратить внимание. Взгляни на; http://en.wikipedia.org/wiki/Extrapolation

http://en.wikipedia.org/wiki/Interpolation

1 голос
/ 26 апреля 2011

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

...