Я разрабатываю игру, которая работает на классическом движке плиток, но мир которого генерируется случайным образом. Существуют ли игры или алгоритмы, которые делают это? Алгоритмы процедурной генерации, которые я обнаружил, никогда не используют систему листов ... Каков был бы лучший способ создать целый "мир", используя систему листов? Я говорю не о лабиринтах блоков, а об общей «карте мира», спасибо
22
Ответы:
Ваш вопрос ведет вас в область генерации процедурного контента.
Плитное мировое поколение, полученное из непрерывных / аналоговых методов
Под непрерывным я подразумеваю что-то, что не является плитками, что-то, что является аналогом, например, векторизованная карта. Вы можете использовать любую непрерывную технику для генерации, а затем количественно ее оценить. Например, создайте изображение шума Перлина с высоким разрешением, затем уменьшите его разрешение, чтобы оно соответствовало размеру вашего мозаичного изображения, и сэмплируйте пиксели, чтобы получить карту высот. (Карты высот могут быть отличной отправной точкой для вашего мира.) Это потому, что вы упомянули источники, которые не показали вам, что делать в отношении того, как применять его к плиткам.
Плитное мировое поколение, использующее «тупой» подход к резьбе
С подходом на основе ячеек (ячеек) вы можете сделать своего рода слепое поколение, когда вы генерируете мир постепенно, не глядя дальше, чем, например. непосредственно соседние плитки, но это имеет тенденцию быть похожим на работу насекомого. Это типичные CA (клеточные автоматы), и они показывают немного больший интеллект.
Поколение мира на основе плитки, используя более широкий взгляд на мир, сверху вниз
Это требует более разумного подхода к построению тайла мира по тайлам, поскольку сначала он будет строиться по регионам. Таким образом, вы получаете контроль над, например. различные биомы, политические регионы и т. д., как это сделал Тарн Адамс в Крепости Гномов. Конечно, это требует от вас немного подумать о том, как бы вы хотели разделить свой мир. Есть много способов, вам придется провести собственное исследование.
Процедурная генерация контента - это довольно широкая тема, поэтому вам нужно хорошо почитать, прежде чем получить четкое представление о том, что вы на самом деле хотите и как это сделать - дьявол всегда в деталях . По этой причине некоторыми хорошими источниками для этого являются список рассылки rec.games.roguelike.development (тонна информации о процедурных мирах на основе тайлов), страницы программирования игр AmitP (см. «Другие темы») и, наконец, что не менее важно , Процедурный Content Generation Wiki .
источник
Процедурное поколение - огромная тема. Как глубоко вы готовы пойти?
Ответы Ника Виггилла превосходны. Я бы добавил к этому, предложив вам взглянуть на некоторые математические методы создания когерентной случайной местности.
Шум Перлина предлагает отличный способ создать сглаженную случайность и отлично подходит для всех видов местности. Имитация эрозии может дать реалистичное представление о высоте (хотя вам это может и не понадобиться, поскольку вы играете на плитке)
Многие методы, обсуждаемые в статьях, подобных этой, созданной Oddlabs , создателем Tribal Trouble, хорошо работают в 2D и при низких разрешениях. Если вам больше нравится такой подход, изучение этих методов может стоить вашего времени.
источник
Процессуальное пространство Спелунки - отличное введение в генерацию процедурного контента Дариус Каземи
Spelunky - это 2D-игра Дерека Ю, в которой есть несколько замечательных процедурных уровней.
Есть также процедурный контент вики http://pcg.wikidot.com/
источник