«Попали в игольное ушко»

Краткий пересказ интервью с разработчиками Quake Team Fortress, прародителем жанра «командный MMOFPS»

«Попали в игольное ушко»

В своё время компания id Software произвела революцию в игровой индустрии, создав целое новое направление игр — 3D-шутер. Quake, Doom, Wolfenstein — все эти игры признаны легендарными за новации в жанре.

Однако id Software стоит отдать должное и за другую, менее известную, но не менее значимую, услугу: удобный для модификаций и широко распространяемый игровой движок, на основе которого тысячи новичков и любителей по всему миру смогли окунуться в профессиональную разработку игр у себя на дому.

Так случилось и с тремя студентами из Австралии, которые просто захотели сделать любительскую модификацию для игры Quake, но вместе с этим породили огромный и очень популярный жанр командных шутеров. Overwatch, Rainbow Six: Siege, Team Fortress 2 — все эти игры берут свои истоки именно с Quake Team Fortress, первого командного MMOFPS в истории видеоигр.

Оглавление

«Целью было создание игр»

Робин Волкер и Джон Кук проживали в маленьком австралийском городке и дружили ещё с малых лет. Как и любые дети, они обожали игры, но в те времена (конец 80-ых) их было не так много, так что они брались за всё что увидят: и за приставки, и за карточные игра, и за ролевые, и даже пытались придумывать свои.

У Робина дома был свой компьютер BBC Micro, на который было сложно достать игры, но этот недостаток легко компенсировался возможностью программировать на нём. Информации для обучения было мало, но отец Робина в то время работал в IBM, а потому Робин ещё в раннем возрасте смог научиться азам программирования. Джон же научился программированию в школе, только когда туда привезли первые компьютеры. Уже тогда они оба могли запрограммировать что-нибудь простое, что могло сойти за игру, и постоянно занимались маленькими игровыми экспериментами.

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

Джон Кук

Вскоре они закончили школу и поступили в Мельбeрнский Королевский институт технологий, однако Робин отнёсся к учёбе без энтузиазма и почти не посещал занятия, вместо этого уже на втором семестре устроившись на работу по созданию встраиваемых систем для электростанций. Джон же, на год младше, проникся обучением. Тогда же они познакомились с третьим членом команды, Йеном Коугли.

Но то была их дневная жизнь, а по ночам они втроём играли в Quake. Они были не просто рядовыми игроками, но заметными членами сообщества: участвовали в кланах, ездили на соревнования по Quake и организовывали свои собственные соревнования в соседнем интернет-кафе.

Quake
Quake

Тогда число активных игроков было не больше 100 человек на всю страну, все друг друга знали. Интернет в ту эпоху, был очень медленным, а потому чтобы поиграть вместе, по 10 человек собирались в интернет-кафе или даже приходили со своими компьютерами в одну квартиру и подключались друг к другу по кабелям. Робин на тот момент в течении нескольких лет был лучшим игроком Австралии в Quake.

Не успеешь оглянуться, а у тебя на двухкомнатной квартире уже 14 человек, каждый со своим большим компьютером и большим CRT-монитором. Одни сидели под столом, вторые на столе, примерно так это выглядело.

Джон Кук

Конечно, им было интересно не только играть в игры, но и модифицировать их, и до этого момента они успели вдоволь наиграться с офлайновыми Doom и Duke Nukem 3D. Но перед ними открылись прежде невиданные перспективы, когда вышел Quake, а за ним и QuakeC, скриптовый язык для модификации Quake, который работал в том числе и в мультиплеере. Настолько вдохновлённые языком, они принялись разрабатывать мультиплеерный режим своей мечты в тот же день, день релиза QuakeC.

Разработка классов

У студентов уже был план того, что они хотят сделать. До этого им порядком надоел Deathmatch режим и друзья в основном собирались в командном режиме. И конечно же им хотелось добавить разнообразия.

Тогда в сообществе Doom была очень популярна пользовательская карта Fortress, в которой в начале игры игрок появлялся на базе команды и на свой выбор прыгал в одну из дыр, на дне которой лежало только одно оружие и выход в игровой уровень (сделать нормальное меню выбора оружие движок Doom не позволял). Целью игрового режима было пробраться на чужую базу и нажать специальную кнопку. После этого на базе вражеской команды, где была нажата кнопка, открывался доступ к продвинутому оружию, давая всей команде преимущество. Нужно было нажать на кнопку чужой команды три раза, тогда вы выигрывали игру.

Сравнение мода Fortress с картой 2fort из Team Fortress 2

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

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

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

Помимо игры в многопользовательские шутеры, мы играли и в другие жанры, например RPG и RTS. В этих играх вы часто контролируете команду игроков с разными наборами навыков, и мы хотели реализовать это в нашей игре… В этих играх вы всегда найдёте механику «камень-ножницы-бумага», именно она научила нас тому, что каждый класс должен иметь премущества и недостатки, лёгких и сложных врагов.

Йен Коугли

Все эти размышления легли в их новый проект, который они назвали в честь карты-вдохновителя, Team Fortress. Джон и Робин занялись программированием, а Йен — дизайном.

Все классы из игры, слева направо: медик, подрывник, солдат, пулемётчик, снайпер, скаут, инженер, огнемётчик, шпион<br />
Все классы из игры, слева направо: медик, подрывник, солдат, пулемётчик, снайпер, скаут, инженер, огнемётчик, шпион

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

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

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

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

Шпион возник из-за бага: в одной из версий игры игроки появлялись со скинами чужой команды. Пока разработчики пытались исправить баг, идея им понравилась и обрела новое воплощение уже в виде отдельного класса, мимикрирующего под других игроков. Идея действительно была интересной, но, по словам разработчиков, программирование класса было сущим кошмаром: было тяжело обеспечить правильное отображение игрока для обоих сторон (свой для чужих, но одновременно и свой для своих).

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

Одним из последний классов стал инженер. Инженер как раз был классом для новичков, которые хотели приносить пользу команде, но не справлялись с высоким темпом игры, или же для людей, которым такой темп просто не нравился. Нет, инженером нужно было играть вдумчиво и размеренно. Идея класса, который пользуется турелями, появилась под вдохновением игр серии Command & Conquer и фильма Чужой. Инженеру требовалось занять хорошую точку и успеть отстроиться, а затем удерживать свою маленькую базу в целости. Механизм туррелей вообще стал тем, что ещё никто не реализовывал в шутерах — но у них получилось.

Классический геймплей за инженера: бегать с гаечным ключём и долбить им свои постройки. На фото турель<br />
Классический геймплей за инженера: бегать с гаечным ключём и долбить им свои постройки. На фото турель

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

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

Робин Уолкер

И такой подход вылился в уникальную ситуацию: представьте себе, у вас игра на 32 человека, каждый из которых скорее всего никогда не видел до этого никого из своих сокомандников — и никогда не увидит. Все они мало интересуются другом и хотят играть сами по себе. Но посматривая по сторонам, они видели окружающих, которые постоянно заняты чем-то своим, что только богу известно, но всё равно работают на общую победу, и думали: «Вот это да, мы команда».

Карты не менее важны

Разработка классов не была единственной их деятельностью. Мало сделать игровую механику, нужно дать ей пространство для использования, чтобы она стала необходимой. Именно по этому принципу разрабатывалась первая карта для игры — 2fort.

Мост между двумя базами, 2fort<br />
Мост между двумя базами, 2fort

На карте надо было играть в режиме «Захват флага» — и разработчики, по их словам, были первыми, кто внедрил этот режим в Quake. Концепт был простой: сделать объект, который можно подобрать и унести с собой, а можно и потерять в бою.

2fort разрабатывалась параллельно с классами и именно на ней тестировались все новые механики. Таким образом, дизайн карты влиял на механики, а механики влияли на дизайн карты, чтобы одно как можно больше раскрывало потенциал другого. На карте было достаточно места, чтобы развернуться всем: и огнемётчику с его ближним агрессивным стилем боя, и снайперу с выжидательной стратегией на возвышении, и инженеру, где он мог занять удобную точку и для обороны, и для атаки. Неудивительно, что впоследствии 2fort стала самой популярной картой режима.

План карты 2fort<br />
План карты 2fort

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

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

Ограничения

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

Например, в языке не было возможности складывать строки, а потому даже для простой панели статуса приходилось писать огромные конструкции из выражений if-else. А ещё они не могли сделать полноценное меню, только выводить текст на экран. Не могли сделать анимацию огня на персонаже и вместо этого просто писали на экране «Теперь ты горишь».

"YOU ARE ON FIRE!"<br />
"YOU ARE ON FIRE!"

Так, из-за подобных ограничений они не смогли довести до конца класс Медика. Да, он получил мощное оборудование и мог лечить других игроков, но он всего лишь стал классом, «который необходим команде», но не «классом, за который хочется играть». В дальнейшем, в Team Fortress 2, этот недостаток был решён, когда Медик получил Убер-заряд, дающий и ему, и игроку по его выбору, неуязвимость на короткий промежуток времени, из-за чего вы можете в корне поменять ситуацию на поле.

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

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

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

Джон Кук

Геймдизайн через тесты

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

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

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

Есть такая старая военная поговорка: «Никакая стратегия не выдержит столкновения с врагом». Я бы мог адаптировать её в такой манере: «Никакой геймдизайн не выдержит контакта с базой игроков». Мы начинали выпускать обновления, игроки начинали пробовать, и это меняло всё. Отзывы меняли игру, идеи меняли игру.

Робин Уолкер

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

Дальнейший путь

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

Официальный трейлер мода

Пусть и медленно, но Team Fortress набирал глобальную популярность, а авторы получали много восторженных писем с просьбой продолжать разработку. Популярности прибавлялось и за счёт инициативы Робина: он написал тулкит, который другие мододелы могли развернуть на своей карте с минимальными изменениями, настроив лишь параметры игрового режима.

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

Когда был анонсирован Quake 2, команда предположила, что Quake, а вместе с ним и Team Fortress скоро уйдут в небытие, а потому им придётся портировать мод на вторую часть. Логичный повод, чтобы создать компанию, подумали они — и основали компанию по разработке игр, в качестве начального капитала взяв пожертвования от фанатов. Однако спросить совета им было не у кого — по их словам, они не знали ни одного разработчика игр в Австралии.

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

У Valve тогда были очень большие планы на игровую индустрию — и они набирали самых многообещающих разработчиков со всего мира. Конкретно в их случае скоро выходил Half-Life и авторам будущего хита очень хотелось сделать такую же удобную и мощную платформу для модификаций, которая была у Quake. А ещё они хотели, чтобы Team Fortress 2 был доступен для игры одновременно и для Quake 2, и для Half-Life, ведь они должны были выйти в одно и то же время (вскоре Half-Life перенесут).

Джон и я потом говорили о том, что мы будто попали в игольное ушко. Тот путь, который мы прошли, вообще не был возможен до появления Quake — и этот путь так же быстро закрылся через некоторое время.… В ретроспективе, оглядываясь назад: Боже мой, мы вообще не понимали, какого чёрта мы делаем. Мы так напортачили. Если бы Valve не выкупили нас, мы бы очень сильно провалились.

Робин Уолкер

Valve были не единственными, с кем новоявлвенной компании удалось поработать — они так же получали деловые предложения от EA и от Activision. Но работа с Valve была для них самой заманчивой, ведь вместо того, чтобы тянуть лямку сквозь долгую переписку, те просто купили ребятам билеты на самолёт. Начиная с марта 1998-го, следующие три месяца бывшие студенты провели в офисе Valve, делая всё что захотят. Несмотря на то, что формально они не были сотрудниками Valve, они могли передвигаться где угодно и разговаривать с кем-угодно. Разработчики Half-Life очень много помогали им с созданием версии Team Fortress на Source, в то же время никак не вмешиваясь в творческий процесс.

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

Гейб особенно вдохновлялся Кармаком, который предоставлял возможность другим людям давать дополнительный вклад в свою игру. Это именно то, что он хотел сделать. Он работал в Microsoft, он долгое время занимался разработкой Windows. Всё, о чём он думал — это платформы. Ты делаешь платформу, которая повысит цену игроков для разработчиков, а игрокам даст возможность достучаться до разработчиков. Вот какими он всегда хотел видеть игры.

Джон Кук

Только по окончанию поездки парни поняли, что все эти три месяца были огромным собеседованием и испытательным сроком, в конце которого Valve предложила им выкупить все их наработки и нанять их на работу. Хоть они и были шокированы тем, что кто-то вообще решил купить их труд, программисты Джон и Робин без раздумий приняли предложение. Йен же решил остаться в Австралии.

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

В дальнейшем Джон и Робин работали над Half-Life. Сначала они готовили её к выходу, а затем участвовали в разработке мультиплеерного SDK. Их главным стремлением было сделать SDK как можно более удобным для использования, ведь только так Half-Life могла превратиться в хорошую платформу для моддинга.

Основная команда разработчиков концентрировалась на разработке одиночного режима, а потому мультиплеер был добавлен только для галочки и не сыскал популярность. Джон и Робин параллельно вернулись к разработке Team Fortress, потратив на него три месяца (хотя первоначально собиралиcь потратить три недели). Им пришлось создавать игру заново, так как они не могли просто переписать готовый код на другом движке — код сплошь и рядом состоял из невероятных кульбитов в попытках обойти ограничения QuakeC. Новый мод был назван Team Fortress Classics.

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

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

Но вопреки волнениям вышедшая в 2007-ом Team Fortress 2 сыскала не меньший успех и смогла продержаться в списке самых популярных игр в течении десятка лет. Но это уже другая история.

4.4K4.4K открытий
33 репоста
26 комментариев

Комментарий недоступен

Ответить

Tf classic не на source, а на goldsrc. А статья хорошая, спасибо

Ответить

Более того, тогда даже названия GoldSrc не существовало.

Ответить

Комментарий недоступен

Ответить

Спасибо. В английском две "р" пишется, поэтому по аналогии привык.

Ответить

неправильно ты дядя Лёша заголовки пишешь, правильно будет в "В бутылочное горлышко"

Ответить

Бутылочное горлышко - это когда упираешься в ограничения, в ограниченную пропускную способность
Тут скорее имелось в виду "попасть в уникальную ситуацию"

Ответить