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 градусный .

 

 


 


НОМЕ