Шутер в стиле 1993-го намеренно: 256 цветов, кот-протагонист и трюк с colormap из Excel

Разработчик делает шутер от первого лица с программным рендерингом начала 90-х и без единого ИИ-ассета. Трюк с затенением в его основе — тот же, что использовал скрытый авиасимулятор в Excel 97. Тред полюбил ограничения.

Вкратце

Сборка — рейкастер 320×240 на 256 цветов, который заранее просчитывает затенение по расстоянию в «colormap», так что затемнение становится O(1) на столбец, а не на каждый пиксель.

Ветераны графики поправили эпоху: движок на самом деле уровня Wolfenstein 3D, а не Doom — и некоторые детали «чуть слишком крутые для 1993-го».

Более глубокая мысль всё равно дошла: это ровно то ремесло с нуля, в котором нынешние LLM ужасны.

Ограничение и есть смысл

Ретро-сцена 3D с программным рендерингом из проекта
Ретро-сцена 3D с программным рендерингом из проекта

Пост описывает «Catlantean 3D» — шутер от первого лица, который строят на техниках программного рендеринга начала 1990-х (фреймбуфер 320×240, палитра на 256 цветов), но на современных инструментах и с заявленным правилом: никаких ИИ-ассетов. Движок это DDA-рейкастер, чей центральный трюк — colormap: 2D-матрица индексов палитры с 32 уровнями тени, просчитанная один раз, так что затемнение по расстоянию становится O(1) на столбец, строку или спрайт вместо вычисления на каждый пиксель. Расстояния по цвету и тени считаются в пространстве Oklab с намеренным сдвигом оттенка в тёплые тёмные тона, чтобы тени не выглядели «холодными и безжизненными».

256-цветная палитра проекта
256-цветная палитра проекта

Конвейер ассетов заранее рендерит модели из Blender в квантованные спрайты пакетными Python-скриптами (около 10 секунд на 15 моделей на RTX 3070), с нарисованным вручную HUD, процедурно сгенерированными текстурами стен и «ошмётками» разрушения на основе декомпозиции Вороного. Протагонист — кот по имени Вилко; релиз нацелен на первый квартал 2027 года по цене $5–8.

Пример затенения через colormap из статьи
Пример затенения через colormap из статьи

Ветераны поправили эпоху

Историки графики из треда мягко оспорили ярлык «1993»: техника на поколение старше Doom.

«Тут много вдохновения от Doom, но сам рейкастинговый движок скорее как предшественники Doom … Wolfenstein 3D: перпендикулярные стены, постоянная высота пола и потолка.» — комментатор, прослеживающий настоящую родословную движка

А лучший факт связал трюк с colormap с неожиданным местом:

«Пасхалка с авиасимулятором / ковром-самолётом в Microsoft Excel 97 использовала тот же трюк с затенённой палитрой colormap плюс немного дизеринга.» — rezmason, который делает графические демо

Почему это отозвалось

Любители деталей вышли в полном составе, включая подсказку от известного имени в истории графики:

«Подумай о премиальной коробочной версии. Я бы её купил … Может, попробовать kickstarter, чтобы понять, сколько желающих?» — fabiensanglard

Было и воспоминание о временах, когда так просто и программировали:

«Указателя на 0xA0000 было достаточно: никаких API и прочего.» — комментатор, вспоминающий графику эпохи VGA

Сквозная мысль и причина, по которой статья про ретро-проект одного человека набрала 768 голосов: это ремесло не сжимается в промпт. Как сказал один читатель, программный рендеринг руками — «то, в чём LLM до смешного плохи, так что приходится делать как следует». В день, где правит модель, работающая девять с половиной часов без присмотра, самой залайканной графической историей стал человек, намеренно делающий это медленным, трудным способом 1993-го.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 2 из 21 Читать дальше
🌍Other

Одна микроРНК держит растение молодым — и «вечная юность» независимо возникала у акаций семь раз

Биолог из Пенсильванского университета Скотт Поэтиг всю карьеру прослеживал переключатель, переводящий растение из юного состояния во взрослое. Держи одну молекулу, miR156, на высоком уровне — и растение никогда не повзрослеет. Тред принёс настоящую статью.

★ 124 · 💬 67 · omnia.sas.upenn.edu · 2 мин