WORLD OF WARCRAFT

Тема: Заметки c передовой: разработчики о борьбе с техническими неполадками  (Прочитано 3859 раз)

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

horsaken

  • Модератор
  • Старожил
  • *
  • Сообщений: 4878



На прошедшей в этом году Конференции Разработчиков Видеоигр (GDC – Game Developers Conference) двое членов команды World of Warcraft, а именно, старший инженер Джозеф Кокрон и инженер-программист Кёртис Маккатерн, поделились историями о том, как она боролись с различными техническими неполадками в игре: начиная с открытия врат Ан'киража и заканчивая события эпохи Warlords of Draenor.:cut:

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


Врата лагов

Открытие врат Ан'киража было беспрецедентным событием в World of Warcraft – оно затрагивало весь игровой сервер и случалось всего один раз; объединить усилия должны были обе фракции и в ходе выполнения эпической цепочки заданий один-единственный счастливчик становился обладателем уникального маунта и звания "Повелитель Скарабеев".

Вполне очевидно, что проблемой стали игровые сервера, которые просто не справлялись с таким огромным скоплением игроков, сосредоточенных в одной-единственной локации. Тогда ведь не было никаких современных технологий, вроде "слоёв", "осколков" или ограничения на отрисовку графических элементов при достижении определённого количества игроков.

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

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

Возвращаясь назад в будущее – в 2020 году эвент вновь повторился в WoW Classic и был также не лишён "лагов", хоть разработчики за прошедшее время и обучились новым трюкам. Например, сервера переставали отслеживать некоторые действия игроков, вроде, направления движения. Сравнив представленные ниже скриншоты можно легко увидеть разницу: в 2006 году одновременно участвовало порядка 60-120 игроков, тогда как в 2020 в локацию заходил практически весь сервер.


Разработчики извлекли уроки и в дальнейшем в ходе масштабных эвентов старались рассеять игроков, чтобы действие не было сосредоточено в одном месте. Зомби-чума, предшествовавшая запуску Wrath of the Lich King может и вызвала дискомфорт у части игроков, но она уж точно рассеяла их по всему миру. Те, кто играет в WoW давно помнят, что на старте WotLK и Cataclysm разработчики попытались рассредоточить игроков, дав им на выбор две стартовые зоны; тем не менее, это не решило проблемы полностью. В Mists of Pandaria разработчики попытались развести по разные стороны континента уже фракции – Орда начинала с одной стороны острова, а Альянс с противоположной; но и такое решение не решило проблему полностью.


Блокировщики заданий, различные парадоксы и проблемы с достижениями

К выходу Warlords of Draenor разработчики решили вновь вернуться к идее одной стартовой зоны, но на этот раз внесли некоторые изменения. Вместо того, чтобы сталкивать игроков друг с другом, разработчики попытались сделать так, чтобы игроки сами покидали локацию. Также на тот момент уже появилась возможность сделать несколько параллельных копий игровой зоны. Однако, узкие места по прежнему сохранялись: когда игроки возвращались к зону, которая была в единственном экземпляре, то сталкивались со своего рода преградами: объекты или монстры, с которыми надо было провзаимодействовать/убить, прежде чем продвинуться дальше. Эти искуственные барьеры позволяли отставшим игрокам тоже дойти до этого этапа, что ещё больше увеличивало концентрацию игроков в одном месте (это можно сравнить с очередями игроков в Classic, каждому из которых нужно было убить монстра, время возрождения которого становилось причиной "бутылочного горлышка").

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

Чем больше проходит времени, тем опытнее становятся разработчики и стараются не дожидаться появления проблем, а работать на опережение. Но не все проблемы связаны со скоплением большого количества игроков в одном месте.


Джозеф рассказал, что на ранних стадиях тестирования системы Достижений всё было крайне далеко от совершенства. Игроки, начавшие играть задолго до выхода WotLK вполне могли посмотреть даты всех своих ранних достижений (такие как, получение 10, 20, 30 уровня и другие подобные). Некоторые игроки отмечали, что порой получали такие вот ретроактивные достижения даже спустя несколько дней. Это было решением, которое разработчики внедрили, чтобы снизить нагрузку на систему.

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

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

Стоит сказать, что поднятые проблемы нельзя решить просто увеличив финансирование/наняв дополнительных сотрудников. Разработчикам пришлось изменить принцип, по которому записывались и хранились данные. Вместо того, чтобы записывать все события, как только они произошли, разработчики создали специальные блоки, которые записывались по мере заполнения. Этот подход в один момент стал довольно проблемным, когда выявилась неполадка, из-за которой каждый блок данных записывался три раза; но как только Джозеф смог выявить и устранить неполадку – дела сразу пошли в гору.

Команда разработчиков существенно выросла за всё это время. Теперь у них есть особый тестовый сервер, как они называют его "Тёмное Царство"; они могут скопировать туда своего персонажа с "живого" сервера. Да, можно создать нового персонажа и быстро "прописать" ему необходимый уровень/достижения/экипировку, необходимые для контента, который вы собираетесь тестировать; но использование уже существующего персонажа может помочь выявить некоторые коллизии, которые случаются, когда новый контент наслаивается на старый.

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

Олежкин

  • Новичок
  • *
  • Сообщений: 95
  • Кино не смотрю! Наедаюсь грибов и смотрю ковёр!
Новое - это хорошо забытое старое. Мировые боссы, я про вас, да да.
Чтобы тебя любили — приходится быть хорошим каждый день. Чтобы ненавидели — напрягаться не приходится вообще...

Tigras

  • Ветеран
  • ****
  • Сообщений: 8260
Хилсбрад и Кортия видимо 1на и та же проблема, 2 лагодрома которые чинить не собираются.

 

закрыть