Чем серьезней становилась разработка Quake, тем чаще мы стали видеться в кабинете для совещаний. Иногда Кармак просто собирал нас, чтобы с трепетом поделиться каким-то своим открытием или сообщить, как продвигается его работа со структурами данных. Иногда мы обсуждали уровни для DOOM SE с Американом, Шоном и Сэнди, попутно интересуясь прогрессом внештатников. Я взял на себя создание карты E4M6: Against Thee Wickedly, где игрок начинает в горах, но быстро оказывается у входа в зеленый подземный замок.
Джей Уилбур то и дело бегал по встречам, сообщая о каждой открывающейся благодаря нашему успеху возможности: потенциальные экранизации, книги и руководства, техническое лицензирование, сотрудничество с Logitech для создания нового контроллера, прогнозы квартального дохода и так далее. Частью этих бизнес-инициатив занимался я, но только в двух случаях: если они требовали определенных знаний в области технологий или дизайна либо если незанятого персонала для помощи Джею просто не было. Для решения важных вопросов требовалось единогласное решение учредителей, а Кармак не хотел нанимать лишних людей для не связанных напрямую с разработкой Quake задач. Как писал Крис Ломбарди в июльском номере журнала Computer Gaming World за 1994 год: «Когда я вошел в скромный офис id Software и увидел, как демократически – хотя порой и анархически – эти десять человек управляли всеми процессами, а затем узнал, насколько успешными оказались их игры с условно-бесплатным маркетинговым подходом, я не мог отделаться от ощущения, что вернулся в дикие и неотесанные времена золотой лихорадки компьютерных игр».
Ну, такой подход работал, так что чинить его мы не собирались.
Несложно увидеть здесь зерно истины: нужно преодолеть это ограничение, чтобы позволить компании расти и снизить давление на команду, а достигнутым успехом и созданной интеллектуальной собственностью стоит распорядиться мудро. Так вышло, что мы действовали консервативно, и в id Software разработкой игр не занимались только Донна и Джей. Я обладал техническими, дизайнерскими и деловыми навыками – все они были полезны, так что пользовался я всеми. Мы двигались со скоростью света, стараясь оставаться в авангарде индустрии, и в тот момент нам не требовались деньги или рост. Связанные с программным обеспечением сделки вроде разработки Heretic или DOOM SE приносили большую прибыль относительно затрат и расширяли влияние двух наших столпов – дизайна и технологий. Эти инвестиции считались достойными моего потраченного времени, и данное решение приняла вся команда. А можно ли было назвать таковыми предложения по созданию официальных футболок и книг или интеграцию чужих технологий или оборудования в нашу производственную среду? В меньшей степени.
Вдохновленный моим сотрудничеством с Raven, Кармак заключил аналогичную сделку с Cygnus Studios – командой разработчиков из Иллинойса, которая сделала Galactix в 1992 году. Кармак настолько сильно впечатлился их программистом Скоттом Хостом, что предложил нам еще одну команду для создания игры на движке DOOM. Поскольку у Raven дела шли отлично, мы проголосовали за то, чтобы заключить новую сделку и разместить ребят в офисе на нашем этаже. Поскольку инициатором был Джон, мы думали, что именно он возьмется следить за качеством продукта и направлять команду – как я делал это с Raven. В то время Cygnus заканчивала игру для Apogee, и, учитывая наше близкое расположение к Apogee, их релокация в Мескит казалась вполне логичной. Джей организовал переезд и подготовил пустой офис с новыми столами, лампами и всем остальным, что было нужно для работы. Через неделю они увидели новый офис, который здорово их впечатлил, и с радостью начали трудиться.
В начале января в стенах компании Microsoft в Редмонде, штат Вашингтон, происходило что-то важное, о чем мы тогда не знали. Все силы были брошены на решение технической проблемы, которая возникла в рождественские каникулы. Дисковый релиз The Lion King по мотивам мультфильма «Король Лев» для Windows 3.1, основанный на программном интерфейсе WinG («G» от слова «Графика») и вышедший в декабре 1994 года, работал со сбоями на новых компьютерах Compaq, которые поступили в продажу на праздниках. «Король Лев» – один из самых популярных мультфильмов «Дисней», поэтому вокруг игры и, в частности, Windows как дружелюбной игровой операционной системы выстроилась целая маркетинговая кампания. Корпорации вроде SEGA и Nintendo претендовали на львиную долю бизнеса в индустрии, поэтому Microsoft тоже захотела принять участие. Предустановленная на компьютерах Compaq The Lion King вылетала на всех до единой машинах, что вызвало немалое удивление: она все-таки должна была показать преимущества WinG над MS-DOS. Провал оказался настолько громким, что журнал PC World поместил игру на шестое место в рейтинге «25 худших технических продуктов всех времен», заявив, что «не так много продуктов обвинили в том, что они убили Рождество для тысяч детей, но именно это случилось с первой CD-игрой для Windows от Disney».
Позже выяснилось, что Compaq в одностороннем порядке изменила свое аппаратное обеспечение, не предупредив об этом команду WinG. Из-за этого многие начали выражать сомнения, что Windows станет будущим PC-гейминга, и начали рассматривать возможность вернуться к разработке для MS-DOS. Никто не хотел, чтобы их игры обвиняли в убийстве Рождества.
DOOM II на базе MS-DOS отлично работала без каких-либо сбоев, демонстрируя самые передовые графику и скорость, какие только мог позволить PC, и доказала, что компьютеры могут конкурировать с консолями. Джейсон Робар, евангелист игровых технологий Microsoft, показал DOOM II Алексу Сент-Джону, руководителю группы Microsoft по мультимедийной стратегии. Алекс увидел производительность DOOM II и заметил, на какой скорости она обращается к аппаратным средствам системы – гораздо быстрее, чем позволяла программам все еще находящаяся в разработке Windows 95. Это событие стало важным катализатором для смены направления.
Алекс и Джейсон хотели привлечь разработчиков игр к поддержке запуска Windows 95, чтобы доказать: PC способен конкурировать на рынке с консолями от Nintendo, Sony и SEGA. Они знали, что выход DOOM II на Windows 95 станет ключом к тому, чтобы вернуть разработчиков. Для плавного функционирования DOOM II использовала в MS-DOS мгновенный доступ к аппаратному обеспечению в реальном времени.
Алекс, Крейг Эйслер и Эрик Энгстром решили, что Microsoft необходимо создать комплект разработчика программного обеспечения (SDK), который позволит Windows 95 обеспечить столь быстрый доступ к играм. Алекс трудился с Крисом Хеккером над WinG SDK для быстрого доступа к графике, но DOOM II использовала все аппаратное обеспечение компьютера, а не только видеокарту. Возможности WinG оказались слишком ограниченны. Новые API должны были решить все трудности, с которыми разработчики сталкивались при создании игр для Windows 95, будь то звук, музыка, многопользовательские соединения или устройства ввода, например, джойстики.
Алекс, Крейг и Эрик отказались от подхода WinG и создали небольшую skunkworks-группу для создания SDK, осуществлявшего «прямой» аппаратный доступ к нескольким компонентам в реальном времени. Итог этой разработки навсегда изменит игровую индустрию для PC – и DOOM II послужила импульсом для ее начала. Проект получил название DirectX – это расширение для Windows, позволяющее всем программистам делать для этой ОС такие же требовательные к ресурсам игры, как DOOM II.
К середине января работа Кармака над новым движком продвинулась настолько, что он мог рендерить тестовый уровень, хотя под этим «уровнем» следует понимать небольшую коробку. Но все же очень впечатляющую коробку, ведь она была трехмерной. С ее помощью Джон сумел создать структуры данных Quake и поэкспериментировать с тем, как это 3D-пространство может храниться в памяти компьютера.
Поскольку редактора у нас еще не было, Американ поставил на паузу свою работу над DOOM SE, чтобы помогать Кармаку по мере необходимости ручным вводом данных уровней в текстовые файлы – занятие очень утомительное, но необходимое для изучения архитектуры движка. В итоге Джон смог создать рудиментарный фреймворк для QuakeEd, который интегрировал базовый блок для создания уровней – текстурированный трехмерный прямоугольник, получивший от Кармака название «браш». Создав такой инструмент, Джон передал работу над QuakeEd мне.
Я начал продумывать и программировать элементы пользовательского интерфейса, чтобы повысить качество взаимодействия с QuakeEd. Даже если наши программы не попадали на рынок, мы считали, что качество и удобство использования инструментов влияют на конечный результат. Если кто-то будет испытывать трудности с убогими инструментами, особенно при обучении 3D-моделированию, вряд ли этот человек будет настроен на создание шедевра. Наша команда всегда работала напрямую и с инструментами, и с игровой начинкой. Никто в id Software не вел проектную документацию ни для одного из наших двадцати четырех тайтлов, за исключением DOOM, дизайн-документ которой в работе не использовался. Таковым считалась сама игра, и никто не был против. Я не считал чем-то сложным запоминание деталей ее дизайна.
QuakeEd был крайне важен для дизайнеров, потому что с его помощью можно изучать 3D-дизайн уровней. Американ теперь сможет сделать больше прототипных уровней для Кармака, продолжающего развивать архитектуру движка. Обычно над созданием прототипов я трудился рука об руку с Кармаком, но в тот раз ему помогал Американ, пока я программировал QuakeEd, руководил разработкой The Ultimate DOOM (новое название DOOM SE) и Heretic 2, а также взаимодействовал с прессой и принимал маркетинговые решения касательно Heretic и DOOM II.
Неофициальным девизом id Software можно считать выражение «Мы – ветер». Мне казалось, что оно прекрасно описывало и мою повседневную деятельность, когда я то занимался одним проектом, то тут же перескакивал на другой, чтобы ни один из них не простаивал. Иногда работал с одной игрой утром, со второй – днем, а с третьей – ночью. Невозможно описать, как быстро все происходило. Не было и дня, чтобы про нас не написали в новостях, чтобы не поступили десятки звонков от СМИ и потенциальных партнеров или чтобы с нами не поздоровались случайно оказавшиеся рядом фанаты. На парковке, в холле, в продуктовом магазине – где угодно.
Обновив QuakeEd с учетом актуальных наработок Кармака, в конце марта я принялся за The Ultimate DOOM с целью закончить четвертый эпизод Thy Flesh Consumed. Мы с Американом и Шоном взяли на себя по два уровня каждый. Кевин нарисовал новую текстуру оранжевого неба, новую карту эпизода (демонстрируемую перед началом уровня) и новый экран титров. Четвертый эпизод задумывался более жестким, чем первые три. Я закончил уровень E4M6: Against Thee Wickedly, который делал в свободное время. На нем было приятно и сложно играть с пистолетным стартом, а еще он достаточно большой. Затем я решил сесть за E4M2, который хотелось сделать непростым, но более компактным, чтобы тот органично вписывался в эпизод: ему предшествовал E4M1 от Американа – до идеального крохотная карта, учитывая, что она была первой в эпизоде. Возможно, находясь в режиме мультизадачности, я хотел проверить, насколько быстро смогу создать что-то с высокой планкой качества.
Я приготовился заняться этим вечером пятницы без малейшего понятия, сколько времени у меня уйдет. Важнее всего было то, что это веселый и сложный профессиональный вызов. Я подготовил домашнюю станцию NeXTSTEP и компьютер. В то время я постоянно переслушивал только что вышедший альбом Above от группы Mad Season. Создание каждого уровня начиналась с того, что я откидывался на спинку стула, задумывался и пытался вообразить пространство карты.
Прежде всего мне нужно визуализировать путь игрока через весь уровень. Поначалу в моих планах всего несколько первых комнат, но поскольку E4M2 планировался небольшим, а я пытался сделать все быстро, то пусть со стартовой позиции будет видна значительная часть игрового пространства. Следом я решил, что выход тоже будет виден с самого начала. В дополнение к обозримой территории я добавил две боковые области, имевшие важнейшее значение в прохождении карты. Также я добавил несколько блокирующих колонн, для поднятия которых игроку потребуется найти ключи – их я разместил в боковых областях. В этот момент я представил ощущения и геймплей в получившемся пространстве, продумывая путь через уровень, и по крайней мере начало казалось отличным. Я взял мышь и быстро создал черновик с границами карты, а затем сделал ее играбельной, чтобы погрузиться в уровень, прочувствовать его и начать творить. Я решил, что геймер будет находиться на приподнятой платформе внутри лавовой пещеры, а враги и предметы – спрятаны в лаве внизу. Конечную область я сделал сильно выше; к ней теперь вело подобие лестницы, через которую нужно перепрыгнуть, чтобы продолжить подъем к выходу. Там путь игрока заблокирует колонна, которую можно опустить с помощью найденного ключа.
Одно из самых важных решений – опредить, как уровень начнется. Поскольку пространство открытое, многие враги увидят игрока в самом начале. Я разместил двух стоящих к нему спиной сержантов с дробовиками. Противники вдалеке заметят геймера и начнут швыряться в него огненными шарами, поэтому имело смысл спрятаться за сержантами, чтобы те получили урон и начали перестрелку. Эта тактика прекрасно работала и вознаграждала предприимчивых игроков.
Согласно моему замыслу сперва нужно попасть в левую часть уровня, затем телепортироваться обратно в начало, чтобы открыть вход в правую часть, пройти через нее, снова телепортироваться в начало, чтобы поднять колонну, преграждающую путь к выходу. Добравшись до вершины, я принял еще одно решение: поздравить игрока за успехи должен Кибердемон!
Создание этого уровня в сжатые сроки свелось к представлению маршрута в голове и быстрому построению геометрии. Закончив с ней, я мог начать размещать врагов и предметы, а затем полировать результат до тех пор, пока карту не получится пройти на Ultra-Violence (предпоследняя сложность) с пистолетным стартом. Я всегда первым делом балансирую уровни под эту сложность, а затем постепенно уменьшаю давление на игрока для сложностей попроще и увеличиваю для Nightmare. Заканчивая работу, я добавил три секрета. Треть потраченного времени пришлась на прохождение, чтобы я мог хорошо прочувствовать уровень, а затем отполировать баланс, пока он не стал мне нравиться целиком. Я проверил выравнивание текстур и любые другие потенциальные технические сбои – и в итоге финализировал E4M2 в 6 утра. На всю работу ушло шесть часов. Это рекорд по спидмаппингу для любого официально опубликованного уровня для любой части DOOM.
Когда уровни были закончены, я перепроходил их – нужно убедиться, что они сбалансированы относительно друг друга, а сложность нарастает постепенно. Затем мы давали им официальные имена. Иногда они возникали во время разработки, но не в случае с четвертым эпизодом – видимо, слишком уж бурным на события был тот период времени. Вместо этого Кевин собрал список интересных библейских цитат, и мы составили имена из понравившихся нам отрывков. E4M2 назывался Perfect Hatred – в его основу легла цитата «I hate them all with perfect hatred; I count them as my enemies» (Псалтирь 138:22). Разработка The Ultimate DOOM завершилась в конце марта, а силами GT Interactive уже в апреле игра попала на прилавки. Я занимался всем программированием, обновлением движка до версии 1.9 и управлял созданием проекта вплоть до выхода «на золото».
К тому времени начали поступать роялти за DOOM II, нашу первую часть в серии DOOM, продаваемую в рознице. Не у всех имелся модем, поэтому наличие игры в магазине было огромным бонусом. Люди из GT говорили, что DOOM II продается «очень хорошо», но было трудно понять значение этой фразы, пока мы не получили первый чек с авторскими отчислениями.
В тот день я поехал с Кевином и Адрианом в банк, где был счет нашей компании. Я положил чек в вакуумную трубку, и на лице кассира возникло недоумение, когда она увидела количество нулей. Этим парням еще и тридцати лет не стукнуло, а они уже приехали на ярко-желтом Chevy Blazer 1977 года с чеком на три миллиона долларов. Кто они такие? Дамочка вручила мне квитанцию, и всю обратную дорогу мы с ребятами смеялись. Не вспомню ни один подобный момент, который мы восприняли обыденно. Большинство из нас выросли в небогатых семьях, поэтому даже просто увидеть такой чек было приятно, но при этом невероятно странно. Тем, кто привык жить сдержанно и скромно, не очень ясно, что делать с таким количеством денег. В моем детстве бывали даже эпизоды бездомной жизни, а став взрослым, я обанкротился. Мы сделали то же, что и всегда, – оставили деньги на банковском счете.
Тем временем команда Raven успешно работала над продолжением Heretic. Первая часть отлично продавалась, и мы знали, что продадим еще больше копий, когда вместе с GT Interactive выпустим игру в рознице. Мы не сомневались, что инвестиции окупятся. При разработке новой Heretic я поставил перед собой несколько целей, первой из которых стало добавление трех играбельных персонажей: духовного клерика, здоровяка-бойца и колдующего мага. Это решение подтолкнуло проект чуть дальше в направлении RPG. Персонажи имели уникальные способности и особое оружие, которое можно было собирать на протяжении всей игры. Другая моя цель заключалась в разработке системы хаб-уровня. Я представил центральный уровень, соединенный с несколькими другими, где игрока ждут сражения и головоломки. По их завершении можно вернуться в хаб и увидеть, что открылись новые ворота и появились новые неизведанные области.
Бен Гоки и Крис Райнхарт, программисты Heretic 2, настолько наловчились работать с движком DOOM и Heretic, что расширили его возможности и добавили способ открывания дверей, как в реальной жизни, а не как в DOOM, где двери могли открываться только наверх. Провернуть такое непросто, поэтому парни меня удивили. Они обуздали движок и заставили его делать то, что изначально не задумывалось. Я надеялся, что они закончат с игрой до конца года.
В марте 1995 года мы с Кармаком провели очередную встречу, касающуюся развития Quake. Как и следовало ожидать, в техническом плане работа по-прежнему шла очень тяжело. Ранее за такой промежуток времени удалось сделать движок DOOM целиком, но Quake оказалась куда сложнее. Наша встреча была посвящена конкретной проблеме: Кармак искал способ создать в мире свет, чтобы затем все попавшие под него текстуры отображались правильно. Благодаря градиентному освещению одна текстура может становиться светлее или темнее в зависимости от того, где находился источник света, подобно тому, как свет в углу комнаты озаряет стены.
Технически говоря, он искал способ сделать быстрый метод отображения текстур, чтобы каждый полигон (фигуры, из которых стоит каждый браш, персонаж, оружие и другие детали на экране) идеально выглядел под любым углом. Это называется наложением текстур с коррекцией перспективы, а для расчетов требуется программирование блока вычислений с плавающей точкой. Создание идеальных полигонов – это только половина проблемы. Другая половина заключалась в том, чтобы заполняющие экран компьютера точки работали с частотой 60 кадров в секунду, тем самым обеспечивая плавное движение игры. В наши дни с таким справится карта с 3D-ускорителем, но в 1995 году не существовало графических процессоров, доступных простым потребителям. Мы вырисовывали каждый пиксель на экране вручную, используя собственные вычисления, чтобы определить необходимое изображение на местоположении пикселя исходя из того, на что смотрит игрок. Наш экран поддерживал разрешение 320×200, т. е. 64 000 пикселей. При 60 кадрах в секунду нам нужно отрисовывать 64 000 пикселей шестьдесят раз в секунду, что суммарно составляет 3,84 миллиона пикселей в секунду, – и все это без какой-либо помощи от графического оборудования. Кроме того, требовалось оставить достаточно мощности процессора на другие вычисления: выбор полигонов для отображения, принятие ввода команд от игрока, перемещение игроков в мире, обработка всех движущихся объектов, включая вражеский ИИ, воспроизведение звука и музыки, перемещение сетевых данных в компьютер и из него. Перед нами стояла грандиозная задача.
Мы обсудили, как запрограммировать текстуры с коррекцией перспективы на языке ассемблера. Написание кода на ассемблере позволило использовать процессор с оптимальной эффективностью, превышающей возможности компилятора языка C. Затем нужно было оптимизировать полученный код для увеличения скорости. Это очень продвинутое программирование. С появлением 3D-ускорителей трехмерные анимации и графика в играх стали восприниматься как само собой разумеющееся, но все гораздо сложнее. Определение и отображение на плоском экране реалистично выглядящего объекта – это необычайно трудная задача. Работа становится еще сложнее, когда нужно сделать так, чтобы реалистичные персонажи могли перемещаться вокруг этого объекта, воздействовать на него, взаимодействовать с ним или даже двигать его, а при каждом движении отбрасывалась тень, менялось освещение и окружающие текстуры. Провернуть все это без видимых задержек на экране, когда вы добавляете возможность многопользовательской игры, где у каждого подключившегося к сети свои проблемы с доставкой данных? Если задуматься, это нечто выдающееся. Мы в id Software привыкли решать такие технические и дизайнерские задачи, а также избегать связанных с ними рисков. Это необходимо, если мы хотели и дальше оставаться впереди всей индустрии.
Во время одной из наших встреч Кармак сказал, что пригласил Майкла Абраша поработать над движком – он переписывался с ним уже несколько месяцев. Я был только за. Когда-то Абраш написал книгу, которая помогла Кармаку совершить прорыв в области сайд-скроллинга, плюс он много лет вел колонку по программированию в Dr. Dobb’s Journal. Учитывая сложность всего, что связано с 3D, вполне логично было привлечь к команде еще одного программиста-джедая, ведь до этого Кармак корпел над движком в одиночку. Так что он отправился в Редмонд, штат Вашингтон, где Майкл трудился в Microsoft. Во время ужина Джон сказал ему, что работа в команде над Quake станет первым шагом к метавселенной, описанной в получившем массу наград киберпанковом романе Нила Стивенсона «Лавина». Кармак утверждал, что в Quake появятся независимо бродящие в трехмерном пространстве управляемые персонажи, и это можно интерпретировать как один из шагов, необходимых для создания метавселенной или виртуального мира. Заинтересованный Майкл согласился на это предложение. Абраш поговорил с Джеем и стал миноритарным владельцем id спустя несколько месяцев.
Американ продолжал работать с Кармаком в качестве технического дизайнера уровней. У нас все еще не имелось настоящих уровней, как и геймплея, но Кармаку требовался помощник для создания тестовых локаций. По большей части Магки собирал одну коробку за другой, но каждая из этих коробок тестировала или помогала улучшить движок. Дело помаленьку двигалось. Кармаку удалось добавить в игровой мир двухмерный спрайт золотого шара, олицетворяющего игрока. Это было невероятно! Мы впервые увидели в нашей трехмерной вселенной что-то движущееся.
Макги купил дом по соседству с Кармаком, который на тот момент был одержим решением возникшей перед ним проблемы. Джон не прекращая работал и даже начал захаживать к Американу в гости, чтобы делиться с ним мыслями и идеями, которые Магки не особо понимал. Зато он был хорошим слушателем и смог побыть опорой для Джона. Мы с Адрианом шутили, что наверняка их дома соединены туннелем.
Учитывая прошлый опыт, наверное, каждый из нас думал, что через месяц или два мы приступим к созданию базового геймплея Quake. В случае с Wolfenstein 3D и DOOM Кармак сделал движки пригодными для работы за несколько недель, но на сей раз счет пошел на месяцы. Этот движок представлял собой огромный технологический скачок. Мы не только поднимем планку для 3D, в наши задачи также входило объединение игроков друг с другом через Интернет. Сеть всегда онлайн, поэтому люди смогут подключаться к серверам Quake и играть в любое время. Мы представляли себе геймеров, собирающихся в команды, чтобы сразиться с другими командами, как это происходит в футболе. Мы видели, что благодаря Интернету уже совсем скоро игры изменятся, и Quake станет поддерживать его одной из первых.
Чтобы сосредоточиться на очень важном для проекта сетевом коде, мы нашли отличного сетевого программиста. Он трудился в компании Novell, специализирующейся на программном обеспечении для файловых серверов, работающих с большим количеством одновременно подключенных пользователей. Его звали Джон Кэш. Перед тем как Кэш присоединился к команде, Кармак искал способ запрограммировать движок на использование сетевого потока данных – этим термином описывается, как сеть и движок пересылают информацию туда и обратно. Кармак написал код, который выглядел так, будто сетевые драйверы работали и передавали данные, но в симуляции, где движок разговаривал сам с собой. Задача Джона Кэша состояла в замене симуляции реальным сетевым кодом. Он должен был проложить сетевой «водопровод», то есть сделать программное обеспечение, которое соединит движок с драйверами сетевых устройств и доставит пакеты данных в Quake и из Quake. Кэш планировал присоединиться к нам в апреле, примерно в то же время, что и Абраш. Мы надеялись, что наем таких опытных программистов снимет нагрузку с Кармака и позволит ему быстрее закончить работу.
Из-за значительных технических сложностей, связанных с созданием трехмерного движка, остальная часть команды могла только сидеть и ждать. На тот момент у нас в штате было два игровых программиста (Дэйв Тейлор трудился над звуком), а Абраш и Кэш планировали начать работу только в апреле, но ни один из них не будет заниматься геймплеем. Мы понимали, что движок на первом месте.
Задач тем не менее все равно хватало. Рост нашего бизнеса напоминал ядерный гриб – это результат выпуска наиболее важных игр последнего времени. Конечно, у этого были плюсы, но не обошлось и без минусов.
С выходом DOOM II id приняла множество решений, чтобы воспользоваться преимуществами наших технологий и удовлетворить огромный фанатский спрос. GT Interactive продавала все, что мы им давали, а фанаты лишь просили добавки. Казалось, что на каждом углу нас поджидала еще одна идея, которая принесет деньги. Разработка Heretic 2 шла гладко, и вот-вот должен был состояться релиз The Ultimate DOOM. Я был ее продюсером и директором, а также запрограммировал QuakeEd и программу установки The Ultimate DOOM. Кевин оформил коробку The Ultimate DOOM и помогал маркетологам GT Interactive сделать привлекательную для геймеров рекламную кампанию. Тем временем на Джея упала тысяча и одна задача, он просто не успевал сделать все и сразу. Если кто-то хотел поговорить с id о коммерческом партнерстве, первым делом этим людям отвечал Джей. Поток электронных писем и телефонных звонков никогда не прекращался. Казалось, еще чуть-чуть, и нас затопит, но команде было не привыкать много работать.
Кармак не единственный, кто рос как специалист. Каждый осваивал новые технологии, переходя от Средневековья к раннему Новому времени в области графики и гейм-дизайна. С начала существования id Software каждый элемент в наших играх был двухмерным. Даже в DOOM II враги были двухмерными. Преодолеть трехмерный барьер оказалось очень сложно, и почти весь 1995 год наша команда занималась исследованиями и разработками. Нам предстояло многое изучить – от новых программных инструментов до новых измерений (буквально) взаимодействия с игроками, чего никто из нас раньше не делал.
Кевин осваивал новую технологию для создания 3D-моделей – они должны были стать совместимыми с движком. Он отказался от помощи Грегора Пунчаца, чьи модели использовались в DOOM, и начал делать их сам в цифровом виде на нашей новой рабочей станции Silicon Graphics Indigo, используя установленную на ней программу Alias Wavefront. Кевин собирался самостоятельно обучиться тому, ради чего куча людей четыре года ходит в колледж. Он хотел создавать 3D-модели в Wavefront, а затем с помощью Deluxe Paint II рисовать для них текстуры. Наложение текстур на 3D-модели было новым рубежом. Поскольку текстуры будут наложены на трехмерные объекты, им придется соответствовать моделям, как рубашка подходит по размеру человеку. Этот процесс называется «скиннинг».
Трехмерного персонажа можно вращать и детально рассмотреть с любого ракурса. Делать анимации трехмерных персонажей куда проще, потому что не нужно перерисовывать всего героя, чтобы показать его бегущим, – достаточно просто изменить значения того, где в определенное время должны быть ноги. Игра сама мягко перемещала ногу из точки А в точку Б – и вот персонаж уже бежит, а не стоит. Это работало куда более плавно, чем наш предыдущий процесс рисования отдельных спрайтов для каждого движения.
Впрочем, усердно трудился не только Кевин. Дэйв Тейлор делал инструмент, создающий на основе его моделей новый графический файл, где Кевин сможет отрисовать текстуры. Код Кармака использовал этот графический файл для наложения текстур на каждую поверхность трехмерной фигуры. В первой модели Кевина было всего двести полигонов. Казалось, что этого маловато, но наложенная текстура была достаточно детализированной, благодаря чему результат выглядел здорово. Нас удивило, что этого получилось достичь даже со столь небольшим количеством полигонов.
Адриан тем временем рисовал текстуры для первых уровней в Cредневековом сеттинге с соответствующей архитектурой, но также перед ним стояла другая важная задача: определение цветовой палитры Quake. Из всего многообразия Адриану пришлось выбрать лишь шестнадцать цветов. У каждого из них будет шестнадцать различных градиентных оттенков, потому что каждый цвет будет переходить от полностью темного к полностью освещенному. Не самая тривиальная задача, которая потребовала множества проб и ошибок.
Пока Кармак работал над движком, я обновлял QuakeEd, чтобы каждый мог отслеживать и тестировать свой прогресс прямо на ходу. Для редактора я сделал интерфейс, чтобы дизайнеры уровней могли просматривать созданные Адрианом текстуры для предметов окружения вроде камней, грязи и травы, а также потолка, стен, скал, деревьев и прочего. Затем от меня требовалось наложить эти текстуры на поверхности брашей, чтобы при их использовании появлялся камень, а не серый прямоугольник. Для создания правильного настроения и проверки системы света я внедрил возможность добавлять на уровни объекты вроде факелов, которые освещают определенную область.
QuakeEd использовался все чаще, поэтому я улучшил пользовательский интерфейс, чтобы упростить процесс компиляции карт. Наши первые пробные уровни были сделаны с помощью элементарных прямоугольных брашей – мы могли перемещать их, изменять размер и накладывать текстуры. Однако в то время было невозможно создавать диагонали или вносить другие корректировки, поэтому самые ранние пробные карты оказывались совсем уж прямоугольными, но зато полностью трехмерными. Я продолжал расширять возможности редактора в течение следующих нескольких месяцев.
Сэнди и Американ начали использовать раннюю версию QuakeEd и первые текстуры Адриана, чтобы поучиться создавать уровни в трехмерном пространстве. Скачок творческой концепции был огромен, но сложность и время работы сильно возросли. Создание простой комнаты в DOOM могло занять секунд пятнадцать при хорошем знании редактора. В Quake из-за использования брашей для создания пространства и источников света для освещения области на проектирование подобной комнаты уходило несколько минут. Умножим эти усилия на время разработки всего уровня и увидим, каких трудов стоила каждая карта в Quake. В исследовательской фазе времени уходило еще больше, потому что дизайнеры изучали не только инструмент, но и способы работы в трехмерном пространстве.
Несмотря на то что многое пришлось постигать с нуля, прогресс не мог не радовать. Это напоминало ранние этапы разработки наших прошлых тайтлов, ведь трудились мы над базовыми вещами – новыми инструментами и технологиями, а также продумывали общее видение игры. Мы знали, что нужно правильно заложить правильный фундамент, чтобы геймплейный код, представляющий собой буквально «мясо игры», мог использовать преимущества новых технологий. Это было тяжело и в новинку, но я постоянно повторяю эти слова не только для того, чтобы подчеркнуть наше превосходство в индустрии тех лет: гонка за таким превосходством постоянно создавала новые сложности по мере прогресса. Они возникали постоянно – с кодом, графикой, дизайном. И даже несмотря на это мы замечательно проводили время. Изучать что-то новое и создавать что-то новое, быть впереди остальных – именно этого мы и хотели. Наши финансы это позволяли, особенно учитывая доход от побочных продуктов. В офисе только и было слышно, как мы реагируем на очередные открытия.
«Это просто охуенно».
«Ты только взгляни на это».
«Охренеть, да они глазам своим не поверят, когда увидят».
«Какая разница, что это спрайт. Этот спрайт двигается в трехмерном пространстве».
Каждую ночь мы покидали офис воодушевленными и каждое утро возвращались с еще большим энтузиазмом.
Эд Дилле работал над печатным руководством по прохождению DOOM II. Чтобы подстегнуть продажи, мы решили включить туда мое интервью о Quake, которое могло разжечь в людях интерес к покупке. В диалоге мы затронули процесс разработки, который я описывал так:
ДР: [Он] совершенно свободный. У нас нет даже дизайн-спецификаций проекта. Мы просто собираемся вместе и задаемся вопросом: «Какую игру мы хотим сделать?» Технологии и творческое видение для следующего тайтла у нас уже есть, так что мы понимаем, как дать огромную фору только что выпущенной нами игре. Затем мы продумываем сеттинг и стиль графики так, чтобы она раскрывала потенциал наших технологий. Потом мы думаем: «Тема игры у нас такая-то». И тогда художники начинают рисовать то, что им кажется крутым. Потом они создают монстров, а мы – уровни. Ну и конечно, я приступаю к проработке инструментов для создания мира и всего такого. Подытоживая, мы создаем кое-какие вещи и используем их, чтобы усиляться. Технологии мы каждый раз переписываем с нуля…
На тот момент в ранней стадии разработки мы уже продвинулись достаточно далеко, так что мне было вполне комфортно признаваться людям: она займет много времени. Нас ничего не сковывало – никаких отчетов перед вышестоящими, никаких твердо прописанных в дизайн-документе концепций, которые к тому же могли оказаться либо неправильными, либо вовсе невыполнимыми. Разработка состояла из многих проб, ошибок и переделываний. Впереди ждала знакомая дорога, полная экспериментов.
ДР: …к тому времени мы узнаем очень многое о технологии и принципах работы движка. Так что для игры мы сделаем кучу всего, а затем, вполне возможно, выбросим большую часть где-то на полпути. Вот таким способом мы учимся создавать крутые игры. У нас нет графика, где сказано: «К третьему месяцу мы должны закончить первые три уровня». С таким подходом уровни будут готовы вовремя, но через год к моменту завершения продукта окажется, что эти первые три уровня – полный отстой. И тогда их придется оставить в итоговой версии, потому что они уже занесены в отчет. Мы так не делаем. Мы попросту не выпустим игру, пока она не станет крутой. Первый уровень DOOM мы переделали за две недели до релиза, потому что его предыдущая версия была стремной. Вот такой у нас подход к дизайну. Мы не придерживаемся строгой документации, ее у нас нет. Есть только то, что круто.
А потом речь зашла о дизайне. В начале 1995 года он только начал обретать предварительную форму и полностью подчинялся развитию технологий – то же можно было сказать и про наш процесс дизайна. Я хотел подчеркнуть достижения движка Кармака и объяснить, что игра будет сделана в полноценном 3D-окружении. Хотел, чтобы исследование игрового мира было таким же интересным, как и сражения, – в будущем такого эффекта достигли потрясающие тайтлы World of Warcraft и Elden Ring. Хотел заменить готовый саундтрек на звуки эмбиента. Я рассказывал, как мы построим мрачный жуткий лес, напоминающий о наших приключениях в Dungeons & Dragons, и представим игрокам новую механику, которую обсуждали внутри студии, – триггер с помощью взгляда.
Скажем, заходите вы в лес… Кругом темно, а справа видно пещеру или типа того. И как только вы посмотрите на эту пещеру, что-то произойдет. Раздастся низкий зловещий звук, и от одного только кинутого взгляда запустится определенное событие.
Беседуя о боевой системе в Quake, я сравнивал ее с DOOM II и подчеркивал, что надеялся сделать бои более тактическими, сократить как число врагов, так и дистанцию между ними и игроком, и, разумеется, задействовать в сражениях фирменный молот. Как я говорил, новые противники заставят «поработать над ними как следует». Чтобы подчеркнуть свою уверенность в проекте, я добавил следующее.
Прежде в играх вы были как бы дистанцированы от смерти. Прицелились во что-то из дробовика, нажали спусковой крючок – бах! – труп… В Quake предстоит убивать по-настоящему. Это не просто нажатие кнопки, вам придется реально выбивать из этой твари все дерьмо, пока она не сдохнет.
Такой ранний взгляд на Quake обрадовал фанатов, а наше видение привело их в восторг. Им отводилась роль крутого засранца по имени Квейк, у которого есть огромный молот. Его можно бросать во врагов, он возвращается обратно в руку, им можно бахнуть по земле, чтобы задеть всех, кто оказался неподалеку. А еще у Квейка есть мистический артефакт куб Адских Врат, который будет очень рад сожрать поверженных врагов и расстроится, если игрок начнет избегать сражений. В качестве платы он высосет души из определенных противников. Очевидно, знакомые с Quake знают, что это видение кардинально изменилось, но в тот момент мы рассчитывали именно на такой геймплей.
Разумеется, движок игры все еще был далек от готовности, поэтому у каждой строчки описания была звездочка: «* зависит от производительности». Абраш и Кэш все еще не присоединились к id, и мы с нетерпением ждали, когда Кармак наконец получит необходимую поддержку. Мы знали, что из этой троицы выйдет блестящая команда. Когда мы узнаем возможности движка, все эти концепты будут опробованы, протестированы, улучшены и, если необходимо, выброшены за борт.
Тем временем наша команда левел-дизайнеров тоже перешла к периоду ранней разработки, и каждый из нас сосредоточился на создании уровней в своем любимом стиле. Прямо как Кевину, которому пришлось изучить 3D-моделирование со всеми вытекающими последствиями, нам предстояло освоить построение уровней в 3D. До этого мы лишь экспериментировали с трехмерным пространством. Я рассчитывал, что мы начнем с создания играбельных уровней в свойственных каждому стилях. Когда новые технологии начнут работать стабильно, а движок позволит конструировать геймплей, мы уже свободно освоим настоящее мастерство левел-дизайна в 3D – и поймем, как сделать потрясающий игровой опыт. Чтобы связать уровни разнородных стилей воедино, казалась необходимой центральная зона в стиле Heretic 2. Но и это не было до конца ясным, поскольку технологическая основа игры еще не была готова. Пока же всем левел-дизайнерам, включая меня, следовало приступить к проработке собственного стиля и пониманию возможностей трехмерного окружения.
Будучи дизайнером уровней, я увидел в 3D-пространстве настоящий кладезь творческих возможностей. Помню обсуждение Heretic с Беном Гоки из Raven: он придумал, как «смотреть в игре вверх и вниз», расширяя вертикальный угол обзора. На самом деле это была фальшивка, а не настоящая возможность осматриваться по вертикали, но со своей задачей она справлялась. В Quake смотреть вверх и вниз мы могли по-настоящему, и это потрясало. У нас еще не имелось возможности контролировать вертикальный взгляд мышкой – и это оказалось сложной для решения задачей, – но была доступна медленная прокрутка экрана вниз и вверх с помощью кнопок клавиатуры. Было здорово увидеть это новое измерение в игре, а не только в собственном воорбражении. Еще пара свежих ощущений – двигаться вперед, упираясь взглядом в пол или потолок. Я уже представлял себе, как использовать эти новые возможности: скажем, заставить игрока оглянуться вниз, выпустив потоки лавы, и в тот же момент обрушить на него сверху нового врага. Я знал, что проблему управления мы со временем решим. Поначалу было важно иметь кнопку, центрирующую обзор из любого положения, так что Кармак ее добавил. Взгляд вверх и вниз я установил на кнопки PgUp и PgDn, поскольку использовал для перемещения стрелочки.
Наши игры по-прежнему разлетались как горячие пирожки, но мы решили не менять систему распределения зарплат. Всегда полезно держать руку на пульсе будущих расходов компании в долгосрочной перспективе. Мы знали, что средств нам хватит как минимум на работу в течение нескольких лет, даже если прибыль с продаж мгновенно иссякнет. Что же касается сверхприбылей, то основатели компании, включая меня, любили побаловать как себя любимых, так и подчиненных. Периодически впятером с Кармаком, Адрианом, Джеем и Кевином мы решали, какие бонусы получат сотрудники компании. Каждый месяц на счета id поступали внушительные средства, так что на жирные чеки мы не скупились. Квартальный бонус каждому сотруднику порой достигал пятидесяти тысяч долларов.
Делясь прибылью с коллегами, я не забыл и про отца, прикупив ему домик в Чаллисе, штат Айдахо. У него появилась блестящая возможность присоединиться к лучшему другу Пэту в управлении шахтерскими работами, чем он и занимался на протяжении немалой части своей жизни. Пэт стал для меня почти родным дядей, он всегда играл важную роль в жизни моего отца и, как следствие, в моей. Чаллис стал их излюбленным местом для пикников.
Мы с Бет по-прежнему жили в маленьком арендованном доме в городе Плейно. Задумавшись о покупке более масштабного жилища, что в то время делали и другие сотрудники id, мы присматриваться к недвижимости в близлежащих районах. Когда мы с Бет начали встречаться, она знала обо мне все, что хотела знать, и я в каком-то смысле знал ее столь же хорошо. Она понимала, что я люблю игры и программирование и это для меня не только работа, но хобби и страсть. А теперь, когда я стал участником взрывного стартапа, она осознавала, что на поддержку нашего бизнеса требуется внушительный объем времени. Вместе мы обычно проводили время с моими мальчиками – Майклом и Стивеном. В остальном же наши интересы были крайне разными. Игры ее не интересовали, так что она вечно занималась чем-то своим. Однако поиск нового дома объединил нас, и мы часто обсуждали, где хотим жить и что обязательно должно быть в нашем доме и районе.
Со временем Бет устала от поисков дома, и я решил двигаться дальше самостоятельно. В марте я разузнал о новом строящемся районе под названием Stonebriar к северу от Плейно в городе Фриско. Пустой участок с видом на два поля для гольфа показался мне идеальным местом для постройки дома. Я нашел подходящего архитектора и поработал с ним над дизайном будущей постройки – это была моя первая попытка задизайнить что-то в реальном мире. Но готовиться к переезду было пока рано.
К апрелю Кевин создал ряд примитивных 3D-моделей, а Кармак добился их отображения в движке. Возможность увидеть, как ты бегаешь по экрану в виде трехмерной фигуры, а не спрайта золотого шарика, стала большим прорывом для отвечающей за технологии команды. Адриан работал в удаленном режиме над разными текстурами, и каждый левел-дизайнер получил соответствующий его стилю уровней набор. Один из таких наборов напоминал интерьер здания с шахматным полом, каменными стенами и стеклянными окнами – эти текстуры приглянулись Сэнди. Мне нравился набор синих и черных текстур с трещинами, и я решил, что смогу построить на их основе несколько достойных замков. Американ использовал свежий набор, стилизованный под культуру ацтеков: его Адриан только-только успел закончить.
Хотя редактор QuakeEd специально создавался для построения уровней в Quake, он совсем не был похож на полнофункциональную и простую в использовании коммерческую программу вроде Alias Wavefront, которую Кевин использовал для создания уровней. QuakeEd представлял собой развивающуюся технологию, построенную на базе другой развивающейся технологии. Строительство уровней в нем было медленным из-за сложности процесса и всестороннего освещения комнат, в то время как метод левел-дизайна для DOOM требовал лишь нарисовать четыре линии и задать ряд базовых параметров помещения. Мы привыкли строить уровни этим новым медленным способом и придумывали различные небольшие уловки, чтобы ускорить процесс. Но в конечном счете создание даже одного уровня отнимало уйму времени. Большая его часть уходила на проработку геометрии и освещения, зато расставлять врагов и предметы получалось быстро.
Несмотря на медленный процесс, строительство замков для тестовых уровней с помощью новых текстур Адриана вдохновляло и увлекало меня. Они выглядели отлично, по ним было приятно гулять, и я знал, что это только начало, ведь мы все еще находились на ранней стадии разработки. При создании уровней для Quake идеи приходили мне в голову довольно быстро, но на построение новой геометрии уходила целая вечность. К примеру, на первом уровне E1M1 игрок видит футуристичную дверь, разделенную на две части по диагонали. Чтобы построить одну такую дверь, мне требовалось проработать три геометрических формы с левой стороны и еще три с правой, и каждая из них была сложным многоугольником. Эта дверь стала самой сложноустроенной в Quake. Выглядела она, конечно, круто, но остальные мы решили сделать попроще – из прямоугольных поднимающихся текстур или просто пары прямоугольников, разъезжающихся в разные стороны.
Наша кампания в Dungeons & Dragons разворачивалась в основанной на Средневековье вселенной. Теперь нам предстояло воссоздать его в Quake с точки зрения гейм-дизайна. Архитектура замков хорошо сочеталась со скалами, реками и горами. К тому моменту движок еще не поддерживал управление персонажем с молотом, поскольку в приоритете стояли другие его функции. Поэтому я ждал, когда Кармак закончит и присоединится ко мне для совместной проработки геймплея, как мы это делали раньше. Система ближнего боя требовала иного подхода к построению карт, и какой бы уровень ни делали наши дизайнеры, его требовалось опробовать в деле, а не только заполнить подходящей архитектурой.
Майкл Абраш присоединился к команде в апреле 1995 года и немедля слился мозгами с Кармаком в написании высокопроизводительного рендера, который позволил бы нам добиться высокой частоты кадров. Прибытие Абраша воодушевило всех. Ему нужно было понимать все, над чем работал Кармак, чтобы выдать эффективное решение для максимально быстрой отрисовки полигонов. Позднее в том же месяце Кармак буквально за одни выходные поменял формат некоторых графических файлов, а Абрашу из-за этого пришлось переписывать огромные сегменты кода, поскольку он сильно зависел от формата организации этих данных. Кармак всегда искал способы улучшить свой код, и иногда они требовали необходимых изменений. Пара дней работы Кармака порой оборачивалась для Абраша переписыванием кода.
Абраш понимал, что создание рендера для Quake – возможность, которая выпадает только раз в жизни. Поэтому спросил, не будем ли мы против, если он напишет об этом – сперва в виде отдельных статей, а затем единого сборника. Все согласились, что это отличная затея. Будучи программистами, мы ценили легкий доступ к полезной для решения проблем информации, и нам нравилось делиться знаниями с другими. Абраш занимался этим годами, выпуская статьи для Dr. Dobb’s Journal. Его желание написать книгу о создании движка Quake органично вписывалось в наши идеалы.
Пока мы продолжали трудиться над ранними версиями уровней, роль звуковой дорожки для игры исполняла любая музыка, которую мы слушали. В моем случае это были альбом Jar of Flies группы Alice in Chains и One Night Live – свежий релиз группы Dokken. Когда дело доходит до дизайна уровней, я считаю важным организовать собственное окружение под стать их атмосфере, поэтому погружаюсь в музыку, вызывающую те чувства, которые я хотел бы передать игроку. Во время работы над DOOM я часто слушал Queensrÿche и метал 1980-х годов. В случае с Quake я создал подборку эмбиента, который помогал мне достичь желаемой атмосферы.
Американ в то время фанател от Nine Inch Nails и гонял по кругу ее пластинку The Downward Spiral. Она подкинула ему идею. Сперва он обсудил ее наедине с Кармаком в его кабинете, затем они оба вышли в основной зал, где мы беседовали с Адрианом.
– Ребят, что думаете начет того, чтобы позвать Nine Inch Nails записать музыку для Quake? – спросил Американ.
Я задумался о том, как эта музыка впишется в игру, ведь мне хотелось поставить на фон эмбиент. Nine Inch Nails эксплуатировала мрачную эстетику индустриального метала, которая нравилась Кармаку и Американу; агрессивный вокал Трента Резнора транслировал тоску 1990-х, хорошо знакомую отдельным представителям поколения X. Но я не считал, что такая музыка подойдет Quake – этой игре нужно что-то более атмосферное, без всякого вокала. А затем сообразил, что, если мы попросим Nine Inch Nails сделать музыку в таком стиле, их звучание вполне впишется в Quake.
– Эти ребята крутые, но смогут ли они записать эмбиент? Нам не нужна музыка, которая отвлекает внимание от экшена, и уж тем более вокал, – сказал я.
– Уверен, они способны сделать что-то в таком стиле. Что-нибудь тревожное, – ответил Американ, мгновенно уловив желанное мной настроение.
Все вместе мы отправились в кабинет Джея и попросили его связаться с менеджерами группы. Наш агент в компании ICM Partners оказался также агентом Nine Inch Nails. Он сообщил Джею, что они наши огромные фанаты, поэтому будут рады связаться и обсудить проект. Трент Резнор и барабанщик Крис Вренна запланировали визит в студию на следующий месяц.
Мы не могли поверить своим ушам. Они играли в наши игры? Они были нашими огромными фанатами? Это казалось невероятным. Мы жили в своем пузыре, а мир еще не подсел на ежесекундно обновляемые социальные сети и новостные сводки, так что у нас не было особого представления о том, насколько далеко за пределы игрового сообщества распространилось наше влияние. Никому и в голову не приходило, что наши любимые музыканты гоняли в DOOM, катаясь по турам на автобусе.
После достижения взаимной договоренности с группой Американа назначили ответственным за контроль над созданием саундтрека. Он понимал, на какое звучание я рассчитываю, и сам был счастлив взяться за это дело. Он зашел в Сеть и сообщил фанатам через IRC, что музыку для игры напишет сама Nine Inch Nails. Как и следовало ожидать, это произвело среди аудитории эффект разорвавшейся бомбы. Музыку из DOOM изначально вдохновлял метал, и эта грядущая коллаборация с Nine Inch Nails стала для многих фанатов мечтой, претворенной в реальность.
Тут следует отметить, что мы все еще оставались довольно открытой компанией, которая делилась технологиями, дизайнерскими решениями и маркетинговыми планами – в те времена неслыханное дело, да и по сей день такое остается редкостью. Кармак и Абраш несли в мир технологические познания, я открыто говорил о дизайне Quake, Американ распространял информацию о наших планах по записи саундтрека… Мы ценили возможность свободно обмениваться информацией, и нас не беспокоила мысль о том, что кто-то воспользуется нашими идеями. За нами все равно никто не мог угнаться.
Началось лето, а разработка так и не вышла из ранней стадии. Кармаку захотелось поэкспериментировать с тем, как игрок будет осматривать пространство в настоящем 3D. На глубинном уровне его тревожила одна мысль: написание трехмерного движка отняло у него уйму времени и сил, но смогут ли геймеры по-настоящему увидеть плод его стараний? Как они будут управлять обзором? В случае DOOM мы расщедрились на систему автоматического прицеливания по врагам, поскольку там не позволялось по-настоящему смотреть вверх или вниз. При этом управление в DOOM оставалось простым, ведь, чтобы оглядеться вокруг, игроку достаточно было просто двигать мышкой, а персонаж перемещался с помощью кнопок на клавиатуре. Мы хотели сохранить эту простоту управления и в Quake, поэтому я предложил в качестве эксперимента автоматически поворачивать камеру вверх при подъеме по лестнице и вниз во время спуска. С технической точки зрения решение работало отлично, но оно не позволяло смотреть куда захочешь – по факту это был не свободный обзор. Такой метод воспринимался как ограничение, поэтому мы попробовали другой. Кармак привязал функцию взгляда вверх и вниз к колесику мышки. Но нам сразу же показалось странным управлять взглядом по горизонтали движением мыши и параллельно использовать колесико для прицеливания по вертикали. Камера двигалась дергано, да и последовательности в этом никакой не было, ведь у всех мышек разные колесики. Какие-то крутились свободно, а какие-то имели ограничения.
Пользователи редко замечают, что игра ощущается здорово: просто для них такой опыт воспринимается естественным. Подходящие схемы управления легко проникают в мышечную память, базируясь на имеющихся возможностях, – и вот уже игрок может сделать все что захочет без какой-либо необходимости об этом задуматься. Когда геймплей ощущается плохо или что-то мешает опыту, геймеры замечают это мгновенно. И я, и Кармак отлично понимали, что крайне важно уделить этому моменту внимание, но другие функции движка все еще были приоритетными, поэтому проблему отложили на потом. Мы с Кармаком всегда работали тандемом, улучшая ощущение буквально всех элементов во всех наших играх. Я предлагаю дизайнерские задумки. Он пишет код. Я проверяю, как все ощущается. Цикл продолжается до тех пор, пока мы не достигаем идеала.
Некоторые члены команды активно общались с фанатами через IRC и рассказывали о дизайне игры на протяжении его эволюции. Список особенностей включал: кровавые следы, которые оставляют за собой спасающиеся бегством раненые; отрубленные бошки, слетающие с шей противников после их убийства; заклинания в виде огненных шаров, молний и магических ракет, а еще (может быть) продуманный искусственный интеллект, заставляющий врагов действовать как командиры и подчиненные. Мы были полны энтузиазма и надеялись, что движок позволит воплотить эти идеи. Из общей вереницы выбивался комментарий Дэйва Тейлора, который считал «дурацким» использование молота в бою и втайне пытался как-нибудь от него избавиться. Ничего страшного: мы поощряли коллег за открытое высказывание мыслей.
К июлю Кармак и Абраш развили движок до такого состояния, что мы смогли отрисовать на нем сразу две трехмерные модели в Средневековом окружении – человека и летучую мышь. А вскоре Кевин сделал и дракона. Команда программистов только-только подготовила код для анимации 3D-моделей и проверила его на персонаже-человеке. Врагам оставалось дожидаться своей очереди: их искусственный интеллект относился к геймплейному коду, поэтому требовал готового движка. То же самое касалось Квейка и его молота.
Несмотря на прогресс с движком, мы знали, что Кармак испытывает серьезное давление. Его мозги буквально плавились от нагрузки. Он работал беспрерывно, не брал отпусков, спал только из необходимости и периодически срывался на тех, кто не корпел над движком. Его раздражение перетекло в очевидную форму тем утром, когда мы все открыли почтовые ящики и обнаружили среди прочих писем следующее.
ТАБЕЛЬ УСПЕВАЕМОСТИ
«Табель успеваемости» содержал список участников команды, каждому из которых присваивалась оценка по работе над Quake. Я получил тройку.
«Это еще что за хрень?» – подумалось мне.
Тут особенно важно внести ясность в контекст ситуации. О наших рабочих отношениях и последующем разрыве написано многое. И написано так, будто мы были познавшими бизнес пятидесятилетними магистрами Стэнфорда, а не заработавшимися в постоянном кранче детишками пары десятков лет от роду, которые изо всех сил пытались сделать никем доселе не виданные технологии и дизайн под пристальными взглядами всего мира. Эту историю малюют яркими красками, чаще всего стараясь подчеркнуть враждебные настроения в коллективе, потому что история о том, как один человек противостоит другим, звучит лучше. Правда заключается в том, что мы с Кармаком были друзьями и заботились друг о друге – и делаем это до сих пор. Мы болтали, смеялись и, как любые другие друзья, периодически срывались и нападали один на другого. Вместе мы принимали замечательные решения, неплохие решения и совершенно отвратительные партнерско-завершающие решения. Держите это в уме, когда будете читать обо всем, что тогда происходило. Как сам Кармак сказал в 2022 году на подкасте Лекса Фридмана, наши жизни определенно могли бы сложиться по-другому, будь мы взрослее и опытнее себя тогдашних – юнцов двадцати с чем-то лет. И я с ним полностью согласен.
В августе 1995 года, когда я разглядывал отчетную карточку, меня беспокоила вовсе не моя оценка – я сделал для Quake множество вещей, которые в ней не учитывались. Меня беспокоил сам Кармак и то, зачем он разослал эти карточки сотрудникам. Оценки разнились от пятерки до двойки. Самому себе Кармак поставил пять с минусом. И поскольку чужие оценки были видны всем, я не сомневался, что кто-то из сотрудников расстроился или почувствовал себя униженным. Особенно я переживал за тех, у кого не было доли в компании. Для них эта карточка могла выглядеть как предзнаменование грядущего увольнения. Разработка игры и без того затянулась и вызвала кучу проблем. Я не понимал, как эти карточки способны улучшить ситуацию. А что насчет людей, которым приходится ждать готового движка, чтобы начать работу? Разве честно штрафовать их за то, что необходимый для заучивания к экзамену текст еще не написан?
Я подошел к Адриану и Кевину и спросил, видели ли они утреннюю рассылку. Они кивнули. Мы не стали тратить время на обсуждение собственных оценок.
– Он сейчас испытывает огромное давление, – сказал я.
Это было очевидно для всех. И вместо того чтобы задать ему трепку, мы решили вовсе ничего не говорить. Сам Кармак тоже не горел желанием обсуждать эту историю.
Но замалчивание проблемы оказалось не лучшим решением. Кармак разослал эти карточки, потому что в чем-то нуждался. И этим чем-то явно не было поголовное молчание команды. Насколько я могу догадываться, он хотел, чтобы я бросил к черту все свои прочие проекты, даже если они приносили компании доход, и на сто процентов погрузился в работу над Quake. На тот момент это означало подключиться к созданию движка, чтобы поскорее закончить его и приняться за геймплей. И хотя такая необходимость явно существовала, наша ситуация не позволяла ее удовлетворить. Для этого пришлось бы нарушить все подписанные нами контракты, за часть которых мы уже получили авансы. Эти контракты необходимо было выполнить. Чтобы я мог отвлечься от всех своих дел, включая QuakeEd, Heretic 2 и The Ultimate DOOM, нам пришлось бы нанять больше людей, но Кармак был строго против – и уже зарубил подобное предложение ранее. Ситуация складывалась поганая, но так уж обстояли дела.
Мы предположили, что этот табель стал единовременной слабостью человека, находящегося под невероятным давлением, и занялись своими делами.
Нужно было как-то поднять коллективу настроение и приободрить сотрудников. Мне на ум пришла подходящая идея. Мы всегда поддерживали близкие отношения с нашим растущим сообществом фанатов и, учитывая количество запросов опубликовать какие-нибудь скриншоты, решили собрать подборку кадров и распространить ее в Сети. В августе я сделал шестнадцать скриншотов находящихся в разработке уровней, включая пять кадров, изображавших кусок E1M5 из DOOM и его воссоздание на движке Quake. Разница была огромной. Это позволило решить нам сразу две задачи. Во-первых, мы подогрели интерес фанатов к нашей следующей разработке. А во-вторых, дали им понять, насколько серьезным технологическим скачком станет Quake по сравнению с DOOM и почему ее разработка занимает больше времени, чем наши предыдущие релизы. Изображения выглядели прекрасно, а улучшенное освещение отбрасывало потрясающие тени. На одном из шестнадцати скриншотов я расположил в небе дракона. Геймплейного кода у нас еще не было, поэтому скриншоты не показывали ни сражений, ни других элементов игрового процесса. А моделька дракона на тот момент даже не была анимирована. Но скриншоты все равно обрели огромный успех среди интересовавшихся прогрессом в разработке фанатов. По оценкам программистов движок был готов примерно на три четверти. У публикации скриншотов имелась и третья цель – принести пользу не только фанатам, но и всем нам. Это позволило утомившимся к тому времени сотрудникам почувствовать какое-то воодушевление. Всем в команде понравилась реакция фанатов. Народ сходил с ума, прямо как в тот момент, когда мы анонсировали сотрудничество с Nine Inch Nails. Для нас это стало глотком свежего воздуха.
В августе Кевин почувствовал, что освоил правила создания 3D-моделей, которые мог отобразить движок Кармака, и приступил к разработке итоговых версий в стиле action-RPG, к которому стремилась Quake. Я попросил его сделать людоеда с необычными особенностями: чтобы он стрелял из гранатомета с дистанции, атаковал бензопилой с близкого расстояния и насмехался над бездыханным трупом игрока. Последнюю фишку пришлось вырезать, но она представляла собой отличный пример мрачного юмора, которым мы старались наполнить все свои игры. Я был впечатлен тем, насколько жестоко вели себя сфероподобные персонажи вышедшей в 1994 году трехмерной приключенческой игры с головоломками Ecstatica. Их садистская натура проявлялась в издевательствах над геймером: они избивали его словно грушу, таскали по земле за конечности, подвешивали вверх ногами и насмехались над его трупом. Я любил игры с характером и хотел, чтобы Quake стала одной из них. На тот момент у нас еще не имелось геймплейного кода, чтобы обеспечить людоеда набором атак. Но после окончания разработки движка и перехода к созданию геймплея людоед должен был стать для команды первостепенной задачей.
В сентябре Сэнди и Джей съездили на европейскую видеоигровую конференцию, чтобы показать Quake. Журналисты смогли собственноручно испытать странное управление камерой с помощью движений и прокрутки колесика мышки – ничего подобного не предлагал ни один другой шутер от первого лица. Сэнди дал интервью легендарному финскому журналу Pelit, в котором подтвердил, что, несмотря на все сподвижки в разработке, по жанру проект остается action-RPG. Учитывая его прошлые увлечения настольными ролевками, энтузиазм Сэнди легко можно было понять. Он рассказал о системе ближнего боя, молоте, атаках с широким радиусом и возможности стрелять снарядами. Журнал все это опубликовал. Еще он сказал, что в игре будут заклинания, а враги смогут лечиться, если сумеют убежать. До кучи Сэнди раскрыл одну особенно жестокую деталь, о которой мы не слишком-то распространялись, – возможность обезглавить врага и принести его голову в жертву на алтаре, чтобы получить усиление. Репортеры были в восторге. Вдохновенный рассказ Сэнди пролил для читателей свет на то, что мы старались сделать.
К тому моменту разработка движка длилась уже десять месяцев, всего на месяц уступая всему производственному циклу DOOM. Программирование геймплея все еще не началось. Игры у нас не было, а была лишь не доведенная до ума технология. В Quake до сих пор отсутствовали как молот, так и множество элементов, которые мы обсуждали с игроками и журналистами. И в этом не виновата команда программистов – совсем напротив. Они делали монументальную и прорывную работу. Для Кармака это стало самым тяжелым испытанием. Он делал, что должен, – нечто невероятно крутое. И будучи программистом, я знал, что на это уйдет столько времени. С развитием движка я обновлял редактор QuakeEd, включая в него новые функции и делая его удобнее для нас, дизайнеров.
Однако для команды, полагавшейся на поступательный и цикличный процесс проработки дизайна, это стало проблемой. Движок, может, и представлял собой технологическое чудо, но был лишен задуманного нами геймплея. Процесс разработки, которым мы пользовались при создании предыдущих двадцати четырех игр, начинался не с дизайн-документа, а с набора ключевых фишек, разработки подходящего для них движка и программирования основ геймплея. Геймплейный код позволил бы нам исследовать и улучшать основу игрового процесса – ближнего боя с молотом в случае Quake. Мы могли бы экпериментировать до тех пор, пока не добьемся достойного результата, как делали в случае управления камерой с помощью мышки. Мы придерживались того же процесса разработки, который заставил нас избавиться от возможности таскать трупы в Wolfenstein 3D и выбросить за борт сюжетную завязку из «Библии DOOM». Мы добавляли новые элементы и меняли их до тех пор, пока они не вписывались в общую картину. И даже имей мы на руках дизайн-документ, он не принес бы особой пользы, пока не стало бы ясно, на что способен наш новый движок.
Игра представляла собой живой дизайн-документ, но у нас не было никакого геймплейного кода. Некоторые члены команды стали проявлять растущее беспокойство.