Track Engine
Из цикла фантазий для
темы Тайловый движок (http://zx.pk.ru/showthread.php?t=3136)
ScreenShots - галерея скриншётов из различных игр .
Pyramids - несколько примеров исходных картинок используемых при создания дорог .
Данный эпос полностью переписан , и является плодом поверхностного ковыряния эмуляторов . Попытки отрыть в нете сабжеподобную информацию результата не дали . В лучшем случае это были полностью трёхмерные поделки с вялым закосом под классический сабж .
Ниже даются сведения о применении наверное единственно доступном редактором трасс под сабж из JAGUAR XJ220 для SEGA CD .
Входным материалом трассы служит перамидо подобное изображение дороги , на котором сразу же отображаются разделительные линии , бордюр , асфальт , трава/песок . При этом каждый элемент дороги (бордюр , разделительные полосы , асфальт , трава/песок) имеют свой код цвета (можно сказазать имеют свой собственный цвет).
Высота и ширина такой пирамиды в разных играх могут быть достаточно разнообразными . Самая "примитивная" пирамида обычно не шире рабочего экрана и высота не выше своей рабочей области . Самая "продвинутая" пирамида может быть значительно больше ширины и высоты экрана .
Пирамида из OUT RUN версии для SEGA M.D.
Еще несколько разновидностей пирамид и соответствующие им скриншёты из игр можно посмотреть тут - Pyramids .
При имитации поворотов применяется построчный параллакс скрол (строки в области дороги смещаются относительно друг друга) и в зависимости от уклона дороги либо дублируются либо пропускаются (((как именно это делается ещё не выяснял))). В простых играх где нет уклонов дороги строки не пропускаются (пирамида отображается как есть).
Вертикальные промежутки между разделительными полосами и раскраска бордюра а так же полосы на траве имитирующие перспективу , делаются путём внесения изменений в палитре цветов для каждой строки .
Сама трасса кодируется простыми значениями углов поворота и наклона , расстояние между углами фиксированное (возможно в некоторых играх и произвольное) . Например в JAGUAR XJ220 для SEGA CD в одном байте хранятся и угол поворота и наклона и ещё в трёх байтах хранятся коды объектов расположенных по краям трассы , а также мосты , туннели , растяжки . Такой четырёх байтный код действует на небольшой участок трассы (из которых складывается вся трасса). Далее идут следующие четыре байта и т.д. .Подробней ниже .
Пожалуй это всё что мне известно на данный момент о сабже . Хотелось бы ещё выяснить как конкретно делается плавный поворот дороги из простого значения угла . И особенно хотелось узнать как делается плавный уклон дороги из простого значения угла .
Теперь немного про то как можно воспользоваться редактором трасс из JAGUAR XJ220 для SEGA CD .
Мне известны всего два редактора и оба они из JAGUAR XJ220 одна версия для AMIGA , другая для SEGA CD . Разбираться с версией для AMIGA черт ногу сломит , а вот с версией для SEGA CD всё вполне ясно . Для дальнейших извращений понадобится эмулятор Kega Fusion v3.51 и всяческие версии биос от SEGA CD , ну и конечно сам исошник JAGUAR XJ220 (версия без аудио треков занимает меньше двух мегов). Только не спрашиваете где всё это брать .
Конечным результатом извращений будет фаил JAGUAR XJ220.brm в директории эмулятора (внем не будет ничего полезного пока не выйдете из эмулятора), это образ памяти для сейвов (создаваемый трек должен быть закольцован иначе редактор не захочет сохранять трек) .
В файле JAGUAR XJ220.brm по смещению 42h будет первый байт трассы (с углами поворота и наклона), следующие три байта это код всяких украшений трассы . По смещению 46h снова будут четыре байта следующего кусочка трассы . И так далее .
Младшая половинка первого байта (с углами поворота и наклона) отвечает за угол поворота :
08 - 0000 1000 - больше чем 09 (редактор показывает 85.76°) 09 - 0000 1001 - больше чем 0A (редактор показывает 0.28°) 0A - 0000 1010 - максимальный поворот влево -36.0° (в редакторе) 0B - 0000 1011 - поворот влево -30.0° 0C - 0000 1100 - поворот влево -22.5° 0D - 0000 1101 - поворот влево -18.0° 0E - 0000 1110 - поворот влево -11.25° 0F - 0000 1111 - минимальный поворот влево -5.62° ------------------------------------------------- 01 - 0000 0001 - минимальный поворот вправо 5.62° 02 - 0000 0010 - поворот вправо 11.25° 03 - 0000 0011 - поворот вправо 18.0° 04 - 0000 0100 - поворот вправо 22.5° 05 - 0000 0101 - поворот вправо 30.0° 06 - 0000 0110 - максимальный поворот вправо 36.0° (в редакторе) 07 - 0000 0111 - больше чем 06 (редактор показывает 26.3°) |
Старшая половинка первого байта (с углами поворота и наклона) отвечает за уклон дороги :
A0 - 1010 0000 - наклон -6 B0 - 1011 0000 - наклон -5 C0 - 1100 0000 - наклон -4 максимальный уклон вниз (в редакторе) D0 - 1101 0000 - наклон -3 E0 - 1110 0000 - наклон -2 F0 - 1111 0000 - наклон -1 ------------------------------------------------- 10 - 0001 0000 - наклон 1 20 - 0010 0000 - наклон 2 30 - 0011 0000 - наклон 3 40 - 0100 0000 - наклон 4 максимальный уклон вверх (в редакторе) 50 - 0101 0000 - наклон 5 60 - 0110 0000 - наклон 6 |
Второй байт (обычно совместно с третьим и четвёртым) используется для кодирования мостов , туннелей , растяжек и т.п. что обычно располагается с обоих сторон дороги или над дорогой . Третий байт используется для кодирования объектов расположенных с левой стороны дороги . Четвёртый байт используется для кодирования объектов расположенных с правой стороны дороги :
============================================ BRITAIN ============================================ UPPER EMPTY - 00 Пусто BRIDGE - 04 02 Мост (над дорогой) TUNEL - 05 03 Туннель BANNER - 00 0C 0C Рекламная растяжка над дорогой *BANNER - 00 00 0C Два столба от растяжки справа BRIDGE+PAINTER - 04 02 08 Мост + Маляр *BANNER - 01 00 00 Вода по краям дороги (дождь на трассе) =================== LEFT EMPTY - 00 Пусто CHEVRONS - 01 Указатели поворота TYRE WALL - 06 Стена из шин CROWDS - 0D Пиплы TALE TREES - 07 Высокие деревья WIDE TREES - 08 Широкие деревья TOWN 1 - 09 Домишки с тел будками и почтовыми ящиками TOWN 2 - 0A ... с мусорными ящиками и афт.остановками TOWN 3 - 0B ... с высокими домами LAMPS - 0E Фонарные столбы =================== RIGHT EMPTY - 00 Пусто CHEVRONS - 01 Указатели поворота TYRE WALL - 06 Стена из шин CROWDS - 0D Пиплы TALE TREES - 07 Высокие деревья ---WIDE TREES нету Широкие деревья TOWN 1 - 09 Домишки с тел будками и почтовыми ящиками TOWN 2 - 0A ... с киосками и афт.остановками TOWN 3 - 0B ... с высокими домами ----LAMPS нету Фонарные столбы FLAGS - 0E |
Как видно редактор использует далеко не все допустимые значения байтов , в принципе этого вполне достаточно чтоб избавиться от ручного труда .
Ещё у редактора есть странная особенность , углы поворотов несколько меньше чем должны быть . Создав серию 36 градусных поворотов суммой в 180 градусов , приходится дорисовывать ещё один 11 градусный .