Он занимался 3D-графикой еще с незапамятных времен, создавая каркасы логотипа MTV на своем Apple II. Некоторые игры к тому моменту уже успели поэкспериментировать с перспективой от первого лица – например, Akalabeth[103]
, первая RPG Ричарда Гэрриота, вышедшая в 1980 году. Спустя два года компания Sirius Software выпустила Wayout[104] – игру для Apple II о передвижении по лабиринту, в которой тоже был вид от первого лица, за счет чего ей удалось впечатлить игроков и критиков. Особенно часто эта технология применялась в разнообразных авиасимуляторах. В 1990 году Origin, компания все того же Ричарда Гэрриота, выпустила Wing Commander[105] – симулятор космических баталий, который полюбился в том числе и ребятам из id.Но Кармак был уверен, что может сделать и лучше. Авиасимуляторы, по его мнению, были безумно медленными – из-за больших объемов тяжелой графики игрок перемещался по миру черепашьим шагом. Ему, да и всем остальным тоже, нравились куда более быстрые аркады – Defender, Asteroids, Gauntlet. Пока остальная команда работала над Rescue Rover и Dangerous Dave in the Haunted Mansion, Кармак пытался понять, как ему сделать нечто невиданное: быструю 3D-игру.
Проблема, как он понимал, была в том, что компьютеру не хватало для нее мощности. Кармак прочитал все доступные материалы, но не нашел ничего полезного. Он решил действовать по аналогии с Commander Keen: сначала пойти по самому очевидному пути, и, если не сработает, думать, как исхитриться. Одной из причин низкой скорости трехмерных игр было то, что компьютеру приходилось рисовать слишком много поверхностей одновременно. Почему бы, подумал Кармак, не сузить область видимости: образно выражаясь, надеть на игрока шоры, чтобы уменьшить область требуемой прорисовки и рисовать только по несколько поверхностей за раз? Он написал программу, которая могла рисовать только один вид поверхностей – боковые трапеции; так можно было изображать стены, но нельзя – пол и потолок.
Чтобы дополнительно ускорить рисование, Кармак применил необычную технику – рейкастинг. Вместо того чтобы рисовать большие пласты графики целиком, что занимало очень много времени и памяти, с помощью рейкастинга можно было разбить их на тонкие вертикальные полосы и отображать на экране только те, что игрок видит в данный момент. Все ради скорости.
Последняя сложность – добавить в трехмерный мир персонажей. Для этого Кармак решил использовать спрайты – обычные плоские рисунки вполне годились. В Wing Commander использовался алгоритм, который увеличивал и уменьшал размер спрайта в зависимости от того, насколько далеко от него находился игрок. Масштабируемые спрайты, трапеции и рейкастинг – вот быстрый трехмерный мир и готов.
ОН РЕШИЛ ДЕЙСТВОВАТЬ ПО АНАЛОГИИ С COMMANDER KEEN: СНАЧАЛА ПОЙТИ ПО САМОМУ ОЧЕВИДНОМУ ПУТИ, И, ЕСЛИ НЕ СРАБОТАЕТ, ДУМАТЬ, КАК ИСХИТРИТЬСЯ.
На все про все Кармаку пришлось потратить шесть недель – на две больше, чем у него когда-либо уходило на игру. Ромеро был восхищен результатом – Вундеркинд снова нашел чем его удивить. Они обсудили, какую игру им нужно сделать, чтобы задействовать все возможности нового движка, и придумали футуристический мир, где игрок, управляя танком, должен был спасать людей от ядерного апокалипсиса. Hovertank[106]
, первый быстрый шутер от первого лица для персонального компьютера, увидел свет в апреле 1991 года. id изобрела новый жанр.Hovertank была инновационной, но не шла ни в какое сравнение с Commander Keen. Игра была довольно уродливой – особенно ее большие стены, залитые сплошным цветом, – но при этом, как всегда в id, мрачной и зловещей. Адриан не преминул возможностью нарисовать целый бестиарий мутантов, которые после смерти оставляли на полу кровавые лужи. Как и в играх про Кина, эти лужи не высыхали, так что если игрок возвращался на место сражения, он мог заметить следы былой битвы.
В начале мая id Software продолжила совершенствовать свои игры и расширять бизнес, решив вернуться к первому успешному бренду – Commander Keen. Ребята собрались выпустить еще один эпизод специально для Softdisk – Keen Dreams[107]
. Его не стали делать трехмерным, чтобы, как и раньше, построить геймплей вокруг сайдскроллинга, но хотелось туда добавить что-нибудь новое. Очевиднее всего было сделать процесс перемещения по локации более привлекательным – например, перемещать передний и задний планы с разной скоростью. Этот эффект назывался параллакс-скроллингом. Если в обычной игре, когда персонаж бежал по лесу, деревья стояли на месте, то в игре с параллакс-скроллингом они двигались вместе с ним, но очень медленно. Реализм!