вторник, 8 марта 2016 г.

Генерация уровней

Идущий параллельно настоящей реальности джем Games Jam Kanobu вызвал странный зуд в необъяснимых частях тела и работа опять закипела. В качестве предмета духовного и не только развития выступила история про маленькую принцессу #TheStorytale
Прости, Космос. Ты вечен и я обязательно к тебе вернусь :)
Затяжные женско-мужские праздники также добавили немного буста. В итоге я прикрутил динамический генератор подземелий и добавил цвета. И добавил ещё кучу всяко-разных улучшений по мелочам. И даже решился назвать эту версию 0.2. Правда она пока в полуразобранном состоянии. Наметил себе дедлайн до конца марта. Надо собрать какую-то причесанную рабочую демку :) То есть чтобы по-прежнему была некая история от начала и до конца. Никаких полумер. Страшненькая, но обязательно законченная.



Кратко поясню про генератор..

Всего 16 типов модулей (зависит от выходов из модуля - сверху-снизу-слева-справа в разных комбинациях) - модули 20*8 клеточек

У каждого модуля есть неск.вариантов

Пример двух вариантов модуля А ("выход/проход" в нём - справа)


[ZONE_A_1] 

01 = 11111111111111111111 
02 = 1..2...............1 
03 = 1..................1 
04 = 1..................1 
05 = 1................... 
06 = 1................... 
07 = 1................... 
08 = 1................... 
09 = 1..................1 
10 = 1..................1 
11 = 1.8................1 
12 = 11111111111111111111 

[ZONE_A_2] 

01 = 11111111111111111111 
02 = 1....2.............. 
03 = 1................... 
04 = 1................... 
05 = 1................... 
06 = 1................... 
07 = 1................... 
08 = 1................... 
09 = 1................... 
10 = 1................... 
11 = 1.8................. 

12 = 11111111111111111111


Заранее сделаны шаблоны локации (WordLayout) из этих типов модулей (Zones)
Например, АС - это вариант 2*1 - из 2 модулей с переходом посередине.
Сейчас есть 57 локаций разных размеров от 1*2 до 7*3 модулей.
Таким образом при генерации подземелья
• определяется стиль (один из двух - коричневый или синий)
• выбирается случайно шаблон локации (WordLayout)
• по шаблону локации случайно выбираются модули (zones)
• в месте респаунов случайно генерируются мобы (сейчас - с вероятностью 0.5)
• дополнительно рандомно генерируются маленькие мобы-кроулеры по периметру
• рандомно еще дорабатывается отображение ландшафта
• определяется стартовый фонтан (сейчас- слева внизу) и убираются лишние выходы (остаётся самый дальний- справа вверху)
P.S. GMT недавно рассказал, что в Spelunky было сделано что-то похожее


Комментариев нет:

Отправить комментарий