Хабрахабр

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

image

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

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

image

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

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

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

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

image

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

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

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

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

image

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

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

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

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

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

Кармаку кажется, что он всего за пару выходных дней смог бы заставить Doom работать в окне на Macintosh, но Id не будет писать порт сама. Написание кода на ANSI C облегчает портирование на другие операционные системы и рекомпиляцию кода под DOS, а NeXTStep помогает в избавлении от багов в процессе разработки. 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 разорвала отношения с двумя партнёрами, которые были с ней с самого начала.

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

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

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

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

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

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

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

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

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

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

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

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

image

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

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

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

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

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

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

2 image
Doom в версии 0.

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

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

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

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

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

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

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

image

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть