[Перевод] Ultima Online: взгляд из-за кулис

image


Эта статья является переводом нескольких фрагментов книги Braving Britannia: Tales of Life, Love, and Adventure in Ultima Online (www.bravingbritannia.com). Кроме бесед с десятками игроков об их опыте игры в эту прабабушку всех MMO, в книге представлены интервью с некоторыми из первых программистов, дизайнеров и продюсеров игры, в том числе с Крисом Майером (Fallout 76), Рафом Костером (Star Wars Galaxies), Старром Лонгом (Shroud of the Avatar), Гордоном Уолтоном (Crowfall), Ричем Фогелем (DOOM) и другими.

Прежде чем прийти в Origin Systems на должность ведущего программиста, Крис «Faceless» Майер экспериментировал с Ultima Online как один из первых игроков. Майер работал инженером-разработчиком ПО в Остине, штат Техас, используя быстрый Интернет на своём рабочем месте для игры в Ultima Online в обеденный перерыв или после работы.

Майера всегда интересовало создание игр и он надеялся когда-нибудь заняться им профессионально. На самом деле, он готовился к этой возможности всю свою юность.
«В детстве я всегда хотел создавать игры», — рассказывает Майер. «Именно поэтому я и пришёл в программирование. Одной из моих любимых игр была Adventure Construction Set; я даже потратил неделю отдыха с семьёй на рисование дизайна игры на миллиметровке и в блокноте, а после возвращения добрался до компьютера и превратил всё это в код».

«В пятом классе я выучил Applesoft Basic, а в седьмом прошёл курс по ассемблеру процессора 6502. В колледже я изучал разнообразные виды ассемблера, C, C++, а также несколько других языков, которые с тех пор ни разу не использовал»

Пока у Майера не получилось попасть в игровую индустрию, он довольствовался тем, что играл в выпускаемые другими игры. В любую свободную минуту он с головой погружался в UO. По словам Майера, он играл «с религиозным рвением» и стал активным членом сообщества, как внутри игры, так и на электронных досках объявлений Vault Network (популярного веб-сайта той эпохи, посвящённого ролевым играм).

Летом 1998 года близкий друг Майера Скот Сэлмон получил электронное письмо от Origin Systems. Изучив множество полезных постов Сэлмона на форумах Vault Network и зная о его опыте работы с компьютерами, представитель компании пригласил его пройти собеседование на открытую вакансию программиста.

Сэлмона не привлекала карьера программиста, но у него был друг, которому это было интересно. Он рассказал рекрутёру о Майере. После собеседования с тремя программистами в офисе Origin Systems продюсер Рич Фогель предложил Майеру работу.

Майер рассказал, что вскоре после выпуска Ultima Online программист игры, которого наняли для создания кодовой базы UO, был назначен на другие игровые проекты.

«Когда я вошёл в дверь Origin, Рич сказал, что в проекте остался только один из программистов, занимавшихся его разработкой, да и тот в основном создавал клиент. Кирк «Runesabre» Блэк уже работал в компании, и оказалось, что мы с ним единственные, кто может заниматься бэкендом».

Таким образом, на Майера навалилась чрезмерная нагрузка. Он не только не понимал кодовой базы игры, но ещё и сервера с тысячами игроков UO постоянно были на грани краха.

«В течение первых нескольких месяцев моей работы я приходил в офис, думая о том, что вся система скоро разрушится», — смеётся Майер. «Но нам каким-то образом удавалось спасать её, параллельно внося улучшения».

«Это была одна из самых интересных моих работ. MMO были таким новым жанром, что никто в EA на самом деле не знал, что делать с онлайн-играми. Поэтому мы могли творить практически всё, что хотели».

ecc7c4e851a6cbfaa46c755dc40ef496.jpg


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

«Это было сложно. Кроме того, я не знал общую архитектуру игры. Стоит также учесть то, что на команду разработчиков UO оказывалось огромное давление, чтобы они выпустили игру в срок, поэтому им пришлось использовать множество хаков».

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

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

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

После того, как сервера были стабилизированы, Майера повысили до ведущего разработчика. Потушив пожар, мы перешли к следующему проекту Origin — первому официальному расширению UO под названием The Second Age («T2A»). С этим проектом пришли новые сложности — новые территории, два новых города и куча новых монстров. А со всеми этими изменениями, разумеется, пришли и новые проблемы со стабильностью.

«Помню, как у меня появился первый баг клиента, когда мы пытались выпустить T2A», — рассказывает Майер. «Мне очень нравилось работать с бэкендом, потому что это напоминало мне те системы, с которыми я работал в школе и в National Instruments».

Но хотя Майер и знал программирование, UO стала его первым опытом работы с двухмерной и трёхмерной графикой. У программистов появились новые проблемы: ковры проваливались сквозь пол, а иногда даже полностью исчезали дома игроков.

«Я понятия не имел, что делаю, но мне удавалось заставить систему работать благодаря методичному кодированию», — говорит он. «Кирк и я без устали поддерживали стабильность серверов и ради этого даже пропустили вечеринку по случаю выпуска расширения».

Вскоре Майеру дали задание отслеживать эксплойтеров — игроков, использовавших ошибки в коде игры в свою пользу. Эксплойты часто использовались для создания дубликатов мощных объектов или повышения навыков игрока, нарушающего принципы дизайна игры.

Майер вспоминает то время, когда один из серверов игры постоянно крашился, почти не давая никаких объяснений. Изучив код, Майер не нашёл логического объяснения этой непрерывно возникающей проблеме.

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

4663b21ef29af2365dec88d9d84aadd8.png


«В этом не было совершенно никакой логики», — рассказывает Майер. «Только если кто-то не делает это намеренно. В таком случае это поведение можно объяснить».

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

«Один игрок всегда был на всех серверах, прежде чем они крэшились», — говорит Майер. «Но что же он делал? Нам нужно было знать».

Майер попросил помощи у отдела поддержки клиентов и проконсультировался с гейм-мастером об отслеживании игрока. Благодаря всего одному разговору Майеру удалось провести в виртуальном мире операцию под прикрытием.

«Я хотел отследить все движения игрока внутри игры. После входа игрока в игру меня позвали на этаж ниже и дали доступ к компьютеру гейм-мастера, на котором я мог незаметно следовать за игроком».

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

План, предложенный гейм-мастеру, заключался в следующем: он должен был одеться, как новый игрок и следовать за подозреваемым. Замаскировавшись, ГМ должен был настолько разозлить подозреваемого, чтобы тот его убил. Эта смерть превратила бы игрока в убийцу, то есть он бы «стал красным».

Майер считал, что если бы всё шло по плану, то подозреваемый бы вызвал сбой сервера, чтобы вернуть его к предыдущей точке сохранения (примерно за 30 минут до того, как он стал убийцей) и показал бы, как выполняется этот трюк.

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

«Этот ГМ сорвался на подозреваемого и превратился в самого токсичного игрока в UO. Наблюдаемый не смог этого долго выдерживать и наконец убил бедного ГМ. Теперь настало время убить его. ГМ вышел за экран, превратился в ядовитого элементаля и ваншотнул парня».

Как и было запланировано, подозреваемый превратился в убийцу. Пока подозреваемого воскрешали его друзья, Майер и ГМ были невидимыми, надеясь раскрыть тайну крэша серверов.

Долго им ждать не пришлось.

«Они наблюдали за тем, как он жалуется своим друзьям, после чего сказал: «Ладно, это неважно. Смотрите, что сейчас будет», — вспоминает Майер. «В поле чата над его головой появилось множество незнакомых символов, и тут нас озарило. Локализация появилась впервые только в T2A (она пыталась преобразовывать иностранные языки в английский), и очевидно, что появилась какая-то проблема с сообщениями чата, в которых использовался 16-битный Unicode вместо 8-битного ASCII».

«Это сетевое сообщение передавалось в буфер без проверки размера, что приводило к переполнению буфера и повреждению стека».

Сервер вылетел, как и в другие вечера до этого. Майер и ГМ поймали подозреваемого на месте преступления. Майер написал патч, а игрока забанили.

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

3fb4edb4477a3950f7b2102c06adc752.jpg


«В 1998 году всё это походило на Дикий Запад, особенно в Electronic Arts», — рассказывает он. «EA была первой большой игровой компанией, разрабатывавшей MMO, и в то время было не так много стандартов и проверенных методик их разработки».

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

После ухода Майера из Origin в 1999 году, ему множество раз довелось применять полученные знания. Майер работал ведущим разработчиком в командах Sony Online Entertainment, NCSoft, своей собственной компании (Night Owl Games), а сейчас он служит директором по разработке в студии Bethesda Game Studios Austin компании ZeniMax Media, где работает над Fallout 76.

Альфа-тестирование Ultima Online началось в апреле 1996 года. Длившийся один месяц тест стал первым моментом, когда в Британнию могли попасть люди, не относящиеся к команде разработки игры.

Потратив бОльшую часть года на помощь в создании этого мира, Раф «Designer Dragon» Костер задержал дыхание, когда сервер открылся и фэнтезийный мир разработчиков заполнился игроками.

И с того момента всё пошло наперекосяк.

«В самый первый день альфы игроки появлялись в таверне Британнии», — вспоминает Костер. «Они ждали, пока остальные новички выйдут из дверей, а затем вставали к окнам и убивали их стрелами».

«Новички не могли отстреливаться, потому что лучники скрывались за стеной внутри здания. Разумеется, именно для этого и были изобретены бойницы, но такое начало очень портило первое впечатление от игры».

К счастью, потом всё пошло лучше.

Костера пригласили в Origin Systems в 1995 году, чтобы он помог в создании того, что называли «massively multiplayer online game». Хотя присутствовала некоторая нечёткость в понимании того, что же это на самом деле означает, Костер считал, что его чутьё геймдизайнера подтолкнуло его в верном направлении.

Разрабатывая игры с ранних лет, Костер провёл часть юности в перуанской Лиме, где превращал для своих одноклассников популярные американские аркадные игры, недоступные в Перу, в аналоговые игры. Выпустившись из средней школы, он стал исполнять роль ДМ (Dungeon Master) в регулярно проводившихся играх Dungeons & Dragons. Получив 8-битный компьютер, он самостоятельно обучился BASIC и ассемблеру, после чего начал писать игры для своих друзей, на этот раз в цифровом виде.

Вернувшись к играм в колледже, Костер и его жена Кристен «Kaige» Костер в 1992 году переехали в Таскалусу, штат Алабама, для учёбы в магистратуре. Именно там Костеры экспериментировали с MUD и увидели настоящий потенциал фэнтезийных онлайн-игр.

«Мы довольно быстро перешли от игры в MUD к их созданию, в середине-конце 1993 года уже стали хобби-разработчиками MUD, в частности, игры LegendMUD, выпущенной в день святого Валентина 1994 года», — рассказывает Костер.

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

«Упёршись в ограничения LegendMUD, мы начали работать над идеями новой MUD с гораздо более мощной симуляцией, включающей в себя крафтинг, NPC со своими устремлениями и искусственным интеллектом, существ с ресурсами, управляемую игроками экономику и многое другое», — вспоминает Костер.

Сооснователь LegendMUD«s Рик Делашмит рассказал о Костерах Старру Лонгу и Ричарду Гэрриоту из Origin Systems, зная о том, что студия ищет способы перевернуть мир онлайн-игр. Гэрриот предложил Костерам пройти собеседование на свободные должности дизайнеров в компании, и супружеская пара занялась собиранием своих идей о создании фэнтезийного онлайн-мира, дополненного графикой нового поколения.

«В результате в качестве резюме для приёма на работу мы отправили полученные с помощью мозгового штурма идеи о динамических экосистемах и системах квестов», — говорит Костер.

Костеров наняли и они приступили к работе в Остине 1 сентября 1995 года.

«Меня с моей женой Кристен наняли как пару, и мы начали работать под руководством первоначального ведущего дизайнера игры Эндрю Морриса, который раньше был соведущим дизайнером Ultima VIII. На тот момент наш друг Рик Делашмит уже несколько месяцев работал в Origin, разрабатывая первый прототип, построенный на движке Ultima VI.

65f67216352a6088f15e216c28202be6.png


«Когда мы в первый день пришли на работу, то спросили, о чём будет игра, и были потрясены, узнав, что она основана на идеях из нашего резюме».

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

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

«Движок ещё не был создан, поэтому я занимался такими вещами, как написание диздоков и огромного количества скриптов на ещё не существующем скриптовом движке. Всё это пришлось выбросить и переписать заново, когда настоящие скрипты вышли онлайн. Я занимался огромным объёмом дизайна технического арта, потому что нам нужно было разобраться, как работает движок рендеринга».

«Для альфа-теста мы с Кристен создали огромное количество графики, потому что у нас пока не было художников!»

По мнению Костера, всё — от написания базового скрипта игры до создания подвижного объекта — было его областью ответственности.

«Мне очень нравится заниматься разным. В титрах готовой игры упомянуто, что я занимался дизайном, графикой и кодом UO. И под кодом имеется в виду настоящий код клиента и сервера — все создаваемые дизайнерами скрипты считались дизайнерской работой, а не программированием».

«Такая междисциплинарная работа до сих пор очень важна для меня. При управлении большими проектами я могу говорить с любым из членов команды на его собственном языке и более эффективно поддерживать коммуникации между разными отделами. При создании своих небольших проектов это означает, что я обладаю абсолютно полным художественным видением, потому что могу выполнять любую работу».

Каждый день в Origin был возможностью творить. Набравшись опыта в мире MUD, Костеры могли взять свои инновационные идеи из LegendMUD и реализовать их в гораздо большем масштабе.

«Огромная доля дизайна UO была взята непосредственно из тех вещей, над которыми мы работали в LegendMUD или которые мы хотели видеть в Legend или в новой планируемой нами MUD».

«Мы разрабатывали виртуальную экосистему и экономические аспекты для последующей MUD, а в результате они оказались в UO. Бардовская система UO на самом деле напрямую позаимствована из Legend».

«Приручённые животные в MUD-ах были вызываемыми слугами, и в UO они тоже присутствовали — например, элементали —, но расширение этой системы приручением настоящих зверей было осознанным шагом вперёд. Чёрт, да даже Wall of Fire, убившая Лорда Бритиша, была заклинанием из LegendMUD».

Через шесть месяцев экспериментальной разработки в мае 1996 года был готов альфа-прототип Ultima Online. Пригласив около 250 игроков оценить результаты работы команды, Костер с коллегами наблюдали за тем, как игроки бесцеремонно пытались сжечь Британнию дотла. После закрытия альфы 20 мая 1996 года команда приступила к работе над бета-версией, и в процессе работы серверы были переписаны, чтобы обеспечивать одновременную поддержку 2500–3000 игроков.

Несмотря на сразу появившиеся в Ultima Online резню и разрушения, Костер увидел и другие стили эмергентного геймплея, которые всё таки появились. Именно их он с Кристен изначально стремились создать в игре.

«Игроки использовали способность покраски одежды, чтобы создавать униформы своих гильдий, они пользовались ею для проведения свадеб с невестами, одетыми в соответствующие платья. Они расставляли столы для вечерних трапез, чтобы служащие вдалеке от дома воины могли поужинать с семьями дома. Они начали проводить спортивные состязания. Они основали театральные труппы, таверны и полицейские отряды».

Выпуск игры стал огромной вехой для Origin Systems и многие из ранних разработчиков игры воспользовались этим событием, чтобы «сойти с поезда». Среди ушедших из компании сотрудников были Кристен Костер и Эндрю Моррис, изначально работавшие ведущими дизайнерами UO.

После ухода Морриса всё внимание неожиданно переключилось на Костера.

«Помню, что когда Моррис уходил, он подошёл ко мне и просто сказал, что теперь всё в моих руках, и это будет замечательно. Это было очень мило с его стороны. Сначала мне не давали должность ведущего дизайнера, потому что мне не хватало опыта управления. В конце концов, мне было всего 25 лет и это была моя первая должность в игровой индустрии. Меня называли креативным руководителем».

Взяв на себя обязанность руководителя команды дизайнеров игры, Костер волей-неволей обязан был оправдывать своё прозвище «Designer Dragon». Благодаря огромному успеху (UO стала самой быстро продаваемой игрой в истории Electronic Arts), в MMO были вложены дополнительные ресурсы. Эти ресурсы представляли собой команду разработчиков Ultima IX: Ascension. Origin поставила на паузу создание новой однопользовательской игры серии Ultima и перенаправила её команду на поддержку UO. Хотя с финансовой точки зрения такое решение имело смысл, команда Ascension была не очень им довольна, особенно потому, что ей пришлось работать с 25-летним дизайнером.

«Я узнавал у команды, как проходило создание отдельных функций, и разбирался, соответствуют ли они всему остальному. Если что-то шло не так и сотрудник отказывался меня слушаться, потому что не работал для меня, мне приходилось просить одного из продюсеров раздать указания».

154213410496c8da9f925a50cca51fcb.png


«Я фиксировал патчи, отслеживая все изменения в проекте. В то время не было проработанных проктик для этого, поэтому пришлось изобретать их самостоятельно. По сути, я довольно долгое время был комьюнити-менеджером игры. Я писал игровые скрипты, создавал территории и разрабатывал новые системы. Мы месяцами работали по 12 часов в сутки, часто даже без выходных. График работы был безумным. Мы настолько вымотались, что почти находились в бреду. Я ехал домой и видел по краям дороги тайлы травы».

Безумный график работы, который выдержал Костер, позволил ему стать руководителем разработки первого расширения игры The Second Age, и завоевал ему звание ведущего дизайнера.

Выпустив расширение и выгорев за три года безостановочной работы над UO, Костер отказался от должности дизайнера и перешёл к разработке следующей MMO Origin, Privateer Online, основанной на любимой студией вселенной Wing Commander. После отмены проекта Privateer Online в 2000 году Origin столкнулась с ещё одним массовым исходом из компании, но на этот раз увольняющихся сотрудников возглавил сам Лорд Бритиш. Костер воспользовался возможностью и тоже ушёл.

Многие бывшие сотрудники прослышали, что хорошим новым местом работы может стать Sony Online, особенно потому, что она готовилась совершить собственный прорыв в мире MMO со своим проектом Star Wars Galaxies. Sony приняла Костера с распростёртыми объятиями.

Несмотря на все элементы дизайна, которые Костер и Кристен вложили в Ultima Online, он утверждает, что наибольшее влияние на игру всё равно оказали олдскульные MUD, в которых технологические ограничения часто стимулировали инновации. Именно эти осознанные инновации заставляли Костера каждый день приступать к работе, чтобы вдохнуть жизнь в UO.

«Думаю, самым важным было стремление к максимальному прогрессу в этой области. Не только с точки зрения графики — этим занимались другие компании. И не только ради создания большого масштаба — если бы не мы, это бы сделал кто-то другой. Но без UO мейнстримом был бы чистый геймплей hack and slash».

Инновации Костера и Кристен вдохновили не только команды разработчиков Origin, но и авторов бесконечного количества других MMO, вышедших после UO.

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

«Именно это мы с Кристен привнесли в игры. Вероятно, многое из этого рано или поздно всё равно бы появилось, но оно появилось именно потому, что это сделали мы. А мы сделали это потому, что у нас было видение того, чем могут быть виртуальные миры».

© Habrahabr.ru