Назад
Catlantean 3D: шутер у стилі 1993 року з палітрою на 256 кольорів
SiTech AI Team3 წთ. საკითხავი

Catlantean 3D: шутер у стилі 1993 року з палітрою на 256 кольорів

Розробник Марко Станіч опублікував перший девлог Catlantean 3D — шутера від першої особи, зібраного за техніками початку 90-х: роздільність 320x240, палітра на 256 кольорів і рендеринг, написаний вручну.

Розробник Марко Станіч опублікував перший девлог Catlantean 3D — шутера від першої особи, який він понад рік збирає у вільний час і планує випустити в Steam. Проєкт є вправою навмисних обмежень: гра пишеться з нуля, разом з усіма активами, а рендеринг і зведення звуку виконуються вручну.

Правила 1993 року

Цільова роздільність — 320x240 і 256 кольорів: VGA Mode-X, а не класичний 320x200 Mode 13h, бо 320x200 на екрані 4:3 дає неквадратні пікселі. Ігрова логіка використовує арифметику з фіксованою комою, щоб поведінка була детермінованою на всіх платформах; рендеринг може користуватися плаваючою комою. Дозволений шар платформи охоплює лише буфер кадру, введення з клавіатури й миші, аудіобуфер та файлову систему. У палітровому рендерингу кожен піксель — це один байт, індекс у палітрі на 256 кольорів, тож кожен вибір кольору має бути усвідомленим. Палітра на 768 байтів резервує місця для прозорості, чистого білого й чорного, а решту віддає кривавим червоним, зеленим і синім для кольорових ключів і дверей, пустельним відтінкам пародійного Стародавнього Єгипту Катлантіса та сірим барвам кібернетичних інсталяцій, що його окупували.

Освітлення без шейдерів

Catlantean 3D — класичний рейкастер: мапа є сіткою тайлів, а кожен стовпець екрана проходиться алгоритмом DDA, щоб знайти перетин із геометрією. Зазвичай шейдер затемнює далеку геометрію, множачи вектор кольору на коефіцієнт, але палітровий рендерер знає лише індекси, і перебір палітри для кожного пікселя надто повільний. Тому рушій заздалегідь обчислює колормапу: 32 рівні тіні, для кожного кольору 31 темніший варіант, узятий із самої палітри. Найближчий збіг шукають у перцептивному просторі Oklab, а не за евклідовою відстанню, яка зсувала всі відтінки до сірого, а темніші щаблі підтягують до тепліших барв — відомий у піксель-арті прийом hue shifting. Під час роботи пошук має складність O(1): індекс рядка виводиться з відстані фрагмента, поділеної на дальність огляду, і, оскільки стіни вертикальні, підлога горизонтальна, а спрайти пласкі, він обчислюється раз на стовпець, раз на рядок і раз на спрайт.

Активи та інструменти

Графіка надходить із трьох джерел: намальовані вручну спрайти, процедурно згенеровані текстури, які складають зі скриптів Python, і 3D-моделі, зариговані та анімовані в Blender, а потім відрендерені в аркуші спрайтів через Python API Blender. Спершу рендери виходили розмитими й бляклими, тож Станіч використовує композитор Blender для контрасту та чіткості країв, після чого скрипт квантує зображення до палітри й пакує його у формат TEX. Спрайти ворогів рендерять для кожної анімації у восьми напрямках. Редагування рівнів починалося в Tiled, але перейшло у власний редактор на wxPython із малюванням освітлення по клітинках, прапорцями клітинок і прямим запуском рівня; частина його моделі спирається на pybast — Python-обгортки над внутрішніми частинами рушія.

Плани випуску

Станіч розраховує видати Catlantean 3D у першому кварталі 2027 року приблизно за 5–8 доларів. Код викладуть на GitHub як відкритий, а архів даних — графіка, рівні, звуки й музика — вимагатиме купівлі гри.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.