Повелители DOOM. Как два парня создали культовый шутер и раскачали индустрию видеоигр
Шрифт:
Следующая игра для Gamer’s Edge должна была стать шагом в этом направлении. Когда команда обсуждала идеи для проекта, Кармак показал свои наработки по вертикальной прокрутке экрана. В отличие от большинства сложных игр со скроллингом, эта была устроена по принципу беговой дорожки: графические изображения плавно двигались вниз по заранее определенному маршруту. От такого перемещения не возникало чувства, что игрок движется вверх по своей воле. Это было больше похоже на наблюдение за подвижными декорациями в театре.
Ромеро, будучи геймером-эрудитом, переигравшим почти во все вышедшие на тот момент игры для PC, до сих пор не видел ничего подобного. Появился шанс стать первооткрывателями. Они назвали игру Slordax [70] . Это был
С первых же дней разработки Slordax команда заработала как единое целое. Кармак с ураганной скоростью создавал графический движок, пока Ромеро разрабатывал инструменты для создания персонажей и окружения. Кармак писал гениальный код, а Ромеро проектировал захватывающий геймплей. Даже Том Холл успел пробраться в кабинет Gamer’s Edge и создать несколько существ и фонов для игры. Адриан тем временем делал наброски космических кораблей и астероидов. Ромеро сразу понял, насколько талантлив был их молчаливый стажер.
70
«Слордакс». – Прим. пер.
Хотя компьютеры по-прежнему были ему чужды, Адриан очень быстро привык к палитре на экране. Рисунки, создававшиеся на компьютере, из-за графических ограничений в то время выглядели почти как картины пуантилистов [71] . Видеокарта стандарта CGA, которой были оборудованы большинство компьютеров, позволяла использовать лишь четыре цвета. Но благодаря недавно появившемуся EGA в играх можно было использовать до шестнадцати цветов. Для художника это по-прежнему было серьезным ограничением. Адриан должен был оживить целый мир, пользуясь пригоршней цветов, которые он даже не мог смешивать. Ветераны индустрии называли этот процесс искусством «расстановки пикселей». И Адриан блестяще им овладел.
71
Пуантилизм – направление в живописи, в основе которого лежит техника письма раздельными точечными мазками. – Прим. пер.
Кроме того, стало очевидным, что Адриан настолько не любил высовываться, что становился практически незаметным. Он по-прежнему не понимал, как ему вести себя с этими геймерами. Кармак был похож на робота из-за своей странной манеры речи: отрывистых предложений и неизменного «М-м-м» в конце фразы. Он мог сидеть и программировать весь день, не проронив ни слова, но его работа была потрясающей. Ромеро и вовсе выглядел чудаком, который отпускал дикие шутки про всякую расчлененку и рассказывал истории про извращенные комиксы, которые он до сих пор рисовал. Адриан считал его довольно забавным.
КАРМАК ПИСАЛ ГЕНИАЛЬНЫЙ КОД, А РОМЕРО ПРОЕКТИРОВАЛ ЗАХВАТЫВАЮЩИЙ ГЕЙМПЛЕЙ.
А вот Тома Холла – совсем нет. Адриан впервые встретил его, когда тот ворвался в комнату в голубом трико, белой майке и кепке, размахивая при этом пластиковым мечом. Потом он замер, поднял бровь и издал странный инопланетный вопль, на который Ромеро ответил каким-то зловещим смехом. Том всего лишь зашел похвастаться своим костюмом на Хэллоуин. И, как обычно, задержался, помогая друзьям с разработкой дизайна и программных инструментов. Адриан был рад, что он вообще ушел.
Впрочем, однажды Том засиделся допоздна. Ромеро, Адриан и другие сотрудники Softdisk давно разошлись по домам. В офисе остались лишь Том и Кармак. Работа над Slordax близилась к завершению, и Кармак затеял кое-что новое. Сова по натуре, он сидел в офисе до утра. Ему нравилась жизнь затворника: она давала возможность погрузиться в работу еще глубже. Кармак делал то, чем всегда хотел заниматься: писал код для игр. И он был счастлив в кои-то веки не переживать, что ждет его в будущем. Если бы он мог и дальше создавать здесь игры, получая достаточно денег на еду и жилье, ему этого хватило бы. Как он сказал друзьям в один из первых рабочих дней, его можно запереть в шкафу с компьютером, пиццей и запасом диетической колы, и ему будет вполне комфортно.
Том расположился в кресле, а Кармак стал демонстрировать придуманный им способ анимации графических тайлов. Экран состоит из тысяч пикселей, группа пикселей образует тайл. При создании игры художник сначала создает из пикселей тайлы, а потом располагает их вместе, чтобы создать виртуальное окружение. Это похоже на укладку кафеля на кухне. С новым трюком Кармака тайл мог обладать небольшой графической анимацией.
– Я смогу сделать так, – объяснял он, – что когда персонаж запрыгивает на тайл, с самим тайлом что-то происходило.
– Разве это так просто? – спросил Том.
– Конечно, м-м-м… – ответил Кармак.
Ему только нужно было знать, что программа должна будет делать, когда игрок достигнет определенного тайла. Том понял: это потрясающе. Игры вроде Super Mario Brothers 3 были полны анимированных тайлов. Например, игрок мог запрыгнуть на мерцающий блок, и тогда из него начинал сыпаться дождь из монеток. Том был взбудоражен. Но это было еще не все.
Кармак нажал пару клавиш на клавиатуре и показал Тому свою новую фишку: сайд-скроллинг. Эффект, моду на который ввели Defender и Mario, создавал впечатление, будто игровой мир продолжался, когда персонаж двигался в направлении края экрана. Потратив несколько ночей на эксперименты, Кармак наконец-то разобрался, как перенести этот эффект на PC. Как и всегда, он сумел найти оригинальный подход к решению проблемы. Слишком многие, думал он, пытались с самого начала выстраивать свои программы вокруг хитрых уловок. В этом не было смысла. Первым делом он подошел к проблеме максимально прямолинейно: написал программу, которая должна была плавно прорисовывать графику на всем экране целиком. Программа не работала, и всем было очевидно почему: PC были слишком медленными. Тогда Кармак перешел ко второму шагу: оптимизации. Был ли способ эффективнее использовать память компьютера, чтобы изображения прорисовывались быстрее? После ряда попыток он понял наверняка: это было невозможно.
Наконец, он спросил себя: «Так, а чего я вообще тут пытаюсь добиться? Мне нужно, чтобы экран как будто плавно сдвигался, пока пользователь по нему бежит». Он вспомнил свою прошлую игру, The Catacomb. В ней экран прокручивался как единое целое, когда персонаж подходил к границе подземелья. Это было популярным трюком: скроллинг, основанный на тайлах, смещал экран крупными кусками, по одному набору тайлов за раз. Он хотел добиться более плавной прокрутки, когда персонаж сдвигался на самую капельку. Проблема была в том, что компьютеру требовалось чересчур много времени и мощности, чтобы перерисовывать весь экран при каждом маленьком движении. И в этот момент его осенило.
Кармак подумал: «А что, если вместо того, чтобы перерисовывать весь экран, я бы мог найти способ перерисовывать только те объекты, которые меняются? Тогда скроллинг будет отрисовываться гораздо быстрее». Он представил себе, как персонаж бежит по экрану на фоне большого синего неба и в какой-то момент над его головой проплывает белое кучерявое облачко. Если компьютер будет подходить к этому в обычном ключе, ему придется перерисовывать каждый пиксель синего неба на всем экране, тогда как единственное, что действительно меняется, – это белое облачко. Компьютер не может сам упростить себе задачу просто потому, что это кажется логичным. Поэтому Кармак придумал еще один гениальный ход. Он нашел способ заставить компьютер работать более эффективно. Он написал код, который заставлял компьютер думать, что, например, седьмой тайл слева на самом деле был первым тайлом на экране. Таким образом, компьютер начинал отрисовку строго в том месте, где это было Кармаку необходимо. Вместо перерисовки одних и тех же синих пикселей по пути к облаку, он начинал сразу с самого облака. Чтобы эффект ощущался более плавным, Кармак добавил еще одну деталь. Он заставил компьютер отрисовать дополнительный тайл синего неба за правой границей экрана и хранить его в памяти, когда игрок продвигался в эту сторону. Благодаря этому сохраненные в памяти тайлы выводились на экран мгновенно, без необходимости отрисовывать их в процессе. Кармак назвал этот процесс «адаптивным обновлением тайлов».