Майк был в шоке: Ромеро оставался все таким же отбитым. Но Майк даже представить себе не мог, к чему эта отбитость приведет впоследствии. В следующем месяце на ковер вызвали самого Майка: остальные владельцы, в особенности Тодд, хотели уволить его самого. Люди из Eidos ежедневно звонили и жаловались, что с Майком невозможно работать. К тому же обнаружилось, что Майк, никого не известив, потратил часть бюджета компании, чтобы купить себе BMW. Его затея открыть издательство тоже была не в тему. Ion Storm не будет издавать игры, сказал Ромеро, она будет их делать. Если Майк так хочет заниматься изданием, то ему придется уйти. И он ушел.
Убрав Майка с дороги, Ромеро наконец мог засучить рукава и привести свою команду к решению поставленной задачи. В феврале 1998 года он получил долгожданный код Quake II. Вот он – движок, который ускорит разработку Daikatana до предела. Ромеро открыл файл, посмотрел на код и замер от ужаса. Господи боже мой, подумал он. Кармак, что ты наделал?
ТИМ УИЛЛИТС СОЗДАЛ СЕКРЕТНУЮ КОМНАТУ, ГДЕ У СТЕН СТОЯЛИ ПОРТРЕТЫ СОТРУДНИКОВ ID. К КАЖДОМУ БЫЛА ПРИВЯЗАНА СВОЯ АНИМАЦИЯ, КОТОРАЯ, ПО МНЕНИЮ ТИМА, ОТРА Ж А ЛА ХАРАК ТЕР ИЗОБРАЖЕННОГО. ПРИ ПРИБЛИЖЕНИИ ИГРОКА ПОРТРЕТ КАРМАКА УЕЗЖАЛ ВГЛУБЬ ПОЛА.
– У тебя есть аспирин? – спросил Кармак у друга, пока они входили в казино в Лас-Вегасе.
– У тебя болит голова?
– Нет, – ответил Кармак, – но скоро начнет.
Восьмого февраля 1998 года Кармак собрался подвергнуть свой мозг испытанию. Его новым увлечением стал блэкджек; он собирался считать карты. «Как человек, который обладает некоторыми познаниями в статистике и не верит в удачу, судьбу, карму и бога (богов), в казино я интересуюсь только одной игрой – блэкджеком – написал он в файле. plan. – Игра в блэкджек – это тест на дисциплинированность. Нужно немного умения, чтобы принимать верные решения и подсчитывать карты, но самое сложное – это заставлять себя все время действовать как робот, а не поддаваться никакому „шестому чувству“». Чтобы отточить перед поездкой свое умение играть, Кармак применил любимый метод обучения: прочитал несколько книг по теме и написал программу, которая симулировала раздачу карт в блэкджеке на основе статистических данных.
Его эксперимент удался и принес ему 20 000 долларов выигрыша, которые он потратил на благотворительность, отдав Free Software Foundation – организации, состоящей из таких же апологетов кодекса хакеров. «Не то чтобы я пытался заработать на жизнь [играя в блэк-джек], – написал Кармак после поездки, – так что мне без разницы, выгонят меня из казино или нет». Совсем скоро Кармаку довелось выяснить, есть ли разница – во время следующей же поездки к нему подошли три человека в черных костюмах и сказали:
– Нам хотелось бы, чтобы вы покинули стол для блэкджека и стали играть во что-нибудь другое.
Остальные посетители казино удивленно наблюдали за происходящим.
– Почему они вам так сказали? – спросила одна женщина.
– Они думают, что я считаю карты, – ответил Кармак.
– Они думают, что вы их запоминаете?
– Ну да, – сказал Кармак, – типа того.
– Ух ты, а кем вы работаете?
– Программистом, – ответил Кармак, и его вывели за дверь.
Казино было не единственным местом, где Кармак искал покоя в феврале 1998 года. Его жажда затворничества однажды случайно привела его в маленький гостиничный номер во Флориде, где у него даже не спросили документов. Quake II получила восторженные отзывы и прекрасно продавалась, но напряженная атмосфера в офисе – все эти склоки, ругань, нытье, «смертельный бой» дотла выгоревших ребят – все же доконала Кармака. Обстановка стала настолько удручающей, что проникла даже в игру. Тим Уиллитс создал секретную комнату, где у стен стояли портреты сотрудников id. К каждому была привязана своя анимация, которая, по мнению Тима, отражала характер изображенного. При приближении игрока портрет Кармака уезжал вглубь пола.
Теперь Кармак уехал по-настоящему и на неделю уединился в номере отдаленной гостиницы. Коробки из-под пиццы валялись на полу. Телефон не звонил. Дверь не открывалась. Кармак отвлекался от работы, только когда у него пересыхало в горле – тогда он выходил за диетической колой. По такому случаю он даже купил себе особый ноутбук Dolch с процессором Pentium II и полноразмерными PCI-слотами для видеокарты от Evans & Sutherland с поддержкой OpenGL. Он полагал, что приехал сюда исключительно ради исследований для Trinity – графического движка нового поколения, которым он планировал заниматься, пока остальная команда работала над дополнительными уровнями для Quake II. Однако, вернувшись на следующей неделе в Мескит, он ощутил непривычное желание порефлексировать. Он выложил в Интернет следующий файл. plan:
Имя: Джон Кармак
Описание: Программист
Проект: Quake 2
Последнее обновление: 02/1998 03:06:55 (центрально-американское время)
Ок, я опоздал с обновлением.
Поездка прошла хорошо. Неделю просидел в четырех стенах и выходил из гостиницы только за колой. Она меня, похоже, немного испортила, потому что всякие мелкие отвлекающие факторы в офисе теперь раздражают куда больше. Наверное, я пока буду делать такие недельные исследовательские вылазки более-менее регулярно, пока у нас нет кранча. Где-то раз в три месяца.
Я пока не готов говорить о деталях Trinity, над которыми сейчас работаю. Я пытался начать движок Quake многими способами (дерево лучей, порталы и т. д.), пока не определился с архитектурой. Так что вполне возможно, что вещи, которыми я сейчас занимаюсь, в готовый проект не войдут, и я не хочу упоминать ничего такого, что кто-то может воспринять как обещание.
Хотя я уже в восторге от перспектив.
Многие занимаются разработкой игр только ради результата, и ради него они как бы терпят процесс. Уважаю эту точку зрения, но у меня немного другая мотивация.
Я сам очень горжусь теми отличными играми, которые выпускаю, но те вещи, которых мне удалось достичь в процессе разработки, запоминаются куда лучше. Я не помню ни одного из наших прошлых релизов, но помню все свои лучшие идеи вплоть до циклического заворачивания графического контроллера для бесконечного гладкого скроллинга в Commander Keen (даже вплоть до осознания преимуществ структур данных над параллельными массивами в ассемблере Apple II…) Знание строится на знании.
Я делю свою жизнь на периоды, которые потом разбиваю на категории в зависимости от того, сколько нового я за это время узнал.
Самым простым вещам я научился еще в школе на Apple II, но из-за нехватки ресурсов я не мог учиться быстро и многого не умел. Сегодня быть программистом намного проще: покупаешь дешевый PC, диск с Linux, доступ в Интернет – и у тебя есть все инструменты и ресурсы, чтобы довести свое умение программировать до какого угодно уровня.
За первые шесть месяцев работы на PC в Softdisk я узнал невероятно много. Впервые в жизни со мной работали программисты, у которых было больше опыта, чем у меня (Ромеро и Лейн Роут), вокруг было много книг и материалов, и я мог все время программировать и ни на что не отвлекаться. Отличный был период.
Потом были два года, которые закончились выпуском DOOM и разными консольными делами, когда мои умения и знания стабильно выросли сразу в нескольких областях – графика, сети, Unix, написание компиляторов, кросс-платформенная разработка, RISC-архитектура и т. д.
Первый год разработки Quake был чудесен. Я попробовал столько новых вещей, а Майкл Абраш все их оценивал. Многие программисты графики с классическим образованием наверняка удивятся, как мало я знал о традиционной 3D-графике, пока писал DOOM – черт, да у меня даже были проблемы с правильной стыковкой полигонов стен (вот откуда взялись все эти глупости с полярными координатами). Quake заставил меня делать вещи по уму и искать новое.
Последние шесть месяцев разработки Quake – в основном боль и страдания в попытках закончить эту чертову игру. Оно того стоило, но я вспоминаю это время без особого удовольствия.
За разработку Quake 2 я научился не очень многому (GLQuake, QuakeWorld, излучение, OpenGL, программирование инструментов, Win32 и т. д.), но она дала мне время проанализировать многие вещи и подготовиться к настоящему прорыву.
Я думаю, что грядущая разработка Trinity будет для меня такой же плодотворной, как и Quake. Я достигаю глубокого понимания некоторых вещей и исследую совершенно новые (не связанные с графикой) для меня области, которые должны хорошо сочетаться со всем остальным, что я делаю. После этого у нас еще и выйдет убойная игра:)
Кармак недолго пребывал в хорошем настроении. Со временем он, как и Ромеро в Ion Storm, начал понимать, что прошло то время, когда его команда была маленькой и дружной. Теперь офис id был пронизан злобой и ненавистью. И без того напряженные взаимоотношения Тима, Американа и других дизайнеров уровней достигли точки кипения. Адриан и Кевин были на ножах с Полом Стидом. Они слишком сильно друг другу не нравились, чтобы вместе работать над уровнями, понял Кармак. Решение: положить в основание следующей игры ту самую атмосферу ненависти. Quake III будет использовать большинство его наработок для движка Trinity, и при этом в игре останется только режим «смертельного боя», чтобы дизайнеры карт могли работать, не пересекаясь друг другом.
– РОМЕРО – ЭТО ХАОС, А КАРМАК – ПОРЯДОК, – СКАЗАЛ ОН. – ВМЕСТЕ ОНИ ОБРАЗУЮТ ИДЕАЛЬНОЕ СОЧЕТАНИЕ. НО ЕСЛИ ИХ РАЗДЕЛИТЬ, ЧТО ОСТАЕТСЯ?