BoxEngine

Программный комплекс для создания псевдотрёхмерных игр, запускаемых на мобильных устройствах.

Компоненты: Аналог компьютерного GTA, в чём-то урезанный, в чём-то улучшенный. Скорее всего, это самый сложный из движков для J2ME-игр. Хотя и не самый эффектный, ввиду наличия на многих телефонах расширения M3G, тогда как в BoxEngine программный рендеринг.

Экранный снимок

Разработка велась с 2006 года в сотрудничестве с компанией NETSOFTWARE, в частности, благодаря общению с Лёшей Бункером, создателем движка Бункер 3D.
Планировалось и довольно глубоко прорабатывалось несколько игровых проектов, но до выпуска дошёл только один проект — Antikiller Mobile (см. в разделе «Мобильные»).
История чем-то напоминает «Буран». Или нет? ;-)

Примечательно, что в том же году Кен Сильверман начал работу над движком Build 2, также показывающем "чудеса" чисто на процессоре, но компьютерном.

BoxEngine3D.com, 2011, J2ME


Wall-Engine

Эксперименты с текстурированием стен начались ещё в 99-м на Quick Basic, на волне вдохновения от векторного движка. Тогда же Max создал Relly на Delphi, которая умеет рисовать текстурированные здания и ландшафт, хоть и не быстро.

В 2000-2001 сформировался код на Turbo Pascal с ассемблерными вставками, который симулировал плавную прогулку по лабиринту с произвольно расставленными динамически освещаемыми текстурированными стенами, в режиме 320x200x8bits, путём трассировки лучей по горизонтали с заполнением пикселей по вертикали:
Экранный снимок

В 2005-м, на волне интереса у автора к технологиям 3D-ускорителей, добавлена поддержка черезкадрового "антиалиасинга".
Написана реализация на API Glide, с динамическим освещением стен, близким к попиксельному, благодаря хитрому использованию технологии Fog Table. На картах, поддерживающих T-Buffer, доступны антиалисинг в пространстве и времени (действительно реалистичный, в отличие от размытий, обычно применяемых в играх) и эффект двоения в глазах.
Экранный снимок
При сотне подобных кадров в секунду за плавность можно не беспокоиться.
На снимке (но не на экране Voodoo, см. постфильтр) можно заметить дизеринг.
Текстура тестовая, для лучшего понимания, с фототекстурой выглядит посложнее.

Изучалась возможность применения технологии Accumulation Buffer в OpenGL на примере реализации рельефного текстурирования.

Тест реализации буфера накопления (с исходниками на VC++), 15.01.2006, Windows и OpenGL

Wall-Engine demo, 3dfx-версия (с исходниками на VC++), 7.08.2006, Windows с Glide 3
Wall-Engine demo, программный рендеринг (с исходниками на Pascal и ASM), 11.05.2005, MS-DOS

Ориентиры: Unreal, Venom, Doom 3.


Векторный движок

Движок с видом от первого лица, использующий графические операторы Quick Basic в экранном режиме 640x350x4bits с двойной буферизацией. Перемещения и повороты персонажа дискретные — по нажатию кнопки персонаж может сделать шаг или повернуть на 90 градусов. Объекты векторные, включая элементы оформления стен и дверей, рисуются операторами Basic.

Изначально разрабатывался Sugar’ом для игры-боевика Joseph Konan.
Шурик (так называли автора этого сайта, прежде всего сам Sugar) настойчиво присоединился к разработке в 96-м году с целью выпустить на нём игру «Найди Игоса», особенность которой — противодействие главного героя не людям, а лабиринту и роботам.

Были и другие попытки применить движок.
Шурик моделировал здание лицея, для перехода между этажами планировалось использовать лифты.
Экранный снимок
Добро пожаловать в 96-й год. Справа вблизи раздевалка, вдали виднеется дверь в кабинет информатики.

Ryasa, увлёкшийся написанием аналога PacMan, попробовал реализовать в 3D лабиринт с множеством вкусняшек, которые можно собирать. Работало, но не шустро — движок рисовал всё, что попадало в пирамиду обзора, включая то, что за стенами.
Экранный снимок
Фильма «Пиксели» тогда ещё не было.

Далее, Шурик перенёс движок на Visual Basic, где нет жёстких ограничений на количество используемых цветов и, вместо того, чтобы использовать медленный и неудобный оператор Paint, можно рисовать многоугольники сразу с заливкой, используя функцию GDI Polygon. Дискретность перемещений камеры осталась, но появилась возможность летать, а также переключать камеру на виды точно вниз и точно вверх. В связи с этим оформилась идея игры Air Fight, в которой можно летать на боевой машине по лабиринту и над ним, с возможностью записывать полёты. Предполагалось сделать режим игры по сети – дуэли таких машин.
Экранный снимок Экранный снимок
Декорации на стенах планировалось потом загружать из файлов в векторном формате WMF.

Sugar экспериментировал с доработкой движка: плавные перемещения и повороты камеры, динамическое освещение, векторное декорирование, оптимизация. Шурик сделал несколько другую вариацию: плавные перемещения и повороты камеры, возможность полёта.
Экранный снимок Экранный снимок

Прогулка с фонариком (с исходниками на Basic и намётками на Pascal), 11.04.1998, MS-DOS
Плавные полёты (с исходниками на Basic и VB), 30.03.1998 / 20.05.1999, MS-DOS / Windows 95+ (может понадобиться VB6 Runtime)
Технодемо Air Fight (с исходниками на VB), 21.10.1997, Windows 95+ (может понадобиться VB5 Runtime)
Технодемо Find Igos (с исходниками на Basic), 8.08.1997, MS-DOS

Из существующих на то время игр авторы ориентировались на Wolf 3D, Blake Stone, Doom II (про Ultima Underworld, игру с интересной историей и гениальным движком, мы почему-то тогда не знали). Все эти игры шли в разрешении 320x200, объекты при приближении разбивались на квадраты, так что у векторного движка, несмотря на простоту, была своеобразная фишка.



Defder, 2024