Огр, пойманный ракетой в коридоре Quake, квадратные частицы летят в воздухе
Quake в DOS-версии с программным рендером, где даже частицы квадратные. Все скриншоты в этом материале — собственные снимки автора.

Что это такое

В игре с программным рендерингом каждый пиксель рисует процессор. Видеокарта 3D не используется — весь кадр рассчитывается в коде игры и пишется прямо в видеопамять. Так работают Doom, Duke Nukem 3D, Blood и оригинальный Quake.

Когда появились 3D-карты, много игр получили ускоренные версии. После Quake пришла GLQuake, Blood и Tomb Raider получили режимы 3dfx. Эти версии перекладывают рисование на видеокарту, и выглядят они иначе.

Почему это нравится

Резкость. Программные рендеры обычно сэмплируют текстуры пиксель за пикселем, так что каждый texel остаётся чётким квадратиком. Ранние 3D-карты сглаживали текстуры билинейной фильтрацией, что в 1997-м выглядело впечатляюще, но сейчас размывает всё в кашу.

Руна Quake на стене, каждый texel — чёткий квадрат

Грязь и текстура. Большинство этих игр работали в 256 цветах, освещение — через таблицы поиска в палитре. Тени падают видимыми ступеньками, а не плавными градиентами. Технически это posterize, ограничение. На практике это даёт играм грубую, грязную фактуру, которая мне очень нравится, а аппаратный рендер сглаживает.

Лава светит сквозь отверстия в грязной каменной стене в Quake

Огр с цепной пилой на выступе над лавовым прудом в Quake

Это то, ради чего создавались игры. Quake выпустили с программным рендером, GLQuake появилась позже. Doom и игры на Build Engine проектировались под программный рендер с самого начала.

Хотя это не всегда правильный выбор. Когда удалось поставить Voodoo 2 на современный ПК, Blood работала быстро в режиме 3dfx, но VESA-режимы программного рендера выглядели лучше. Tomb Raider — наоборот: подводные разделы заметно лучше смотрятся в ускоренной версии, чем в DOS-рендере. Это вопрос вкуса, а не правила. Но для большинства игр, которые мне интересны, я выбираю программный рендер.

И это не просто ностальгия. Ion Fury — игра на Build Engine 2019 года — всё ещё поставляется с программным рендером.

Главное препятствие: нужен быстрый ПК

Программный рендеринг масштабируется вместе с процессором. Каждый дополнительный пиксель — работа для CPU, поэтому высокие VESA-разрешения, доступные в поздних DOS-играх, были недостижимы на железе того времени.

Современное оборудование это переваривает. На OptiPlex 380 Quake на 800×600 держит ровные 60 fps. Но самые тяжелые игры давят даже очень быстрые машины. В видео про Portwell RUBY-9719 Rasteri показывает, что Build engine-игры требуют куда больше мощности на высоких разрешениях — даже 3.3GHz quad-core Xeon не совсем справляется с Shadow Warrior на полных 1600×1200.

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

Почему нужен native DOS

Есть и другие способы получить программный рендеринг на современном ПК. Source-порты Doom и Quake запускают программные рендеры в Windows, Ion Fury нативно работает на Windows. Они хороши.

Но нужны оригинальные DOS-версии, запущенные как они были выпущены, на реальном железе. DOSBox — очевидная альтернатива, но некоторые DOS-игры в нём ведут себя странно, а на реальном оборудовании работают как задумано.

Остаётся одна проблема: звук. Быстрая машина с native DOS нуждается в звуковой карте, с которой могут говорить игры, а в современных ПК её нет. Это отдельная история.

Какие игры стоит попробовать

  • Quake, программный рендер на 800×600 и выше
  • Duke Nukem 3D и Blood — игры на Build Engine на высоких VESA-разрешениях
  • Screamer
Городская улица на первом уровне Duke Nukem 3D Pig Cop в магазине в Duke Nukem 3D