WORLD OF WARCRAFT

Тема: Разработчики в деталях рассказали о технических проблемах на запуске Dragonflight  (Прочитано 4248 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Wishko

  • Модератор
  • Легенда
  • *
  • Сообщений: 54771



Запуск дополнения Dragonflight выдался далеко не самым стабильным, и в момент его выхода многие игроки столкнулись с различными техническими неполадками, что не только не позволили им войти в игру и попасть на Драконьи острова, но и привели к большим задержкам в ее работе нового континента в течение суток. Разработчики опубликовали сообщение, в котором детально рассказали о возникших на запуске дополнения неполадках и их решении. Виной всему – одна небольшая логическая ошибка и пара новых подходов к выпуску контента, которые в полной мере впервые были опробованы в Dragonflight.:cut: Пересказали заметку:
  • В эти дни запуск дополнения для World of Warcraft является длительным процессом из нескольких небольших запусков, а не одномоментным событием, как раньше. Сначала выпускается код, поддерживающий работу старого контента, затем активируются новые системы и начинаются предварительные события, а затем в день выхода дополнения появляются новые локации, задания и подземелья. Все это представляет из себя большую сложную систему и на каждом этапе что-то может пойти не так, что потребует исправлений.
  • Запуск Dragonflight в некоторых аспектах был в новинку. В частности, дополнение впервые запускалось по отложенному таймеру, когда разом автоматически становится доступно много разных вещей, а не вручную (поскольку такой метод повышает риск неполадок как в плане человеческих ошибок, так и внутренних или внешних задержек). Также в дополнении впервые было настолько большое количество зашифрованных материалов, в частности роликов, озвучки, заданий и прочих важных сюжетных вещей, которые разработчики решили спрятать от датамайнеров, чтобы игроки увидели их не раньше чем в нужный момент времени.
  • Комбинация двух этих новинок, а также небольшая логическая ошибка в коде привели к проблемам на запуске: ответственным за перемещение существ и персонажей серверам приходилось постоянно проводить масштабные вычисления того, что игроки уже могут видеть, а что еще должно оставаться зашифрованным, в результате чего те пошли в отказ, а вместе с ними и другие системы и функции. Именно поэтому пользователи столкнулись с ошибкой "Сервер недоступен" при попытке войти в игру сначала, а затем длительными задержками.
  • Готовясь к запуску, разработчики создали несколько экстренных мер на случай, если что-то пойдет не так, и одной из них были порталы прямиком на Драконьи острова. В момент запуска разработчики зашли своими персонажами, чтобы понаблюдать за событиями из игры, а также вели наблюдения за производительностью игры на других экранах. Когда начали возникать проблемы и не все игроки заканчивали перемещение с помощью дирижабля или корабля на Драконьих островах, они сначала посчитали, что виной тому как раз система транспорта, ведь раньше такое уже бывало, поэтому включили порталы, но поскольку проблема была в другом, это лишь ухудшило ситуацию, увеличив число запросов, и еще сильнее повысило нагрузку, поэтому их почти сразу выключили обратно.
  • После этого началось внимательное рассмотрение проблем, изучение наиболее вероятных вариантов и отбрасывание тех, которые точно с ними не связаны. Игра вела себя совсем не так, как было на предыдущем стресс-тесте и пришлось серьезно углубиться в проблему, поэтому понять в общих чертах, в чем беда, удалось лишь примерно через полдня. Часть разработчиков осталась на ночь на работе, а часть ушла на отдых, чтобы с утра вернуться со свежими силами.
  • Через несколько часов игроков стало меньше и нагрузка спала, но сервера стали работать гораздо медленнее, из-за чего все же попавшие на Драконьи острова персонажи начали сталкиваться с чрезвычайно большими задержками в работе существ, персонажей, загрузкой файлов и прочих моментов, а рассылка срочных исправлений стала занимать очень большое время.
  • Расследование продолжилось и разработчики обратились к менее очевидным вещам, изучив в том числе новую систему шифрования контента, и наконец поняли, что дело именно в ней. Корень проблемы был обнаружен и автор участка кода с ошибкой смог отыскать и исправить ее. Далее начался процесс рассылки исправления, который требовалось провести постепенно, чтобы не привести к новым проблемам, ведь требовалось изменение файлов в клиенте. Также в итоге потребовалась перезагрузка игровых миров, которую нужно было сделать при наименьшем числе игроков, чтобы затронуть как можно меньше людей. В итоге завершить ввод исправлений удалось только к утру среды, что значительно повысило производительность игры, и так получилось разобраться с изначальной проблемой.
  • Разработчики считают, что полностью избежать любых проблем невозможно, поэтому важнее всего сократить до минимума вероятность их появления и иметь возможности и ресурсы по их исправлению в кратчайшие сроки.
An Engineering Update on the Dragonflight Launch

With Dragonflight’s recent launch behind us, we want to take some time to talk with you more about what occurred these past few days from an engineering viewpoint. We hope that this will provide a bit more insight on what it takes to make a global launch like this happen, what can go right, what hiccups can occur along the way, and how we manage them.

Internally, we call events like last Monday “content launch,” because launching an expansion is a process, not one day. Far from being a static game running the same way it did eighteen years ago—or even two years ago—World of Warcraft is in constant change and growth, and our deployment processes change as well.

Expansions now consist of several smaller launches: the code first goes live running the old content, then pre-launch events and new systems turn on, and finally, on content launch day, new areas, quests, and dungeons. Each stage changes different things so we can find and fix problems. But in any large, complex system, the unexpected can still occur.

One change with this expansion was that the content launch was triggered using a timed event —multiple changes to the game can be triggered to all happen at a particular time. Manually making these changes carries the risk of human error, or an internal or external tool outage. Using a timed event helps to mitigate these risks.

Another change in Dragonflight: greatly enhanced support for encrypting game data records. Encrypted records allow us to send out our client with the data that the game needs to show cutscenes, share voice lines, or unlock quests, but keep that data from being mined before players get to experience them in-game. We know the community loves WoW, and when you’re hungry to experience any morsel, it’s hard to not spoil yourself before the main course. Encrypted records allow us to take critical story beats and hide them from players until the right time to reveal them.

We now know that the lag and instability we saw last week was caused by the way these two systems interacted. The result was: they forced the simulation server (that moves your characters around the world and performs their spells and abilities) to recalculate which records should be hidden more than one hundred times a second, per simulation. As a great deal of CPU power was spent doing these calculations, the simulations became bogged down, and requests from other services to those simulation servers backed up. Players see this as lag and error messages like “World Server Down”.

As we discovered, records encrypted until a timed event unlocked them exposed a small logic error in the code: a misplaced line of code signaled to the server that it needed to recalculate which records to hide, even though nothing had changed.

Here’s some insight on how that investigation occurred. First, the clock struck 3:00 p.m. PST. We know from testing that the Horde boat arrives first, and the Alliance boat arrives next. Many of us are logged in to the game on our characters sitting on the docks in both locations in one computer window, watching logs or graphs or dashboards in other windows. We’re also on a conference call with colleagues from our support teams from all over Blizzard.

Before launch, we’ve created contingency plans for situations we’re worried about as a result of our testing. For example, for this launch, our designers created portals that players could use to get to the Dragon Isles in case the boats failed to work.

At 3:02 p.m. the Horde boat arrives on schedule. Hooray! Players pile on, including some Blizzard employees. Other employees wait (they want to be test cases in case we must turn on portals.) The players on the boats sail off, and while some do arrive on the Dragon Isles, many more are disconnected or get stuck.

Immediately we start searching logs and dashboards. There are some players on the Dragon Isles map, but not many. Colleagues having issues report their character names and realms as specific examples. Others start reporting spikes in CPU load and on our NFS (Network File Storage) that our servers use. Still others are watching in-game, reporting what they see.

Now that we’ve seen the Horde boats, we start watching for the Alliance boats to arrive. Most of them don’t, and most of the Horde boats do not return.

A picture emerges: the boats are stuck, and Dragon Isles servers are taking much longer to spin up than expected. Here’s where we really dig in and start to problem solve.

Boats have been a problem in the past, so we turn on portals while we continue investigating. Our NFS is clearly overloaded. There’s a large network queue on the service responsible for coordinating the simulation servers, making it think simulations aren’t starting, so it launches more and starts to overwhelm our hardware. Soon we discover that adding the portals has made the overload worse, because players can click the portals as many times as they want, so we turn the portals off.

As the problems persist, we work on tackling the increased load to get as many players in to play as possible, but the service is not acting like it did in pre-launch tests. We continue to problem-solve the issue and discount things we know aren’t the issue based on those tests.

Despite the lateness in the day, many continue to work while others take off to get rest so they can return early the following day to get a fresh start and relieve those who will work overnight.

By Tuesday morning, we have a better understanding of things. We know we’re sending more messages to clients about quests than usual, although later discoveries will reveal this isn’t causing problems. A new file storage API we’re using is hitting our file storage harder than usual. Some new code added for quest givers to beckon players seems slower than it should be. The service is taking a very long time to send clients all the data changes made in hotfixes. Reports are coming in that the players who have gotten to the Dragon Isles playing have started experiencing extreme lag.

Mid-Tuesday morning a coincidence happens: digging deep into the new beckon code we find hooks for the new encryption system. We start looking at the question from the other side —could the encryption system being slow explain these and other issues we’re seeing? As it turns out, yes it can. The encryption system being slow explains the hotfix problem, the file storage problem, and the lag players are experiencing. With the source identified, the author of the relevant part of the system was able to identify the error and make the needed correction.

Pushing a fix to code used across so many services isn’t like flipping a switch, and new binaries must be pushed out and turned on. We must slowly move players from the old simulations to new ones for the correction to be picked up. In fact, at one point we try to move players too quickly and cause another part of the service to suffer. Some of the affected binaries cannot be corrected without a service restart, which we delay until the fewest players are online to not disrupt players who were in the game. By Wednesday, the fix was completely out and service stability dramatically improved.

While it took some effort to identify the issue and get it fixed, our team was incredibly vigilant in investigating the issue and getting it corrected as quickly as possible. Good software engineering isn’t about never making mistakes; it’s about minimizing the chances of making them, finding them quickly when they happen, having the tools to get in the fixes right away…

…and having an amazing team to come together to make it all happen.

—The World of Warcraft Engineering Team[Источник]
« Последнее редактирование: 09 Декабря, 2022, 01:10:57 by Wishko »

Горфинкель

  • Старожил
  • ***
  • Сообщений: 1043
  • honk-honk

  • Варкрафт: +
    • Класс: Рыцорь Смэрти
    • Сервер: Галакронд
Да да, хорошо.
А что именно было недоступно игрокам и оставалось зашифрованным, что сейчас доступно? Те кувыркания Алекстразы и Рашкагейт? Диалоги Гневиона и Сабелиана в тележке? Чего такого важного сейчас есть в игре, что стоило так скрывать? Самое запоминающееся кстати - сюжетка с Хроми - спалена была ещё во времена бетки.
Я даже не издеваюсь, мне правда интересно, какие такие пласты зашифрованного контента от нас прятали.
For forty years like in overdose
I worked driving govnovoz.

Annabet

  • Старожил
  • ***
  • Сообщений: 3260
Интересно, что из этого вызвало дикие лаги сначала в онаре, а недавно и в просторе?

Хашвальт

  • Завсегдатай
  • **
  • Сообщений: 847

  • Варкрафт: +
    • Имя: Хашвальт
    • Класс: Паладин
    • Сервер: Азурегос
Виной всему –
...количество времени, потраченное на разработку аддона. Которое пропорционально времени между анонсом аддона и релизом аддона. Которое минимально за всю историю ВоВ. Ровно как объявили дату выхода ДФ, так я сразу понял, что аддон на старте будет поломан и забагован НАСТОЛЬКО, насколько ни один аддон до него не был даже и близко. Так оно и случилось. В точности как ожидалось. Удивился бы, если нет.

Удивительно другое. Что несмотря на безобразную "грязь" в техническом плане, сам по себе аддон весьма и весьма приятно ощущается.

Annabet

  • Старожил
  • ***
  • Сообщений: 3260
Виной всему –
...количество времени, потраченное на разработку аддона. Которое пропорционально времени между анонсом аддона и релизом аддона. Которое минимально за всю историю ВоВ. Ровно как объявили дату выхода ДФ, так я сразу понял, что аддон на старте будет поломан и забагован НАСТОЛЬКО, насколько ни один аддон до него не был даже и близко. Так оно и случилось. В точности как ожидалось. Удивился бы, если нет.

Удивительно другое. Что несмотря на безобразную "грязь" в техническом плане, сам по себе аддон весьма и весьма приятно ощущается.
Ну гарнизон-то точно был супер проработан, как и вертолетик за альянс аддоном ранее.
« Последнее редактирование: 09 Декабря, 2022, 02:58:16 by Annabet »

ptuch

  • Завсегдатай
  • **
  • Сообщений: 921
Виной всему –
...количество времени, потраченное на разработку аддона. Которое пропорционально времени между анонсом аддона и релизом аддона. Которое минимально за всю историю ВоВ. Ровно как объявили дату выхода ДФ, так я сразу понял, что аддон на старте будет поломан и забагован НАСТОЛЬКО, насколько ни один аддон до него не был даже и близко. Так оно и случилось. В точности как ожидалось. Удивился бы, если нет.

Удивительно другое. Что несмотря на безобразную "грязь" в техническом плане, сам по себе аддон весьма и весьма приятно ощущается.
с легиона что ли играешь?

Wishko

  • Модератор
  • Легенда
  • *
  • Сообщений: 54771
Да да, хорошо.
А что именно было недоступно игрокам и оставалось зашифрованным, что сейчас доступно? Те кувыркания Алекстразы и Рашкагейт? Диалоги Гневиона и Сабелиана в тележке? Чего такого важного сейчас есть в игре, что стоило так скрывать? Самое запоминающееся кстати - сюжетка с Хроми - спалена была ещё во времена бетки.
Я даже не издеваюсь, мне правда интересно, какие такие пласты зашифрованного контента от нас прятали.

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

Xilys

  • Завсегдатай
  • **
  • Сообщений: 114
  • Хил до мозга костей

  • Варкрафт: +
    • Имя: Ксайлис
    • Класс: Паладин
    • Сервер: Свежеватель душ
Виной всему –
...количество времени, потраченное на разработку аддона. Которое пропорционально времени между анонсом аддона и релизом аддона. Которое минимально за всю историю ВоВ. Ровно как объявили дату выхода ДФ, так я сразу понял, что аддон на старте будет поломан и забагован НАСТОЛЬКО, насколько ни один аддон до него не был даже и близко. Так оно и случилось. В точности как ожидалось. Удивился бы, если нет.

Удивительно другое. Что несмотря на безобразную "грязь" в техническом плане, сам по себе аддон весьма и весьма приятно ощущается.


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

Но, что самое обидное в этой всей ситуации - единственный на данный момент контент который они сделали (недельный), практически весь забагован был с самого старта

К сожалению я понимаю, к чему придут ключи с рейдами в 1 сезоне, которым было уделено еще меньше времени
Думаю работоспособным аддон станет уже с февраля где то
А пока что наслаждаемся



« Последнее редактирование: 09 Декабря, 2022, 08:52:15 by Xilys »

Mikdemy

  • Завсегдатай
  • **
  • Сообщений: 644

  • Варкрафт: +
    • Имя: Кукусямба
    • Класс: Маг
    • Сервер: Азурегос
Вот сегодня прочитал эту статью о технических проблемах, и сегодня же в игре были вылеты персонажей, много народу из гильдии на это жаловалось и не только. Видимо опять что-то "нагов..кодили"

 

закрыть