Имеюющиеся проблемы
- Астрал скучен. Не, ну серьезно, 10 +/- 2 острова в сезоне и 4-5 из старых сезонов?
- Астрал - типа изменичивая субстанция и т.п., но с завидной регулярностью создает нам идентичные до песчинки острова.
- Аргументы вроде:
имеют вес при овер100 островах, т.е. примерно 1 остров 4 раза в год!!!!!Сообщение от Velranni
Пути решения
Применить, столь любимый разработчиками, рандом в этом аспекте игры. Т.е. создать случайную генерацию островов.
Как реализовать
!!!ВНИМАНИЕ!!! Ниже написанное является мнением автора, может быть вполне дилетантской писаниной и должно быть подвергнуто КОНСТРУКТИВНОЙ критике. А так же может не учитывать какие-то детали.
0. Расстановка босов и паков
Конечно, многие могут подумать "куда ставить мобов, если нет еще карты", но тут скорее мобы определяют рельеы, а не наоборот. Это чтобы избежать:
0.1. Итак, первый запуск генератора случайных чисел.Сообщение от Velranni
Скажем так, у расстановки боссов есть определенные шаблоны, которые можно выразить графами или подобными схемами:
[IMG]//i66.fastpic.ru/big/2014/0911/d9/d982071cc0399d64db5477ee426495d9.png[/IMG] [IMG]//i66.fastpic.ru/big/2014/0911/46/a7500b05f2e10cf5e9cb3045a6054946.png[/IMG]
[IMG]//i66.fastpic.ru/big/2014/0911/86/9638d627c561414de140611d0897f286.png[/IMG] [IMG]//i66.fastpic.ru/big/2014/0911/17/e5e2a11ec45b1fadead41f04e4b31f17.png[/IMG]
[IMG]//i66.fastpic.ru/big/2014/0911/07/24403893d1807829279f0105b3f39a07.png[/IMG] [IMG]//i66.fastpic.ru/big/2014/0911/01/4de43552ae7dbaab860d2757ba987001.png[/IMG]
[IMG]//i66.fastpic.ru/big/2014/0911/45/dacdbd765b797dde5108b6968ddccd45.png[/IMG]
Синий кружок - вход, прыжковый механизм.Зеленый - босс.
Вариаций много(здесь не все). Например, шестая схема имеет варианты не 2-2, а 1-3 или 3-1. В общем много их, даже при условии, что боссов всего 4 на острове.
После того как выбрали основную схему расстановки, приступаем к расчету положения Боссов и промежуточных паков.
0.2 Мой вариант расстановки(первое что в голову пришло)
Положим точку входа в центр окружности. И возьмем сектор <180 градусов для островов, где начало-начал находится с краю, или возьмем всю окружность для островов а-ля "Прибежище еретиков"(или оно "пристанище"?).
Далее проведем саму окружность, или несколько, в зависимости от максимальной удаленности босса от входа(в числе стрелочек на схеме расстановки).
Внутри каждой имеющейся "большой" окружности, делаем еще несколько(по числу желаемых паков) с тем же центром и произвозьным приращением радиуса(но можно и с равным).
Далее выделяем в первой "большой" окружности(секторе) сектора. Величина их должна быть не больше (360(угол сектора) / число боссов в 1 прееходе) и они не должны накладываться друг на друга.
После выделения секторов выставляем на "большой" окружности точку с боссом, лежащую в выделенном под нее секторе. Все это, естественно, при помощи любимого нами рандома.
Похожие операци делаем с "малыми" окружностями и расставляем внутри секторов точки для паков.
Повторить для 2-4 "большой" окружности, с небольшими изменениями(надеюсь на примере будет понятно):
[IMG]//i63.fastpic.ru/big/2014/0911/31/040a1564a52df75d02ed98eaebb7c131.png[/IMG]
Это примерная реализация для 4 схемы из п.0.1.
0.3 Дополним получившийся набор точек рандомной кучей дополнительных точек, нужных для генерации диаграммы Вороного
1. Генерация рельефа
Тут я конечно в виду нубасности не буду реально генерировать диаграмму Вороного, возьму ее "аналог" генерируемый графическим редактором. Да и алгоритм Diamond-square algorithm тоже заменю приблизительным "аналогом" оттуда же. Но суть покажу.
1.1 Диаграмма Вороного
Ее можно сгенерировать используя точки из пункта 0.3 или же сгенерировать на основе произвольного набора(пропустив п.0.3), и наложить точки из п.0.2 для определения расстановки боссов.
Дальше не стоит забыть про такую умную штуку, как триангуляция Делоне, которая сбалансирует диаграмму Вороного(это чтобы цитату из п.0 избежать тоже).А вообще разрабы умные, они движки пишут, про такие штуки наверняка знают лучше моих познаний из Википедии.
1.2 Диаграмма Вороного - раскрашка.
Используя логику температурных карт рельефа надо раскрасить ячейки диаграммы в соответсвии с задаными нами точками и отрезками их соединяющими. Допустим у нас будут торпы между "холмами", тогда тропинки красим черным. А ячейки рядом светлее. И так чем дальше, тем светлее.
[IMG]//i66.fastpic.ru/thumb/2014/0911/2b/5dc08ea0fff1dc060d966f23fb3dc42b.jpeg[/IMG]
1.3 Diamond-square algorithm.
Определив основную направленноть рельефа при помощи раскрашенной диаграмы Вороного, нам надо сделать более плавную и естественную температурную карту рельефа. Для этого мы создаем произвольную температурную карту рельефа на основе Diamond-square algorithm, но с малым изменениями высот.
1.4 "Мыльцо" и наложение.
Размываем диаграмму Вороного и накладываем на нее микрорельеф полученный при помощи Diamond-square algorithm.
[IMG]//i66.fastpic.ru/thumb/2014/0911/2b/f178d6f665161e03397feeb2db93c52b.jpeg[/IMG]
1.5 Генерируем модельку острова на основе получившейся температурной карты.
2. Боссы и паки.
2.1 Умения боссов.
Босс явление замысловатое и умеющее всякие гадости. Чтобы эти гадости не складывались в непреодалимые наборы, надо создать наборы умений, которые нельзя использовать одновременно.
Далее имея скажем 5 наборов, можно брать в зависимости от сложность слоя 2-4(+1 для ласта) наборов, выбирая случайным образом одно умение из набора.
[IMG]//i64.fastpic.ru/thumb/2014/0911/a8/8d62764b03795164255c8e97aa07dca8.jpeg[/IMG]
2.2 Паки
Схема та же, только надо еще определять численность. И умение у пака должно быть одно. Для "пака" из одного моба, как правило прикручивается толстость и антикотроль. Ну и чем больше пак, тем меньше толстости и воли у его наполнения.
3. Няшность
3.1 Климат и растительность.
Дизайнов "климата" много в игре. Выбираем рандомно и накладываем на модельку. Текстурки почвы зависят во многом от налона рельефа(ну не руками же их рисуют на таких здоровых локах). Деревья и прочую растительность(камни, энергокубы, тотемы и прочие руины) садить на ровных площадках, но не на тропинках. Для мелкой растительности можно воспользоваться Diamond-square algorithm, используя плотность "засева" травой равную температуре на температурной карте.
3.2 Внешний вид мобов.
"Тыщи их". А если серьезно, то задавать видно мобов можно опираясь на выбор климата. Ну и подкручивать размер в зависимости от "толстоты". Так же можно подготовить наборы дополнительных текстур, для старых моделей. Именование мобов сложная тема, но думаю схема аналогичная умнеям этих мобов подойдет, только не брать не наборы умений, а словари.
Как-то так
Истинностью в последней инстанции выше написанное не обладает. Не хватает деталей, НО это конкретика. А не "сделайте хорошо".