[Перевод] Монстры из Id: как создавался Doom

image


Эта ретроспектива из самого первого (январь 1994 года) номера журнала Game Developer тогда ещё современных игр Id Software Doom и Wolfenstein 3D рисует уникальный портрет легендарного разработчика, игры которого заложили основы жанра FPS.

В эпоху, когда для реализации всех заявленных возможностей часто требовалось 20 МБ памяти, им удавалось уместитьcя меньше, чем в 4 МБ. В то время, когда серьёзной проблемой была совместимость звуковых карт, они добавили в демо поддержку Disney Sound Source. Пока многие крупные игровые компании неторопливо подходили к мысли о кросс-платформенной разработке, им она казалась вполне естественной. Они писали игры, для разработки необходимо было бы 30 или больше сотрудников, хотя их компания состояла всего из семи человек. Они — это программисты Id Software, и то, что они делают, может навсегда изменить индустрию игр на PC.

image


На самом деле принесла компании популярность её предыдущая игра — Wolfenstein 3D. Сюжетно Wolfenstein 3D было так же проста, как фильм категории B: игроки с боем прокладывают себе дорогу через нацистский замок. Но выделялась Wolfenstein 3D на фоне остальных игр своим превосходным использованием растровых изображений, оцифрованного звука и потрясающей скорости, создающих иллюзию трёхмерного мира. Id воспользовалась техникой под названием «наложение текстур», которая в сочетании с написанным на ассемблере рейкастинг-движком создавал играбельную трёхмерную графику на 286 — самой слабой машине того времени.

Но самым удивительным аспектом Wolfenstein 3D наверно является модель её распространения. Игра была shareware. В соответствии с проверенной временем техникой shareware, первые 10 уровней Wolfenstein 3D были бесплатными. Дистрибьютор игры, shareware-компания Apogee, продавала только дополнительные уровни. Это позволяло людям скопировать первую часть игры, находившейся в общественном достоянии, и оценить, насколько хорошо она работает на их машинах, а уже потом принимать решение о покупке всей игры. Бесплатный файл-«тизер» распространялся подобно вирусу и со временем заполонил весь мир — более 20% от всех заказов на игру поступило из-за рубежа.

Именно этим Id, возможно, оказала своё наибольшее влияние на индустрию игр для PC. Выпустив сверхсовременную игру по модели shareware, она смогла более чем в пять раз обогнать предыдущий рекорд продаж shareware-игр, поставленный ещё одним проектом Id — серией Commander Keen. Достигнув к концу 1993 года уровня в 100 000 проданных копий, Id доказала, что созданные на профессиональном уровне игры можно успешно распространять как shareware. Чтобы по-настоящему сравнить shareware с традиционными продажами, спустя шесть месяцев после Wolfenstein Id выпустила переделанную версию Wolfenstein под названием Spear of Destiny. К концу 1993 года и Spear of Destiny, и Wolfenstein продались тиражом 100 000 копий каждая. При этом продажи Wolfenstein всё ещё продолжают расти, а продажи Spear of Destiny снизились, потому что её сместили с полок розничных магазинов новые игры.

Однако революционной эту модель распространения сделали не общие продажи, а чистая прибыль. Например, за каждую проданную копию Spear of Destiny Id получает 8 долларов, деля половину общего дохода с розничным дистрибьютором FormGen. В случае с картриджем Wolfenstein для SNES она получает всего около 2 долларов. Но при использовании системы распространения через shareware Id смогла получить полную стоимость игры минус затраты на материалы и обрабатывающей заказы компании-оператора. В случае Wolfenstein затраты на материалы составляли меньше 5 долларов, а полная игра стоила 50 долларов. Хоть компании пришлось разделить доход с Apogee, та дала ей долю прибыли, которой могла бы позавидовать любая компания-разработчик ПО.

image


Id Software прошла долгий путь, скромное начало которого было заложено в Шривпорте, штат Луизиана. Основная часть будущей команды разработчиков Id встретилась в компании Softdisk, выпускавшей ежемесячные диски с играми. Одному из основателей Id, Джону Ромеро, пересылались письма фанатов, которые он прикреплял к стене в своём офисе. Он особо не задумывался над ними, пока однажды, читая в игровом журнале статью о shareware-игре Caverns of Kroz, не заметил знакомый адрес.

Оказалось, что президент Apogee Скотт Миллер увидел одну из игр, которую Ромеро с коллегами создали для Softdisk, и захотел, чтобы они присоединились к его компании, распространяющей софт через shareware. Зная, что вся посылаемая в Softdisk почта будет открываться в приёмной, он писал программистам под разными именами фальшивые фанатские письма, которые всегда заканчивались словами «напишите мне по адресу…». Когда Джон Ромеро увидел один и тот же адрес на всей почте от фанатов, то понял, что поклонников у него не так много, как он думал. Но единственный реальный фанат окажет огромное влияние на его дальнейшую судьбу.

Миллер разглядел в ребятах талант и хотел, чтобы те, кто в будущем станет ядром команды разработки Id, работали с ним. Скотт вручил Ромеро и его команде чек на 2000 долларов, а они написали абзац с идеей игры, которая станет первой частью трилогии Commander Keen. На этом этапе Джон Ромеро, Джон Кармак и Адриан Кармак ушли из Softdisk и организовали Id Software, дистрибьютором которой стала Apogee. Прожив немного в Мэдисоне, штат Висконсин, команда Id перебралась в свой сегодняшний штаб в Меските, штат Техас.

Именно в этом уголке пригорода Далласа Id Software стала по-настоящему самостоятельной. К основателями компании: ведущему программисту Джону Кармаку, руководителю проекта Джону Ромеро и художнику по графике Адрианом Кармаком присоединились бывшие коллеги по Softdisk — управляющий директор Джей Уилбур, креативный директор Том Холл и художник-оформитель Кевин Клауд. Из них сформировалась основная команда разработки Wolfenstein и Spear of Destiny, которая по завершению этих проектов пожинала их плоды.

image


Основная рабочая среда Id — это несколько соединённых сетью PC (на некоторых из них работает DOS). Однако когда дело доходит до программирования, предпочтительной рабочей машиной для команды становится NeXTStep. Джон Кармак ни разу не пожалел, что когда-то ему пришлось пробираться через снега Мэдисона, чтобы купить кубический NeXT. На создание редактора уровней, написанного Ромеро для Doom, ушло пять человеко-месяцев, но в любой другой операционной системе это потребовало бы гораздо больше времени.

Версия Wolfenstein для Super Nintendo Entertainment System (SNES) в основном разрабатывалась на машине NeXT, а для компилирования и переноса кода на ANSI C использовали Apple IIGS. Для дальнейшей разработки под SNES Id запланировала перенастроить Free Software Foundation Assembler и компилятор GNU C на генерацию кода 65816 на машине NeXT, а также использовать карту-эмулятор ROM для загрузки скомпилированного на NeXTStep 486 кода непосредственно в Nintendo SNES.

cad2c2b53a9962f469a949675aa0aace.jpg


На рисунке выше показан редактор уровней DoomED — хороший пример того, на что способна Id в NeXTStep. Он имеет функционал простой CAD-программы и позволяет дизайнерам уровней сконцентрироваться не на программировании, а на дизайне уровней. В DoomED дизайнер уровней может расставлять монстров и объекты (разноцветные блоки на экране) и, что более важно, изменять стены, потолки и полы игрового окружения. Редактор позволяет использовать растровые изображения, созданные художниками графики, поэтому дизайнер уровней может импровизировать, не рисуя изображения самостоятельно.

Хотя часто встречаются рассуждения о том, что Id использует при разработке большой объём ассемблерного кода, основным языком является ANSI C. «Язык ассемблера практически мёртв», — заявляет Кармак. «В Doom всего две ассемблерные процедуры: одна для растягивания колонн по вертикали, другая для горизонтального наложения текстуры на строку. Всё остальное написано на C».

Кармак предполагает, что если бы весь код Doom был написан на ассемблере, и программист правильно распорядился бы излишками ресурсов, то игра стала бы всего лишь на 15% быстрее. И хотя основная трассировка рейкастинга в Wolfenstein написана на языке ассемблера, Кармак говорит, что благодаря совершенным алгоритмам он смог бы написать Wolfenstein на C так, чтобы тот работал быстрее.

Написание кода на ANSI C облегчает портирование на другие операционные системы и рекомпиляцию кода под DOS, а NeXTStep помогает в избавлении от багов в процессе разработки. Кармаку кажется, что он всего за пару выходных дней смог бы заставить Doom работать в окне на Macintosh, но Id не будет писать порт сама. Id желает работать с приверженцами различных операционных систем, и рассматривает возможность создания версий Doom для Macintosh, OS/2 и UNIX.


Два человека из ядра команды разработчиков Id являются самыми большими фанатами игр Id и их жесточайшими критиками. Ведущий программист Джон Кармак считается основной причиной технического превосходства игр Id. Разговор с ним о созданных им играх почти ввергает в уныние — он всегда делает упор на то, насколько лучше бы они были, если бы он писал их сегодня. Когда подрядчик, которого Id наняла для создания сетевых драйверов для Doom, не справился с работой, Кармак как ни в чём не бывало написал сетевой драйвер и на следующий день заставил его работать.

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

Верный своей природе, Джон Кармак уже разочаровался в Wolfenstein к моменту его публичного выпуска. Его игровой движок был создан за первый месяц шестимесячного цикла разработки, и уже ко времени, когда первая копия Wolfenstein передавалась между модемами в Америке, он знал, что мог бы сделать его лучше. Пока остальная часть команды разработчиков Id упорно трудилась над завершением Wolfenstein, Кармак писал игровой движок, который позже будет лицензирован компанией Raven для создания игры Shadowcaster.

image


Игра Shadowcaster

Этот игровой движок поддерживал многоточечную перспективу и позволял объектам быть выше игрока. На основе усовершенствований, внесённых в движок Raven, должна была создаваться новая игра (имевшая предварительное название «Green and Pissed» («Зелёный и злой»)). Но в процессе разработки того, что должно было стать игрой Doom, Id Software разорвала отношения с двумя партнёрами, которые были с ней с самого начала.

В начале разработки Doom было принято решение о том, в каком направлении должны двигаться игры Id. Это решение привело к том, что основатель Том Холл ушёл из Id Software. Кармак и Ромеро чувствовали, что творчество Холла вступало в конфликт с геймплеем. Как креативный директор, Холл настаивал на целостности истории и стремился добавить в игру сюжет. Как говорил Ромеро позже, «Если игра хороша, то сюжет особо и не нужен».

«Дизайнер игры не должен создавать мир, в котором игрок — всего лишь небольшая его часть», — вторит ему Кармак. «Игрок — это босс, ваша задача — развлекать его». В разгар подобных споров и других творческих разногласий Холл покинул Id, чтобы стать менеджером проектов в Apogee.


1655d505f38c47c2b8330f0e7320b1f1.jpg


Оправившись после ухода Холла, Id выкристаллизовала свою идеологию дизайна. Миссия Id заключается в том, чтобы брать технологии на острие прогресса и превращать их в увлекательные игры. Сюжет, или его отсутствие, в Doom — хороший тому пример. Он состоит всего лишь из очень смутной идеи попадания на космическую станцию и спуска в Ад. Doom, а возможно, и все другие будущие игры Id, включает в себя минимально возможный сюжет, которого достаточно для задания атмосферы и вставки отсылок к поп-культуре, в основном к фильмам категории B. Наверно, лучше всех это сформулировал это Кармак: «Мы ставим в игрока опасное положение и позволяем возобладать инстинктам «бей или беги».

Ещё один разрыв старых связей был связан с тем, что Id взяла на себя распространение Doom, отказавшись от услуг Apogee. Хотя изначально сотрудники Id были довольны работой с Apogee, открывшей ей дверь в мир shareware-игр, компания считала, что у Apogee недостаточно ресурсов, чтобы справиться с волной телефонных заказов, которая будет сопровождать выпуск Doom. Ироничный поворот: после того, как Id наняла для обслуживания телефонных заказов компанию Digital Magnetics, Apogee осознала, что Id была права о её возможностях и в результате тоже заключила договор с Digital Magnetics. Id продолжает сотрудничать с Apogee в работе над текущими проектами, такими как Wolfenstein II, который Apogee будет разрабатывать самостоятельно на немного улучшенном движке Wolfenstein. Id по-прежнему рекомендует потенциальным программистам игр компанию Apogee как хорошую опорную точку для начала карьеры.

Набравшись опыта в работе с движком для Raven, Кармак начал работу над Doom. Движок Raven был гораздо мощнее, чем у Wolfenstein. Он мог рендерить наклонные полы, накладывать текстуры на любую часть куба (в Wolfenstein куб обязательно был одинаковым со всех сторон), позволял использовать разные текстуры для потолка и создавать стены под углом не только 90 градусов. К сожалению, использованные в движке Raven технологии были слишком сложными, поэтому для работы над Doom Кармаку пришлось начать всё с нуля.

Три версии спустя у Кармака наконец получился игровой движок, производительность которого соответствовала его ожиданиям. Движок был оптимизирован для быстрых машин: он разбивал карту на небольшие секторы и ставил их в таком порядке, чтобы можно было использовать внутренний кеш 486. В готовом движке Doom есть режим средней детализации, который удваивает ширину пикселей по горизонтали и утраивает скорость игры на медленных машинах. Ещё одним важным дополнением к движку Doom стало наличие у всех объектов физических характеристик: веса, импульса и даже звука. Например, в Doom пули были физическими снарядами, в отличие от Wolfenstein, где это были просто вычисления. Улучшенные процедуры ИИ позволяли монстрам взаимодействовать друг с другом, а источники освещения придавали большее ощущение глубины.


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

Хотя Id ожидала, что этой возможностью Doom воспользуются меньше 10% игроков, по сети Novell IPX в игре может участвовать до четырёх человек. Разработчики Id считали, что важно начать работать над многопользовательскими играми уже сейчас, чтобы набраться опыта к тому моменту, когда они станут критически важными при разработке.

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

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

Графика для Wolfenstein была целиком нарисована Адрианом Кармаком, но при работе над Doom команда Id понимала, что ей нужна помощь. Она воспользовалась поддержкой профессионального дизайнера моделей Грегора Пунчатса и создала систему, позволявшую легко оцифровывать результаты его работы.

598cec0c2f532adaaa0beacf0299f926.jpg


Модели размещались на поворотном столе, где прикреплялись к основанию. На столе было восемь штифтов, обозначающих восемь точек зрения, которые были необходимы игровому движку для рендеринга существ. Затем модели покадрово анимировались: модель сдвигалась, а затем поворачивалась на каждую из точек обзора, используемых движком. Изображения оцифровывались видеокамерой, подключенной к машине NeXT. После захвата каждого кадра он импортировался по сети на PC с установленным инструментов Dpaint компании Electronic Arts, в котором фотографический исходник преобразовывался в разрешение игры. Изображения отрисовывались при полной яркости, а игровой движок изменяет контрастность в зависимости от источника освещения.

image


Обычно Id пренебрегала звуковыми эффектами в процессе разработки, частично потому, что в штате компании не было программиста звука. Качество звука для Doom будет лучше, чем в Wolfenstein, потому что он записывался с частотой дискретизации не 7, а 11 кГц. Id считает, что 16-битный звук — это перебор для Doom и для любой другой экшн-игры, учитывая вкладываемые усилия, занимаемое место на диске и ресурсы процессора. Разработчики Id были готовы реализовать поддержку Roland Sound Canvas и большинства популярных звуковых карт, но стали получать гневные письма от сторонников карты Gravis UltraSound. Компания считала, что для поддержки UltraSound придётся потратить слишком много времени и сил, но занимавшийся звуком подрядчик Id урезал код Gravis, и в готовой игре появилась поддержка UltraSound.

Каким бы хорошим ни был геймплей Wolfenstein, всегда есть, куда расти. Id воспользовалась опытом, полученным в Wolfenstein, чтобы сделать Doom лучше. Например, секретные двери в Wolfenstein часто были неотличимы от окружающих их стен, поэтому единственным способом найти их была проверка каждой стены на уровне. В Doom все секретные двери имеют какую-то приметную черту, отличающую их от окружения. В игру добавлено больше оружия, и каждый тип имеет собственную уникальную изюминку. К сожалению, самую большую пушку — BFG 9000, необходимо было ослабить, потому что она была настолько сложной, что при каждом выстреле игра сильно начинала тормозить.

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


Одним из аспектов Wolfenstein, не предусмотренных разработчиками из Id, было появление целой индустрии хакеров, стремившаяся взломать код Id. Возможно, причиной было то, что Wolfenstein распространялся через модемы, и это стимулировало людей взламывать редакторы карт и растровых изображений, а иногда и создавать на основе shareware-версии с десятью уровнями полностью модифицированные игры. Apogee утверждала, что все эти «мутации» игры вредят продажам, потому что люди, по сути, получали бесплатно гораздо больше, чем 10 первых бесплатных уровней.

Сотрудники Id смотрели на это иначе; они не возражали и считали, что люди имеют право использовать игру так, как это кажется им интересным. Они планировали сделать то же самое с Doom и даже раскрыли некоторые технические спецификации. Но на этот раз игра будет проверять контрольную сумму, чтобы убедиться, что её не изменяли. Если она была изменена, то на экране появится сообщение о неоригинальной версии и информация о том, где можно купить оригинал.

Утечки альфа- и бета-версий отравляли жизнь Id с самых первых её дней, и Doom не стал исключением. На ранних этапах разработки Wolfenstein у авторов была идея провести конкурс: тот, кто найдёт секретную комнату, спрятанную где-то на одном из уровней, должен получить 10 000 долларов. Но первым позвонившим человеком был пират, нашедший секрет ещё на этапе бета-тестирования, из-за чего от затеи с призом пришлось отказаться.

image
Doom в версии 0.2

На раннем этапе разработки Doom так широко распространилась альфа-версия игры, что люди звонили в техническую поддержку, чтобы узнать, почему на их машине не работает звук. Разумеется, он не работал, потому что в игре его ещё не было. Самая неприятная история произошла с альфа-версией картриджа Wolfenstein для SNES. Игру разослали всего нескольким редакторам игровых журналов, и тем не менее она как-то оказалась в руках гавайского пирата, производившего картриджи для чёрного рынка. Чтобы попытаться защититься от подобных ситуаций, Id создала политику бета-версий: игры были защищены паролем и распространение бета-копий тщательно контролировалось.

Для Id были важны иностранные рынки, и разработчики предприняли большие усилия для повышения доступности игры. Все символы были созданы из графики, а не из шрифтов, чтобы Id могла передать графические файлы для перевода иностранным дистрибьюторам, а саму игру при этом не нужно было рекомпилировать. Продажи за рубеж составили примерно 20% от продаж Wolfenstein, и теперь Id ожидает, что благодаря хорошему договору о распространении за рубежом иностранные заказы составят треть продаж Doom. Неожиданным препятствием, вызвавшим разные слухи, стали возникшие у Wolfenstein проблемы в Германии. Id заявила, что Wolfenstein там запрещена, но не из-за нацистской символики, а из-за уровня насилия, и компания ожидает, что такие же ограничения будут наложены на Doom.

Несмотря на то, что Id получает в среднем по пять звонков в месяц от венчурных капиталистов, предлагающих сделать компанию публичной и большой, Id Software стремится оставаться частной и маленькой. Разработчики Id считают, что размер команды идеально подходит для работы над одним-двумя проектами. План роста Id включает в себя работу с другими мелкими разработчиками и лицензиарами. Этот план соответствует тому, что случилось с Wolfenstein — Id разработала новую технологию и продемонстрировала её в игре, а затем лицензировала технологию другим программным компаниям, которые использовали код и инструменты Id для создания игр. В случае с Wolfenstein Id продала лицензию на технологию JAM Productions, создавшей Blake Stone, и Apogee для создания Wolfenstein II.

Id планирует развивать отношения с другими компаниями, такими как Cygnus Studios. Cygnus разработала несколько игр для Apogee, которые понравились Id. Поэтому Id предложила Cygnus переехать в Техас и работать с командой Id. Сейчас Cygnus работает над киберпанковской ролевой игрой, в которой используется движок Doom и все инструменты Id [прим. пер.: судя по описанию, это игра Strife, которую доделала и издала Rogue Entertainment]. После завершения игры Cygnus компания Id будет её shareware-дистрибьютором.

После выпуска shareware-версии Doom Id начнёт работу над коммерческой версией Doom аналогично тому, как она сделала Spear of Destiny после Wolfenstein. Коммерческая версия Doom воспользуется преимуществами опыта компании на рынке shareware и в ней будут исправлены все неожиданные проблемы, которые возникнут в shareware-версии. И это ещё один приятный аспект распространения по модели shareware. При возникновении проблем, вызванных многообразием оборудования на рынке PC, их можно будет мгновенно устранять и выпускать новую ревизию, которую следующие пользователи смогут скачивать с электронных досок объявлений компании Id.


Следующим проектом должен был стать Doom для SNES, но в процессе работы над Wolfenstein для Nintendo планы поменялись. В разработке Wolfenstein под SNES не было технических проблем, препятствия ставила сама Nintendo. Nintendo заставила Id убрать из игры нацистскую символику и заменить немецких овчарок огромными крысами, но в этом не было ничего сложного. В течение следующим пары месяцев Nintendo придиралась к каждой детали и настолько разозлила команду Id, что та отказалась от дальнейшей разработки под SNES.

Теперь Id смотрит в сторону консоли Atari Jaguar. Изначально разработчики Id были в восторге от неё и собирались начать разработку для этой консоли после завершения версии Doom для SNES. Id уверена, что Atari продаст больше 500 тысяч консолей Jaguar. Получив плохой опыт работы с Nintendo, команда Id решила в первую очередь работать с Atari.

image


Позже Doom всё-таки вышел на SNES

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

© Habrahabr.ru