Як я можу створити випадковий «світ» у плитковику?


22

Я розробляю гру, яка працює на класичному двигуні плитки, але світ якого генерується випадковим чином. Чи існують ігри чи алгоритми, які роблять це? Я знайшов алгоритми процедурного генерації ніколи не використовують систему плиток ... Який був би найкращий спосіб генерувати цілий "світ" за допомогою системи плитки? Я кажу не про лабіринти блоків, а про загальну "карту світу" завдяки


5
Про це вже багато разів задавали питання, спробуйте шукати тут: випадкове покоління світу Редагувати: Ось для двигуна плитки.
Річард Марскелл - Дракір

2
-1: Це питання не відповідає на сьогоднішній день. Це занадто розпливчасто, лише зазначаючи, що це "карта світу" з плиток. Добре, що вид плитки? Що роблять ці плитки в плані гри? Це може бути все, від Final Fantasy до Civilization, і "найкращий спосіб" генерувати місцевості для цих двох ігор абсолютно інший . Немає способу надати відповідь, яка забезпечить хороший геймплей, не знаючи нічого про те, як ви плануєте його використовувати. Перш ніж ви зможете поговорити про процедурну генерацію будь-чого, ви повинні мати можливість вручну зробити гарну версію самостійно.
Нікол Болас

Відповіді:


34

Ваше запитання веде вас до сфери формування процедурного контенту.

Світове покоління на основі плитки, отримане за допомогою безперервних / аналогових методів

Під безперервним, я маю на увазі щось, що не є плиткою, щось аналогове, приклад - векторизована карта. Ви можете використовувати будь-яку безперервну техніку для покоління, а потім її кількісно оцінити. Наприклад, генеруйте зображення шуму Perlin з високою роздільною здатністю, а потім зменшіть його роздільну здатність, щоб відповідати розміру карти плитки, і відібрайте пікселі, щоб забезпечити собі мапу висоти. (Карти висоти можуть бути чудовою відправною точкою для вашого світу.) Це тому, що ви згадали, що бачили джерела, які не показували вам, що робити, як їх застосувати до плитки.

Світове покоління, що базується на плитці, використовує різьблення під мигкою

За допомогою підходу, заснованого на плитці (клітинці), ви можете зробити своєрідне сліпе покоління, де ви генеруєте світ поступово, не дивлячись далі, ніж наприклад. безпосередньо сусідні плитки, але це, як правило, схоже на роботу комахи. Це типовий матеріал для CA (стільникових автоматів) і демонструє трохи більші масштаби інтелекту.

Світове покоління, засноване на плитці, використовує ширший світогляд, зверху вниз

Це вимагає більш розумного підходу до побудови світової плитки за плиткою, оскільки спочатку вона буде будувати її по регіонах. Таким чином ви отримуєте контроль над напр. різні біоми, політичні регіони тощо, як це робив Тарн Адамс у карликовій фортеці. Звичайно, це вимагає від вас трохи подумати про те, як би ви хотіли розділити свій світ. Існує багато способів, вам доведеться зробити власне дослідження.


Процедурне генерування контенту - досить широка тема, тому вам доведеться добре прочитати, перш ніж отримати чітке уявлення про те, чого ви насправді хочете і як це зробити, - чорт завжди в деталях . З цієї причини корисними джерелами для цього є список розсилки rec.games.roguelike.development (тонна інформації про процедурні світи, засновані на плитках), ігрові сторінки програмування AmitP (дивіться у розділі "Інші теми") і останнє, але не менш важливе значення, процедурний Content Generation Wiki .


Жоден із цих методів не враховує цілі гри на карті. Будь-який із цих методів може створити страшні карти гри. Звичайно, в ОП не сказали, як виглядатиме гарна карта, тому ...
Нікол Болас

6
@NicolBolas Рівно. ОП потрібно щось продовжувати. Мені не потрібно писати повного реферату на кожну відповідь (хоча дані свідчать про те, що я роблю це досить часто).
Інженер

Погоджено, що "грати" - це евристика, найкраща для OP. "Відтворюється" - це один шар над фактичним поколінням "випадкового світу", і не вимагається початковим запитанням.
Патрік Х'юз

6

Процедурне покоління - величезна тема. Наскільки глибоко ти готовий пройти?

Відповіді Ніка Віггілла - чудові. Я додам до цього, запропонувавши переглянути деякі математичні методи створення узгодженої випадкової місцевості.

Шум Перліна - це чудовий спосіб створити згладжені випадковість і чудово підходить для різних видів місцевості. Симуляція ерозії може створити реалістичне враження висоти (хоча це вам може і не знадобиться, оскільки ви робите гру на основі плитки)

Дуже багато методик, обговорених у таких роботах від Oddlabs , які створюють племінну проблему , добре працюють і в 2D, і при низькій роздільній здатності. Якщо вам більше подобається такий підхід, вивчення цих методів може бути вартим вашого часу.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.