В 1992 году процессоры были в тысячу раз медленнее современных, а GPU либо не существовало, либо стоило бешеных денег. Игры считали 3D исключительно на CPU, а движки рендерили залитые одним цветом полигоны. Но в том же году NovaLogic выпустила Comanche — графику называли сногсшибательной, и она действительно опережала время года на три. На горах и в долинах появились текстуры, аккуратные тени и затенение. Да, всё было пиксельным — но так было везде.
Comanche использует технику Voxel Space, основанную на тех же идеях, что и ray casting. Это 2.5D-движок, у него нет полной свободы настоящего 3D. Ландшафт задаётся двумя картами размером 1024×1024: одна хранит высоту (один байт на точку), другая — цвет (тоже байт). Такие карты не позволяют отображать сложные объекты вроде зданий или деревьев, но у них есть плюс: цветовая карта уже содержит тени и затенение, движку не нужно вычислять освещение во время рендера.
Сам алгоритм удивительно прост. Он растеризует карты высот и цветов, рисуя вертикальные линии. Кадр строится с заднего плана к переднему — это так называемый painter algorithm. Движок определяет на карте линию, соответствующую одинаковому оптическому расстоянию от наблюдателя, растеризует её на количество колонок экрана, берёт из карт высоту и цвет для каждого сегмента, применяет перспективную проекцию и рисует вертикальную линию нужного цвета и высоты.
Базовая версия умеет смотреть только на север. Чтобы добавить поворот камеры, координаты линии на карте умножаются на синус и косинус угла обзора. Для повышения производительности используется несколько трюков. Вместо рисования сзади наперёд можно рисовать спереди назад — это уменьшает количество перерисовок, но требует дополнительного y-buffer, который хранит самую высокую уже нарисованную точку для каждой колонки. Ещё один приём — level of detail: ближние детали прорабатываются тщательнее, а дальние — грубее, шаг по оси Z увеличивается по мере удаления.
Исходные коды примеров приведены на Python. Карты высот и цветов для Comanche были восстановлены методом обратного инжиниринга, поэтому они исключены из лицензии MIT, под которой распространяется софт репозитория. Сама технология Voxel Space может быть запатентована в некоторых странах.