Ссылка на оригинал — robertsspaceindustries.com/comm-link/transmission/14011-Arena-Commander-Patch-Update
Приветствую Граждане,
На прошлой неделе, мы писали о нашей процедуре решения проблем с задержками и rubber-banding («фризами», «телепортами»), встречающимися в данный момент в многопользовательских режимах Arena Commander. Как вы знаете, с обновлением 12.4 мы увеличили базу игроков в восемь раз. Это выявило множество непредвиденных проблем с игровым клиентом, серверами и инфраструктурой обработки данных, что стали очевидны лишь под выросшей игровой нагрузкой. Мы сильно продвинулись в решении этих вопросов и увидели значительные улучшения по всем трем фронтам, однако в настоящее время обновление не готово к запуску. Подобное тестирование является той самой причиной, почему мы приняли решение преследовать открытую модель разработки. Выявление такого рода проблем на столь ранних этапах приведет к существенному улучшению игрового опыта в дальнейшем, и увеличит нашу эффективность за счет выяснения ситуации с самого начала.
Обновление 12.5 инициирует добавление в Ангары нынешних подписчиков музыкального автомата, представленного чуть ниже по тексту. Таким образом, они смогут оживить свои ангары с помощью любимой музыки. Ваши музыкальные автоматы были приписаны к вашим учетным записям, но до появления обновления они не будут отображаться в Ангарах. Кроме того, в минувшем на этой неделе выпуске шоу «Around the Verse» мы говорили о новой таинственной угрозе от расы Vanduul, что уничтожает корабли Империи. Эта угроза будет добавлена вместе с обновлением 12.5, после чего Гражданам предлагается отправиться на охоту за ней!
Хотя сегодня обновления не предвидится, мы хотели бы поделиться, чем занимались до сих пор и как подходим к решению проблемы. Команда по контролю качества усердно трудятся над исследованием задержек, которые возникают на общедоступных серверах. Мы знаем, что это стало огромным разочарованием, и контроль качества бросил все свои силы на выявление и воспроизведение данной проблемы, чтобы инженеры могли исправить ошибки.
В многопользовательских режимах Arena Commander ваш клиент получает свежие данные от удаленных клиентов через сервер и в случае движения Комплексная Система Управления Полетом (КСУП) на вашей стороне фактически имитирует на основе этих данных физику каждого удаленного клиента, что вы видите. Затем ваш клиент передает обратно на сервер все данные о позициях и ориентации каждого удаленного клиента, которые он сымитировал. Сервер их авторитетно сверяет с собственными вычислениями и теми, что пришли с самих удаленных клиентов. Если обнаружатся расхождения в полученных цифрах, то сервер сообщит вашему клиенту, как сильно тот ошибся с имитацией удаленных клиентов и введет коррекцию в рассчитанную КСУП физику, дабы «подтолкнуть» наблюдаемые вами удаленные клиенты на их достоверные позиции. Если расхождение становится для КСУП слишком большим, то вместо аккуратного «подталкивания» удаленных клиентов оные переносятся на свои достоверные позиции и в дело снова вступает имитация. В ходе исследования данной проблемы в центре внимания всегда было выявление причины, по которой имитации удаленных клиентов для некоторых людей становились на сервере и самых удаленных клиентах иногда столь различными, что сервер был вынужден применять перенос.
Впервые мы исследовали потенциальные проблемы с игровыми северами, выполнив некоторую оптимизацию для балансировки нагрузки и уменьшив число серверов на физической машине с 8 до 2, что резко сократило сетевой трафик от каждой машины и снизило загрузку CPU, но не уменьшило наблюдаемых игроками задержек. Тем не менее, в итоге это мероприятие увеличило стабильность и свело к минимуму кадровые пики серверных CPU, что обычно улучшает для игроков производительность в целом.
Тогда мы подошли к ситуации со стороны клиента, создав контролируемое окружение, в котором никто не мог стрелять из какого-либо оружия или использовать любого рода ускорение, и затем стали постепенно наращивать число игроков. Заметив, что это не вызвало задержки, мы стали внедрять в матч больше переменных величин.
Оружейная стрельба без попадания по любым игрокам ошибку не вызывала, но стоило кораблям открыть огонь друг по другу, как внезапно возникала задержка с резво скачущими игроками. Мы были в состоянии воспроизвести данную задержку, однако должны были установить более конкретную причину, поэтому предприняли попытку ее уточнения.
При беседе с командой инженеров они предположили, что утечка энергии, вызываемая стрельбой из оружия и поглощением урона посредством щитов, может в свою очередь снижать количество доступной двигателям энергии. Вполне возможно, что в связи с задержкой или пиком нагрузки на CPU количество доступной двигателям энергии неправильно передавалось с удаленного клиента через сервер на вашу машину для учета при собственной имитации физики. Это могло приводить к нарушениям в синхронизации двигателей игроков, вызывая позиционные прыжки при выполнении хаотичных маневров. Впоследствии инженеры снабдят Контроль Качества версией игры, которая позволит нам лучше контролировать двигатели, чтобы мы могли точно определить проблему.
Как только мы отключили для двигателей все колебания энергии и включили для каждого из них максимум мощности, то все еще могли столкнуться с возникновением проблемы, хотя и реже. Данное тестирование выявило ошибку в том, что щиты потребляли энергию огромными скачками, и завершилось некоторыми улучшениями балансировки и повышением надежности кода.
Наша команда по работе с сетями исследовала проблемы с размерами пакетов и пропускной способностью. Кажется, их усилия также улучшили игровые впечатления и резко сократили размер пакетов и соответственно сетевой трафик, однако это решило проблему не полностью.
Одновременно с этим, мы внедрили некоторые дополнительные изменения в процесс протоколирования и хранения серверами информации. Сначала мы обнаружили, что определенные некритические ошибки забивали серверное протоколирование и вызывали падение производительности, которые могли привести к несоответствиям в имитации. Мы скорректировали настройку системы протоколирования, чтобы исключить спам, а также намерены полностью убрать из основного потока функцию протоколирования для уменьшения ее влияния. И снова, это вроде исправило проблемы, но не до конца. Это в свою очередь оказало положительный эффект на серверную стабильность и производительность.
Сегодня ночью мы сгенерируем сборку, которая внедрит изменения в метод, которым мы синхронизируем вычисления физики. Эти изменения помогут лучше согласовать физические такты на всех клиентах и сервере, должны существенно снизить влияние расхождений в имитации физики между клиентом, сервером и удаленным клиентом, а также предоставить нам более совершенные инструменты по нахождению и внесению исправлений без применения переноса.
Теперь, пока я пишу это, мы как раз обнаружили новую потенциальную проблему, которая может способствовать случаям плохой многопользовательской синхронизации, что связано с неправильной обработкой клиентских отключений. На протяжении выходных нам предстоит расследовать это.
Отличная новость в том, что даже когда мы преследовали перспективу, которая непосредственно не устраняет rubber-banding («фризы», «телепорты»), то все же пришли к улучшению игры. Работа, что войдет в обновление 12.5, заключается не только в исправлении этой конкретной проблемы, она направлена на комплексное улучшение впечатлений от модуля Arena Commander. Так же мы работали непосредственно над некоторыми другими исправлениями для обновления 12.5, которые должны принести больше стабильности в многопользовательские впечатления и исправить наблюдаемые сторонниками проблемы. Например:
- Присоединение к игре: В настоящее время при присоединении к серверу, передается огромный объем данных, который может привести к задержке и произвольной телепортации. Наши сетевые инженеры работают над способами сжатия указанных данных, которые должны уменьшить размер этих пакетов для присоединения на 40%.
- Попытки присоединения к заполненным серверам: Сервера в данный момент получают отметку о достижении предельного числа игроков с небольшим опозданием. Это означает, что при почти заполненном сервере и попытках любого числа игроков присоединиться, лишь один из них попадет в игру, тогда как остальных выкинет в ангар. С уходом игроков, сервер снова становится почти заполненным, и данная проблема может постоянно возникать на протяжении всего матча, а в сочетании с подключением игроков по высокоскоростной полосе, вызывать значительные задержки. Прямо сейчас наши серверные инженеры трудятся над решением этого.
- Выбрасывание в ангар: Наша, на данный момент вводимая в строй система передачи голоса через Интернет (VOIP) подключалась ко всем игрокам, но когда игрок внезапно покидал игру, не отключалась и вызывала в публичных матчах большую часть проблем вылета в ангар. Решение данной проблемы готово.
Благодарим вас за участие в процессах разработки и тестирования вместе с нами, ваши усилия по выявлению и систематизации данного рода проблем были весьма полезны и мы не смогли бы найти их все без вашей активной работы! Мы устраним эти многопользовательские проблемы в максимально сжатые сроки и с нетерпением ждем грядущего расширения тестирования модуля Arena Commander для всех Граждан как можно скорее. Как можно видеть проделано очень много работы, направленной на всестороннее улучшение многопользовательской игры, на клиентах, серверах и в инфраструктуре обработки данных. Мы считаем, что обновление 12.5 очень положительно скажется на игровых впечатлениях, как только будет готово. Мы сообщим о прогрессе на следующей неделе, и выпустим обновление 12.5, как только будем уверены, что оно привносит значительные улучшения в опыт сетевой игры Arena Commander.
0 комментариев