воскресенье, 22 июля 2012 г.

Разработка рандомного генератора уровней для моей игрушки в самом разгаре:)

На данном этапе реализовано построение карты уровня, с последующей ее текстуризацией в ландшафт - летающие острова и наземные базы с пушками-турелями. Местоположение вражин реализовано, пока, еще "на коленке".

Если в кратце, то механизм случайной генерации карты уровня следующий:
1) По пустой карте уровня пускаем "червя" из конца уровня в начало (снизу на верх). Червяк движется рандомно по оси X, по оси Y - всегда вверх. Если червяк вылетает за границы по OX, то он появляется в произвольной точке своего пройденного маршрута и снова продолжает путь, пока не доберется до самого верха. Траектория передвижения червя можно наблюдать в видеоролике с на левой картинке с 6 по 13 секунды.

2) Произвольно на карту уровня раскидываем "центры роста" - те точки, вокруг которых, случайным образом, в разные стороны будет распространятся земля. Часть этих центров - должна попасть на "червячную" траекторию движения. Другая часть - может попасть куда угодно.

3) Из центров роста начинаю расти острова (правая картинка в видеоролике с 6 по 13 секунды). Для того, чтобы получить, именно, острова - "червячную дорожку" я, выкинул. Если ее оставить, то получается длинный, единый материк.

4) Далее, делую небольшую фильтрацию дырок и стыков между островами и произвожу тектурирование.