Как разработчики World of Warcraft справлялись с первыми проблемами игры

Разработчики World of Warcraft рассказали PC Gamer, как они справлялись с непредсказуемым поведением игроков и катастрофическими ошибками скриптов в ранние годы жизни World of Warcraft.

Если бы 13 сентября 2005 года вы зашли во двор крепости дворфов Стальгорн, то увидели бы одни скелеты. Множество скелетов. В городе, как и во всех остальных крупных населенных пунктах World of Warcraft, свирепствовала чума, уничтожавшая игроков тысячами. Их кости белели на каждой улице. Поначалу никто не понял, что происходит. Из случайного персонажа начинала сгустками идти кровь, потом ещё из одного, и ещё. Вскоре в целых городах не оставалось ни одного жителя. Постепенно бедствие прекращалось, жизнь приходила в норму на минуту или час, а потом всё повторялось снова. Несчастные, которые оказались заперты в затронутых чумой зонах, умирали, добегали до своих трупов, возрождались, пробегали несколько метров и умирали снова. Пока тысячи игроков в отчаянии пытались выжить, сотрудники Blizzard с ужасом наблюдали за происходящим.

Было очень страшно, ведь мы не знали, из-за чего все началось.
    Джон Кэш, ведущий инженер World of Warcraft

Сейчас о случае с заражённой кровью вспоминают скорее как о разбушевавшемся баге. Однако для сотрудников Blizzard он стал напоминанием о том, что власть над судьбами виртуального мира всегда сопряжена с ответственностью.

Всё дело в крови

Разработчики вроде Джона Кэша месяцами трудились над тем, что должно было стать самым интересным обновлением World of Warcraft. Зул’Гуруб был суровым рейдом, в который рвались высокоуровневые персонажи. Но у Хаккара Свежевателя Душ, финального босса этого рейда, был в запасе грязный трюк.

Перед смертью, борясь с бесчисленными группами игроков на нескольких серверах, Хаккар пытался высосать кровь героев, чтобы восстановить своё здоровье. В качестве противодействия этому отчаянному, но опасному выпаду, игроки могли заразить свою кровь смертельным заболеванием — они постоянно получали урон, но так Хаккар заражал и, в конце концов, убивал сам себя. «Всё началось из-за ошибки, допущенной дизайнерами при создании скриптов — объясняет ведущий инженер ПО Коллин Мюррей. — Заражённая кровь была особым эффектом, и дизайнеры забыли убрать его с питомцев. Так что если ваш питомец заново вызывался, пока вы бились с Хаккаром—»

«—Игра сохраняла питомца с заражённой кровью, — вклинился Кэш. — Когда вы в следующий раз вызывали питомца, не было кода, который бы говорил: „А, так ты не в рейде, надо бы от заражённой крови избавиться“».

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

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

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


    Люди старались не подходить к городам и писали остальным: «Не возвращайтесь в город, а то снова это подхватите. Держитесь дикой местности». Это был своего рода карантин, благодаря которому выживали игроки.
    Шейн Дабири, один из руководителей Blizzard

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

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

«Мы такого не планировали, это был просто баг», — объясняет Дабири. Несмотря на множество виртуальных смертей, бесчисленное количество звонков в службу поддержки и многочасовую борьбу с первой настоящей чумой в истории Warcraft, Дабири не уверен, что хотел бы что-то изменить.

 Вообще, благодаря чуме мы создали вещи, пригодившиеся нам в будущем. Если бы её не было, мы бы не знали, как делать крутые игровые события, которые проводим сейчас. Получилась интересная страница истории нашего игрового мира. К тому же, команды дизайнеров многому научились.
    Шейн Дабири, один из руководителей Blizzard

Этот урок Дабири, Кэшу, Мюррею, да и всем в Blizzard приходилось выучивать снова и снова. Изначально World of Warcraft должен был следовать за более старыми ММО вроде Everquest и Ultima Online — вобрать в себя всё, что делало эти игры особенными. После этого надо было просто «отполировать игру в стиле Blizzard», как говорит Кэш. Вместо этого World of Warcraft стал культурным феноменом, аудитория которого быстро превысила суммарную популяцию двух ММО, послуживших ему вдохновением. А разработчики Blizzard стали проводниками, исследующими неизведанные территории в сопровождении миллионов человек.

Выученные уроки

За 13 лет Дабири, Кэш и Мюррей на практике изучили, что можно, а чего нельзя делать с многомиллионной аудиторией. В качестве идеального примера тому они вспоминают Врата Ан’Киража, одно из первых событий World of Warcraft, затрагивающих весь сервер, амбициозное даже по сегодняшним меркам. В 2006 году оно стало предвестником появления двух новых рейдов, однако чтобы справиться с сидящими в них инсектоидами Силитидами, игрокам на сервере пришлось собрать огромное количество ресурсов. Тем временем на каждом сервере лучшая гильдия старалась как можно быстрее выполнить сложную цепочку квестов по перековке скипетра, который нужно было доверить одному-единственному игроку, чтобы тот затем смог открыть врата для всех.

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

 Мюррей и я — инженеры, так что решать эту сложнейшую задачу пришлось нам. Дизайнеры думали только о том, какое крутое у них получилось событие. Игрок приходил к NPC и узнавал, что ему нужно вернуться ровно через пять дней, чтобы попасть в подземелье. И мы такие, ну здорово, вы сказали всему населению сервера, что им нужно одновременно собраться в одном месте. Именно этого инженеры хотели меньше всего.
    Джон Кэш, ведущий инженер World of Warcraft

Когда игроки с сервера Медив первыми выполнили квест, люди начали делать то, что Blizzard не предусмотрели. Пользователи со всей Северной Америке создавали новых персонажей на сервере Медив, чтобы поучаствовать в открытии врат. «Те, кто изначально играли на Медиве, расстроились, мол „это наш сервер, надо их выгнать“. В итоге Альянс и Орда объединились, чтобы прогнать чужеземцев: все стали отмечать себя как готовых к PvP, после чего начали вырезать более низкоуровневых игроков, чтобы те не присутствовали на открытии врат». «Это был хаос», — признаёт Дабири. Когда врата отворились и орды Силитидов бросились на вторгнувшихся в их владения игроков, тысячи собрались, чтобы посмотреть на битву.

Мы наблюдали за этим с ужасом, ведь клиент WoW не был рассчитан на демонстрацию 4 000 персонажей на одном экране. Мы больше никогда не будем проводить такие события, но есть пара идей, развивающих наработки Ан’Киража. Мы стараемся оставлять как можно больше крутых вещей и не вносить при этом сумятицу в игру
    Джон Кэш, ведущий инженер World of Warcraft

Такие моменты были важной частью World of Warcraft с самого запуска. За несколько часов до полночного запуска игры более 5 000 фанатов осадили магазин Fry's Electronics в Ирвине, штат Калифорния. Мюррей вспоминает, как в девять утра ему сообщили о том, что у магазина уже собралась очередь из игроков. К вечеру по тому району ездить было совершенно невозможно — всюду были припаркованы машины, а очередь дважды обвивала здание магазина.

   Это была огромная толпа людей. Мы просто не знали, что делать.
    Коллин Мюррей, ведущий инженер World of Warcraft

По словам Дабири, за несколько дней до этого команда разработки боялась, что за игрой никто не придёт. Вместо этого заготовленные для продажи три с половиной тысячи копий разлетелись как горячие пирожки, после чего разработчикам пришлось послать человека в головной офис в Ирвине, чтобы он привёз копии, зарезервированные для сотрудников Blizzard. Потом и они кончились. «При этом мы не хотели, чтобы кто-то ушёл с пустыми руками», — вспоминает Дабири.

С релиза World of Warcraft Blizzard с трудом поспевает за удивительной популярностью её виртуального мира. Студия множество раз оступалась, но Дабири не считает эти случаи ошибками.

Мы в Blizzard постоянно учимся и ценим риск. Без риска невозможно создать крутой и весёлый игровой опыт, так что иногда приходится учиться и на ошибках.
    Шейн Дабири, один из руководителей Blizzard

Нравится11
Комментарии (11)
  • 1
    Rikudo Nagashi
    >выученные уроки
    Нихрена они не выучили, если судить по старту Легиона...
    Чёт вспомнилось
  • 2
    Стоило вызвать такого питомца, как его владелец и все игроки рядом оказывались заражёнными, при этом скрипт не проверял, в рейде ли они, поэтому достаточно было один раз вызвать питомца в городе, чтобы в итоге заразить всех его жителей.
    а потом удивляются такому распространению читов ¯\_(ツ)_/¯
  • 3
    Круто , очень интересный блог
  • 2
    а как они решили самую главную проблему-донат?
  • 3
    Николай Кивенорб
    Олег В
    Игра World of warcraft не содержит доната, так как работает по абонентской плате.
  • 5
    Rikudo Nagashi
    так стар легиона был лучшим из всех, ни разу даже не выкинуло из игры, народ раскидали по кроссерверам и толпы на квестах были только первые 2 часа. Квесты "бутылочное горлышко" убрали расшариванием итемов и мобов на всех людей.
    С дренором и клизмой точно не сравнимо, когда сервера упали на всю ночь, а потом куча проблем с прохождением было
  • 1
    Интересно читать,спасибо.
    У меня возник вопрос : Джон Кэш, ведущий инженер World of Warcraft. Инженер в области программирования?
  • 2
    Airvin
    До сих пор снятся эти вертолетики с пандарии.
  • 0
    Rikudo Nagashi
    Airvin
    Ну дренор-то да, его ничто не переплюнет. Клизму на старте не играла, а вот с Легиона пригорело. Хотя дальше всё было хорошо, что удивительно.
  • 0
    Николай Кивенорб
    думаешь назвать донат абонентской платой-это решение проблемы?
  • 1
    Николай Кивенорб
    Олег В
    Не вижу смысла спорить, если вам лень найти в гугле, что такое донат. Решение давно есть, покупка подписки за золото из игры.
B
i
u
Спойлер