Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Автогонки на выживание (типа игры Megarace 2) (http://zx-pk.ru/showthread.php?t=17318)

Andrew771 16th November 2011 22:23

Автогонки на выживание (типа игры Megarace 2)
 
Quote:

Originally Posted by Andrew771 (Post 435338)
Сейчас вынашиваю планы (помимо уже озвученных) передрать на ZX игру Megarace II, одну из моих любимых на PC. Видимо, комбинированным методом - даль делать спрайтовую, как в ZXOOM, а вблизи или рейкастинг, или масштабирование спрайтов.

Quote:

Originally Posted by Destr (Post 435343)
Для гонок наверное нужно начинать с этого http://zxdn.narod.ru/coding/ig7gpr3d.txt

Quote:

Originally Posted by Destr (Post 435357)
В общих чертах я вполне себе представляю как это реализовать.
А так-же представляю какие при этом будут слёзы горькие и зубовный скрежет (быстро считать спекки не умеет, а значит придётся делать всякие финты ушами и т.п.)

Quote:

Originally Posted by Andrew771 (Post 435362)
Поэтому рулят либо спрайты, либо возможно закрашенные полигоны (шейдеры). В чанках я сомневаюсь.

---------- Post added at 22:08 ---------- Previous post was at 22:07 ----------

Цитата:
Сообщение от newart
Сообщение от Andrew771
В Megarace есть горки и впадины плюс ответвления трассы, т.е. не всё просто.
А кто сказал что они нужны? Посмотри на семейство игр mario-carts, горок там не припоминаю. Газонов часто тоже нет. А вот разветвления да, встречаются.
В Megarace горки важную роль играют, т.к. можно подкладывать мины и грязь, не видные издалека.

Подумал над этим несколько дней, склоняюсь к мысли, что выгоднее делать тоже на спрайтах, как в ZXOOM. Тогда будет также всё быстро выводиться, без математических расчетов. Для уменьшения дискретности сделать глубину просмотра уровней-спрайтов не меньше 12 (в ZXOOM сейчас 7). Зато в ширину достаточно 3 уровня - центр, слева и справа (в ZXOOM сейчас от 7 до 9). Т.е., количество выводящихся спрайтов в "Megarace ZX" примерно такое же будет.
В писишном Megarace трассы сделаны на технологии FMV, т.е. при прохождении показывается изначально отрендеренное видео трассы. Причем на каждом кадре только одно положение трассы, т.е. при управлении машиной сдвигается именно машина, а не изображение трассы.
У нас же, т.к. видео невозможно хранить и отображать, будут выводиться комбинации спрайтов в одном положении для каждого кадра. Кодируем каждый кадр трассы 6 байтами-сегментами - центр вблизи, центр вдали, лево вблизи, лево вдали, право вблизи, право вдали. Каждый байт-сегмент обозначает комбинацию спрайтов для 12 уровней.

А сегменты могут быть такие:
- прямо ровно
- прямо по горке вниз
- прямо по горке вверх
- поворот влево ровно
- поворот вправо ровно
- ответвление вправо
- ответвление влево.

Другие сегменты, например повороты по горке, можно не использовать. Из имеющихся сегментов можно уже построить разнообразные трассы.
Т.е. получится: 7 сегментов * 3 уровня в ширину * 12 уровней в длину = 252 значения для байта. Теоретически примерно столько же будет спрайтов.
От спрайтов нужно хранить только четвертушки, как и в ZXOOM, т.к. симметрия, а остальные 3/4 достраивать программно (движок уже есть). Т.е., то что является барьерами в ZXOOM, здесь будет бордюрами. А то что является высокими стенами, здесь будет тоннелями.
Если один кадр занимает 6 байт, то допустим выделим 6кб - 1000 кадров. С учетом разветвлений максимальная длина одного круга трассы будет 500 кадров. Если в секунду выводить 2-3 кадра, то по времени длина круга будет около 180 секунд или 3 минуты - нормально.

Пока такие мыслишки. Может, есть подводные камни. :)

Destr 16th November 2011 23:20

Даже для ZXOOM построение спрайтами показало что не нужно в экшене так делать. (для бродилок ещё туда сюда).
А гонки это вообще!
Предлагаю всё-таки попробовать подход как статье "Пол/трасса".
Т.е. трасса выводится как положено (только не чанками), а уже потом сверху можно и машинки пристегнуть.

---------- Post added at 21:20 ---------- Previous post was at 21:16 ----------

Этапы получаются такие:
1. Рисуем трассу (обычная монохромная картинка, только не 3 сегмента в высоту, а 4. получается 256х256 пикселей)
2. Программно поворачиваем её 8 раз на 45 градусов (вот и смена камеры при повороте)
Прим к п.2 - ясно что трасса будет укладыватся в окружность диаметром 256, лишние "углы" от квадрата - выкинуть (они сэкономят память, но это уже в конце).
3. Проецируем трассу с учётом горок (тут можно реализовать по-разному, пока что склоняюсь к мат. методу, т.е. не строить карту горок, а хранить инфу о возвышенностях в векторном виде)
4. Рисуем машинки, опрашиваем клавиши и делаем прочие мелочи.

Andrew771 16th November 2011 23:50

Quote:

Originally Posted by Destr (Post 435958)
Предлагаю всё-таки попробовать подход как статье "Пол/трасса".

А как тут делать барьеры и тоннели? Значит, нужно еще проецировать бока и крышу, а не только пол.
Еще не забудь про ответвления.

ALKO 17th November 2011 00:00

движок ZXOOM вполне сойдёт для гонок.
Нечто подобное есть в turbo esprit:
http://www.worldofspectrum.org/shows...urboEsprit.gif

Надеюсь эти гонки будут удачнее zxoom'a

jerri 17th November 2011 00:12

ALKO, Движок ZXoom совсем не подходит для гонок
я бы повнимательнее посмотрел на турбо есприт - там все гораздо интереснее

Rindex 17th November 2011 00:19

Quote:

Originally Posted by jerri (Post 435986)
я бы повнимательнее посмотрел на турбо есприт - там все гораздо интереснее

А скриншот у него откуда?

http://www.worldofspectrum.org/infos...cgi?id=0005461

Самые лучшие гонки, это без раздумий даже - http://www.worldofspectrum.org/infos...cgi?id=0000903

А самые быстрые, я названия забыл. :( Там можно было играть и вдвоём. Один в верхней части экрана играл, другой в нижней.

ALKO 17th November 2011 00:24

Quote:

Originally Posted by jerri (Post 435986)
там все гораздо интереснее

там всё гораздо ужасно в плане управления.
А эту игру я привёл как подобие zxoom, так как там тоже заранее прорисованы спрайты зданий в перспективе.

А то какие гонки лучше - это уже субъективное мнение.

Rindex 17th November 2011 00:28

Quote:

Originally Posted by ALKO (Post 435993)
А то какие гонки лучше - это уже субъективное мнение.

Ну, вы же хотите сделать лучше? Вот и отталкивайтесь от лучших. Или вообще лучше не браться за дело, раз знаешь, что выйдет хуже. Имхо.

Andrew771 17th November 2011 00:46

Quote:

Originally Posted by jerri (Post 435986)
Движок ZXoom совсем не подходит для гонок

По какой причине?
Дискретность уменьшаем увеличением количества уровней в глубину и утоньшением каждого уровня.
Скорость нормальная.

newart 17th November 2011 01:06

Quote:

Originally Posted by Andrew771 (Post 436001)
Скорость нормальная.

Сколько фреймов на отрисовку 1 кадра?


All times are GMT +4. The time now is 21:00.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.