56 лет Джону Кармаку: рок-звезда, которая писала движки
Один из властелинов Doom, архитектор виртуальных миров Джон Д. Кармак больше всех подходит под определение рок-звезды индустрии. Не в последнюю очередь своим отчаянным нежеланием уходить на пенсию. Впрочем, сегодня ему исполняется всего-то 56 лет.
Позади звездные годы в id Software, купленная для понта, а затем подаренная с барского плеча вишнево-красная Ferrari (счастливцем оказался Деннис Фонг, чемпион турнира Red Annihilation по первому Quake), собственная аэрокосмическая компания Armadillo Aerospace и несколько плодотворных лет в команде VR-флагмана Oculus Rift.

Ныне острый разум Джона переключился на проблемы искусственного интеллекта. Программист-самоучка, Кармак уверен, что так называемый общий ИИ – машина, способная понимать окружающую среду и мир в целом на уровне человека, – достижим. Более того, в интервью трехлетней давности Джон оценил шансы появления ОИИ к 2050 году на уровне 95%. То есть со всей очевидностью планирует встретить это событие еще при своей (невероятной) жизни.
И все же об играх. Попробуйте мысленно удалить Джона Кармака из истории компьютерных развлечений – и все посыпется.

Ранние ПК-аркады лишаются плавного скроллинга. Wolfenstein 3D – скорости, позволившей бродилке от первого лица убедительно работать на самых ранних IBM PC. Doom превращается в неиграбельное слайд-шоу. Quake проваливается в техно-демонический ад, лишившись своего трехмерного фундамента. А все интернет-шутеры продолжают мучительно выяснять, что делать с модемным пингом.
Конечно, история не терпит настолько простых экспериментов: любую технологию рано или поздно придумал бы кто-нибудь другой. Но 21 августа – хороший повод посмотреть не на мифологию вокруг Джона Кармака, а на то, что именно этот человек последовательно менял в устройстве видеоигр.

Для Commander Keen Джон изобрел технику, которую назвали adaptive tile refresh. Грубо говоря, вместо постоянной перерисовки всего изображения компьютер обновлял преимущественно те элементы, которые действительно изменились. В сочетании с хитрым использованием возможностей EGA-видеоадаптеров это позволило добиться плавного скроллинга, выглядевшего почти по-консольному.
В Wolfenstein 3D Кармак использовал сильно оптимизированный рейкастинг – рендер математических лучей из глаз героя. Настоящим трехмерьем там еще и не пахло: карты оставались двумерными, стены имели одинаковую высоту, этаж над этажом построить было невозможно. Но именно ограничения вкупе с придумками Джона делали систему быстрой.

Вместо расчета сложной сцены программа решала гораздо более простые задачи – и Би Джей Бласковиц крошил нацистов с неизменно высоким FPS.
В Doom картинка стала заметно насыщеннее: появились помещения произвольной формы, разная высота пола и потолка, лестницы, движущиеся платформы, меняющееся освещение. Одним из ключевых ноу-хау стало использование binary space partitioning – BSP (не путать с легендарным стримером GG), предварительной нарезки и каталогизации геометрии уровня таким образом, чтобы во время игры движку было проще определить, какие поверхности необходимо рисовать в данное мгновение.

BSP Кармак не изобрел, этот подход существовал на бумаге задолго до Doom. Но именно умение брать академические идеи и превращать их в работающие игровые технологии стало его инженерным почерком.
Ради Quake Джон сполна погрузился в дебри полигональной геометрии, а специальное издание QuakeWorld стало плодом любви Кармака с векторной алгеброй – и сделало возможным комфортный deathmatch даже по диалапу. С технологией client-side prediction компьютер геймера больше не должен был ждать от сервера подтверждения каждого движения. Клиент мгновенно показывал предполагаемый результат команды, а затем корректировал его в соответствии с авторитетными данными сервера.

И так далее, и тому подобное, очевидное и невероятное. Вывод, он же поклон мастеру: Джон Кармак регулярно находил прием, который уже существовал на уровне идеи, понимал, как приспособить его к актуальному железу, и доводил до состояния, после которого все вокруг начинали двигаться в ту же сторону.
И быть может, он еще не раз выступит для нас путеводной звездой индустрии. Ведь как мы сказали, Кармаку всего-то 56. Мальчик!

