Читаем Повелители DOOM. Как два парня создали культовый шутер и раскачали индустрию видеоигр полностью

Ему только нужно было знать, что программа должна будет делать, когда игрок достигнет определенного тайла. Том понял: это потрясающе. Игры вроде Super Mario Brothers 3 были полны анимированных тайлов. Например, игрок мог запрыгнуть на мерцающий блок, и тогда из него начинал сыпаться дождь из монеток. Том был взбудоражен. Но это было еще не все.

Кармак нажал пару клавиш на клавиатуре и показал Тому свою новую фишку: сайд-скроллинг. Эффект, моду на который ввели Defender и Mario, создавал впечатление, будто игровой мир продолжался, когда персонаж двигался в направлении края экрана. Потратив несколько ночей на эксперименты, Кармак наконец-то разобрался, как перенести этот эффект на PC. Как и всегда, он сумел найти оригинальный подход к решению проблемы. Слишком многие, думал он, пытались с самого начала выстраивать свои программы вокруг хитрых уловок. В этом не было смысла. Первым делом он подошел к проблеме максимально прямолинейно: написал программу, которая должна была плавно прорисовывать графику на всем экране целиком. Программа не работала, и всем было очевидно почему: PC были слишком медленными. Тогда Кармак перешел ко второму шагу: оптимизации. Был ли способ эффективнее использовать память компьютера, чтобы изображения прорисовывались быстрее? После ряда попыток он понял наверняка: это было невозможно.

Наконец, он спросил себя: «Так, а чего я вообще тут пытаюсь добиться? Мне нужно, чтобы экран как будто плавно сдвигался, пока пользователь по нему бежит». Он вспомнил свою прошлую игру, The Catacomb. В ней экран прокручивался как единое целое, когда персонаж подходил к границе подземелья. Это было популярным трюком: скроллинг, основанный на тайлах, смещал экран крупными кусками, по одному набору тайлов за раз. Он хотел добиться более плавной прокрутки, когда персонаж сдвигался на самую капельку. Проблема была в том, что компьютеру требовалось чересчур много времени и мощности, чтобы перерисовывать весь экран при каждом маленьком движении. И в этот момент его осенило.

Кармак подумал: «А что, если вместо того, чтобы перерисовывать весь экран, я бы мог найти способ перерисовывать только те объекты, которые меняются? Тогда скроллинг будет отрисовываться гораздо быстрее». Он представил себе, как персонаж бежит по экрану на фоне большого синего неба и в какой-то момент над его головой проплывает белое кучерявое облачко. Если компьютер будет подходить к этому в обычном ключе, ему придется перерисовывать каждый пиксель синего неба на всем экране, тогда как единственное, что действительно меняется, – это белое облачко. Компьютер не может сам упростить себе задачу просто потому, что это кажется логичным. Поэтому Кармак придумал еще один гениальный ход. Он нашел способ заставить компьютер работать более эффективно. Он написал код, который заставлял компьютер думать, что, например, седьмой тайл слева на самом деле был первым тайлом на экране. Таким образом, компьютер начинал отрисовку строго в том месте, где это было Кармаку необходимо. Вместо перерисовки одних и тех же синих пикселей по пути к облаку, он начинал сразу с самого облака. Чтобы эффект ощущался более плавным, Кармак добавил еще одну деталь. Он заставил компьютер отрисовать дополнительный тайл синего неба за правой границей экрана и хранить его в памяти, когда игрок продвигался в эту сторону. Благодаря этому сохраненные в памяти тайлы выводились на экран мгновенно, без необходимости отрисовывать их в процессе. Кармак назвал этот процесс «адаптивным обновлением тайлов».

Том немедленно сообразил, что это означало: теперь они могли сделать Super Mario Brothers 3 на PC! Никто никогда и нигде не мог добиться подобного на PC. А они могли! Прямо здесь и сейчас они могли взять свою любимую игру, взломать ее и заставить работать на компьютере. По сути, это была революционная диверсия, подумал Том. Особенно учитывая, как тщательно Nintendo оберегала свою платформу. Раньше не было способа, скажем, скопировать игру Nintendo на PC так же, как переписать альбом на кассету. А теперь они могли воссоздать ее тайл за тайлом, кусочек за кусочком. Это был величайший взлом.

– А давай так и сделаем! – воскликнул Том. – Давай воссоздадим первый уровень из Super Mario, сегодня же!

Перейти на страницу:

Похожие книги

Адмирал Советского Союза
Адмирал Советского Союза

Николай Герасимович Кузнецов – адмирал Флота Советского Союза, один из тех, кому мы обязаны победой в Великой Отечественной войне. В 1939 г., по личному указанию Сталина, 34-летний Кузнецов был назначен народным комиссаром ВМФ СССР. Во время войны он входил в Ставку Верховного Главнокомандования, оперативно и энергично руководил флотом. За свои выдающиеся заслуги Н.Г. Кузнецов получил высшее воинское звание на флоте и стал Героем Советского Союза.В своей книге Н.Г. Кузнецов рассказывает о своем боевом пути начиная от Гражданской войны в Испании до окончательного разгрома гитлеровской Германии и поражения милитаристской Японии. Оборона Ханко, Либавы, Таллина, Одессы, Севастополя, Москвы, Ленинграда, Сталинграда, крупнейшие операции флотов на Севере, Балтике и Черном море – все это есть в книге легендарного советского адмирала. Кроме того, он вспоминает о своих встречах с высшими государственными, партийными и военными руководителями СССР, рассказывает о методах и стиле работы И.В. Сталина, Г.К. Жукова и многих других известных деятелей своего времени.Воспоминания впервые выходят в полном виде, ранее они никогда не издавались под одной обложкой.

Николай Герасимович Кузнецов

Биографии и Мемуары
100 великих гениев
100 великих гениев

Существует много определений гениальности. Например, Ньютон полагал, что гениальность – это терпение мысли, сосредоточенной в известном направлении. Гёте считал, что отличительная черта гениальности – умение духа распознать, что ему на пользу. Кант говорил, что гениальность – это талант изобретения того, чему нельзя научиться. То есть гению дано открыть нечто неведомое. Автор книги Р.К. Баландин попытался дать свое определение гениальности и составить свой рассказ о наиболее прославленных гениях человечества.Принцип классификации в книге простой – персоналии располагаются по роду занятий (особо выделены универсальные гении). Автор рассматривает достижения великих созидателей, прежде всего, в сфере религии, философии, искусства, литературы и науки, то есть в тех областях духа, где наиболее полно проявились их творческие способности. Раздел «Неведомый гений» призван показать, как много замечательных творцов остаются безымянными и как мало нам известно о них.

Рудольф Константинович Баландин

Биографии и Мемуары
100 великих интриг
100 великих интриг

Нередко политические интриги становятся главными двигателями истории. Заговоры, покушения, провокации, аресты, казни, бунты и военные перевороты – все эти события могут составлять только часть одной, хитро спланированной, интриги, начинавшейся с короткой записки, вовремя произнесенной фразы или многозначительного молчания во время важной беседы царствующих особ и закончившейся грандиозным сломом целой эпохи.Суд над Сократом, заговор Катилины, Цезарь и Клеопатра, интриги Мессалины, мрачная слава Старца Горы, заговор Пацци, Варфоломеевская ночь, убийство Валленштейна, таинственная смерть Людвига Баварского, загадки Нюрнбергского процесса… Об этом и многом другом рассказывает очередная книга серии.

Виктор Николаевич Еремин

Биографии и Мемуары / История / Энциклопедии / Образование и наука / Словари и Энциклопедии