hired geek (hideo) wrote in world_of_tanks,
hired geek
hideo
world_of_tanks

Причины лагов

Ниже приведена нудятина об устройстве сетевого уровня игры. Ни слова о бабах про то как кто-то завалил 5 ИСов на Т28.

Мне давно было любопытно насчет причин лагов в игре. Снял штук 10 дампов Wireshark-ом на протяжении двух месяцев, начиная с 0.3.3. Без фанатизма. Есть три вывода, был бы крайне признателен за критику или рацпредложения от более опытных камрадов.

Клиент работает с сервером поверх UDP, без участия TCP. Поэтому когда пакеты теряются (а это происходит иногда) то приложение должно перепослать данные - протоколу на это пофиг. Как приложение это делает - хз, это черный ящик, данный нам богом создателями движка - Bigmir - как есть, в виде ощущений. Тем не менее, мне видятся 3 вида лагов в игре (бывают как и по отдельности, так и вместе):

1. Высокий пинг (>200) без потерь пакетов в канале. Особых проблем нет, сложно выцеливать движущиеся танки вручную. Автоприцел выручает. Кстати, ЛТ, которые движутся рывками тут не причем - это издержки движка на данный момент.

2. Потеря пакетов и/или утечка памяти клиента. Было очень актуально для версии 0.4 (помогал выход или смена окна), сейчас почти ушло. Клиент тупил с ответами серверу.

3. Потеря пакетов и/или проблемы на сервере. Проблемы бывают вызваны как и просто перегрузкой, когда в игре около 7к человек, так и обменом векторами на конкретных картах.

Ситуации 2 и 3 приводят к задержкам реагирования танков на команды (телепортация, стрейф, отсутствие или задержка выстрела, звук раньше выстрела, столкновение с танком на расстоянии, итд...)

У кого есть какие идеи о вышесказанном? К сожалению, я не секу в игровых движках, но, по моему мнению, корень проблем в использовании только UDP как протокола - он конечно выгоднее для передачи данных, но всю заботу о ретрансмиссии несет само приложение, а этого бывает недостаточно.
Subscribe
  • Post a new comment

    Error

    Comments allowed for members only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 16 comments