Второй "сезон открытий" World of Warcraft Classic продолжает испытывать проблемы с технологией разделения серверов на слои

Недавно стартовала вторая фаза "Сезона Открытий" в World of Warcraft Classic. К сожалению, система распределения нагрузки, основанная на разделении серверов на слои, вновь дала сбой — на этот раз в локации Тернистой долины. Для непосвященных: суть "Сезона Открытий" заключается в том, что раз в три часа в Тернистой долине на 30 минут включается режим PvP. Основная проблема в том, что система распределения игроков по слоям пока работает некорректно.

В идеале все участники масштабных PvP-событий должны переноситься на слой с оптимальным балансом игроков. Однако на практике игроки намеренно изменяют свой слой с помощью группирования с другими игроками — что один из разработчиков назвал отвратительным игровым опытом. В выходные старший продюсер игры Том Эллис на своей странице в твиттере подробно объяснил технические детали проблемы. Как он отметил, технология разделения на слои на самом деле берет свои корни в системе, которая 10 лет назад спасла World of Warcraft от краха, хотя сейчас она и вызывает проблемы.

Истоки технологии

Когда-то каждый игровой мир работал на своем собственном железе... Все запускалось в одном месте, игроки могли кайтить мобов между локациями, квесты с эскортированием NPC могли проходить через границы зон. По мере улучшения железа и оптимизации производительности мы с каждым аддоном повышали лимит одновременно играющих. Это привело к серьезным проблемам, когда ядра ЦП начали испытывать высокую нагрузку. Ситуация достигла пика в дополнении Warlords of Draenor, когда стартовые локации оказались совершенно неспособны справиться с наплывом игроков.

Эллис рассказывает, как один бывший разработчик Blizzard потратил три дня и ночи на разработку того, что теперь известно как технология шардинга (разбиение на осколки). Это сделано игру менее целостной, но означало, что лимиты серверов и зон больше не были жестко связаны. Это также дало возможность задавать разные значения для разных зон.

Эллис говорит, что команда изначально не планировала использовать шардинг в Classic, но им нужно было найти способ использовать современные лимиты серверов, не раздавливая зоны игроками. Основная проблема шардинга в том, что он нарушает ощущение классической игры. В то время он не позволял игрокам кайтить мобов или охотиться друг на друга в PvP через зоны: оба игрока должны продолжать преследовать друг друга в новую зону, а в мире с шардингом они могут оказаться в разных инстансах игры.

От шардинга к слоям

Вместо этого технология шардинга была переработана Омаром Гонсалесом, разработчиком, который заперся на недели, чтобы заставить Classic заработать. Эллис говорит:

Он взял шардинг и начал склеивать осколки в то, что стало известно как слои. Да, слой на самом деле просто шардинг, обмотанный кучей скотча.

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

Самая большая проблема, с которой мы сталкиваемся в данный момент, заключается в том, что некоторые ранние допущения относительно кода слоев теперь очень проблематичны. Все зоны в слое имеют одинаковое количество игроков, которые могут быть в зоне. Мы не можем, например, сказать 500 человек в Пустошах, 1000 человек в Оргриммаре — используется одно значение для всех. Это кошмар, когда зоны ведут себя очень по-разному в зависимости от того, что делают игроки.

Как отмечает Эллис, проблемы со слоями влияют не только на зону, в которой они происходят.

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

Во второй части своего поста Эллис более подробно рассказывает о проблемах сезона открытий.

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

В итоге, группы — это проблема для системы слоев, и как только зона заполнена, геймплей становится проблематичным. Но, как уже упоминала команда Classic ранее, скоро появятся изменения, чтобы помочь это исправить.

Больше статей на Shazoo
Тэги: