О работе над патчем для Arena Commander

О работе над патчем для Arena Commander

О работе над патчем для Arena Commander

ScreenShot0030.jpg

 

 

Приветствую, Граждане!

 

На прошлой неделе мы написали о процессе решения проблем с лагами и "резинкой", которые сейчас имеются в многопользовательском режиме Arena Commander. Как вы знаете, с выпуском патча 12.4 мы увеличили количество игроков в восемь раз. Увеличившаяся нагрузка привела к различным проблемам с игровым клиентом, игровыми серверами и серверной инфраструктурой. У нас огромный прогресс в выявлении этих проблем и видны значительные улучшения по всем трём направлениям, но патч не готов к выпуску сегодня. Такой тип тестирования является именно той причиной, по которой мы решили продолжить открытую модель разработки. Открытие такого рода проблем на таком раннем этапе значительно улучшает игровой опыт в долгосрочной перспективе и изначально повышает эффективность нашей работы.

 

Jukebox.jpg

Патч 12.5 добавит музыкальный автомат, показанный выше, в ангары всех текущих подписчиков, так что вы сможете оживить свои ангары любимой музыкой. Наш музыкальный автомат был добавлен в ваши аккаунты, но не появится ангаре до выхода патча. Кроме того, в новом выпуске Вокруг вселенной (Around the Verse) мы рассказали о новой таинственной вандульской угрозе, уничтожающей корабли ОЗИ. Эта угроза будет добавлена с патчем 12.5, после чего Граждане смогут начать на неё охоту.

Поскольку сегодня патча не будет, мы хотели бы поделиться с вами тем, над чем мы работаем и как решаем проблемы. Команда QA (отдела контроля качества) усердно поработала, чтобы выяснить из-за чего возникает лаг на публичных серверах. Мы знаем, что это стало огромным разочарованием и поэтому QA бросили все свои силы на то чтобы локализовать и воспроизвести эту проблему, чтобы инженеры смогли решить её.

 

В многопользовательском режиме Arena Commander ваш клиент получает обновления от удалённых клиентов через сервер и в случае движения, ваш локальный клиентский IFCS фактически моделирует физику каждого удалённого клиента, которого вы видите, основываясь на этих обновлениях. Затем ваш клиент пересылает обратно на сервер все данные о позиции и ориентации для каждого удалённого клиента, поведение которого вы моделируете. Сервер авторитетно сверяет это со своими рассчётами и теми, что были присланы удалённым клиентам. Если есть расхождение в присланных данных, сервер сообщит об этом вашему клиенту, скорректирует физические расчёты локального IFCS и скорректирует полёт. Если расхождение будет слишком большим для того, чтобы сделать все мягко и аккуратно, то клиенты "телепортируются" в правильную позицию и симуляция начинается снова. Исследование нами данного вопроса вращалось вокруг случаев, когда данные от некоторых людей значительно различались с сервером, и другими клиентами, что приводило к "телепортам".

Сначала мы изучили потенциальные проблемы с игровыми серверами, проведя некоторые оптимизации балансировки нагрузки и снизив количество серверов на физических машинах с 8 до 2, что сильно уменьшило сетевой трафик с каждой машины и нагрузку на процессор, но не снизило лаг, который видели игроки. Тем не менее, это привело к увеличению стабильности и снижению нагрузки на процессор сервера, что в общем повысит производительность для всех игроков.

Затем мы подошли к ситуации с клиентской стороны, создав контролируемую среду в которой никто не стрелял ни из какого оружия и не ускорялся, а за тем начали постепенно увеличивать количество игроков. Заметив, что это не привело к появлению лага, мы начали добавлять в матч больше вариативности.

Стрельба из оружия без попадания по другим игрокам не вызывала проблем, но как только игроки начали стрелять друг в друга появлялся лаг у игроков вокруг. Мы могли воспроизвести этот лаг, но нам нужна была более точная причина, поэтому мы попытались вычленить её.

В беседе с командой инженеров, они предположили, что утечка мощности, вызванная стрельбой из оружия и поглощением ударов щитами, могла в свою очередь сократить доступную мощность маневровых двигателей. Возможно из-за лагов и пиковых загрузок CPU количество энергии, доступной для двигателей неправильно передавались с удалённого клиента через сервер на вашу машину, что влияло на физические расчёты. Это может привести к рассинхронизации информации о маневровые двигателях у пользователей, приводя к прыжкам при выполнении беспорядочных манёвров. Инженеры сделали для QA версию игры, которая позволяла лучше контролировать маневровые двигатели, так что мы смогли точно определить проблему.

Хотя мы отключили энергетические колебания в двигателях и дали максимум энергии на каждый из них, проблема осталась, хотя и возникала реже. Тестированию выявило вопрос потребления энергии щитами большими пиками и в результате мы улучшили баланс и оптимизировали код…

Наша сетевая команда изучала вопрос размера пакетов и пропускной способности. Их усилия так же улучшили гладкость игры и существенно сократили размер пакетов и таким образом сетевой трафик, однако это не решило проблему в целом.

Параллельно с этим мы ввели некоторые изменения в то, как сервера записывают логи и хранят информацию. Сначала мы обнаружили, что некоторые некритичные ошибки спамили сервера, вызывая падение производительности, которое могло привести к расхождению в моделировании. Чтобы избавиться от спама мы отрегулировали настройки системы создания логов, а так же собираемся вывести функцию логгирования из основного потока, уменьшая её влияние. Опять же, это улучшило ситуацию, но не исправило её полностью. Мы добились улучшения стабильности и производительности серверов.

Сегодня вечером мы сделаем сборку, которая внесёт изменения в способ синхронизации расчётов физики. Эти изменения помогут клиентам и серверам лучше синхронизировать физику, что должно значительно снизить расхождения между моделированием физики клиентом, сервером и удалённым клиентом, а так же дать нам лучшие инструменты чтобы обнаруживать и исправлять эти расхождения без "телепортации"

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

Хорошая новость в том, что пока мы шли по пути, который не пофиксил непосредственно "резинку", мы продолжали улучшать игру. Работа, проделанная для патча 12.5 не просто исправляет конкретную проблему, но в общем улучшает Arena Commander. Мы так же работаем и над некоторыми другими исправлениями для 12.5, которые должны привнести больше стабильности в работу мультиплеера и исправить некоторые проблемы, наблюдаемые игроками. А именно:

  • Подключение к игре: Сейчас, при подключении к серверу, передаётся большое количество данных, что может вызывать лаги и телепортацию. Наши сетевые инженеры работают над способами сжатия этих данных, что приведёт к уменьшению размера этих сетевых пакетов на 40%. Вы можете посмотреть текущее использование канала в приложенных графиках с данными (где это?).
  • Попытка подключения к переполненному серверу: Сейчас у серверов имеется небольшая задержка выставления пометки, что сервер заполнен. Это означает, что когда сервер почти заполнен может получиться так, что несколько игроков пытаются подключиться, один подключается, а остальных выбрасывает в ангар. Когда игроки уходят, сервер становится опять почти полным и эта проблема может происходить на протяжении всего матча. В сочетании с высокой пропускной способностью соединения игроков это приводит к серьёзному лагу. Наши серверные инженеры прямо сейчас работают над тем чтобы исправить это.
  • Выбрасывание в ангар: Наша ещё не внедрённая система VOIP соединяется со всеми игроками, но не разрывает соединение, когда игрок внезапно отвалился, что приводит к выбрасыванию в ангар. Мы исправили эту проблему.

 

Спасибо, что вовлечены в процесс разработки и тестирования вместе с нами. Ваши усилия по выявлению и каталогизации найденных проблемы были нам очень полезны и сами мы вряд ли бы их нашли. Мы исправим эти многопользовательские проблемы так быстро, как это возможно и с нетерпением ждём когда все Граждане смогут присоединиться к тестированию Arena Commander. Как вы видите, была проделана масса работы по улучшению многопользовательского режима во всех направлениях - от клиента до сервера, и до серверной инфраструктуры, и мы чувствуем, что патч 12.5 позволит значительно улучшить впечатления игроков, когда будет готов. На следующей неделе мы сообщим вам как идут дела и выпустим 12.5 как только убедимся, что он готов и предлагает массу улучшений игрового опыта многопользовательского режима Arena Commander.

 

Оригинал

Admin administrator