Процедурно генеровані 2D вигнуті дороги на карті


9

Я експериментував з алгоритмами, щоб автоматично генерувати дорожні карти для гри, над якою працюю.

Я використовую ігри " Kingdom Rush " як орієнтир, оскільки у них є чудові карти.

Приклади дорожніх карт із гри «Царство Рош»

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

Ось один приклад використання алгоритму Fruchterman-Reingold для планування дороги:

Згенерована PCG карта 1

Синій графік використовує деякі випадко-генеровані контрольні точки Безьє, щоб краї виглядали менш прямими.

Ось ще один приклад, створений за допомогою того ж алгоритму, але різних випадкових чисел:

Карта 2, створена PCG

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

Будь-яка порада оцінена.


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

Привіт! Дякуємо за відповідь. Під керованістю я маю на увазі, чи можна записати певні правила (наприклад, не розміщуйте перехрестя ближче певної відстані один від одного; не допускайте кутів різкіших за x градусів) і чи алгоритм генерації дотримується цих обмежень? Крім того, ці правила не повинні перешкоджати можливості алгоритму генерувати різноманітний спектр цікавих карт. Хоча ваше заохочення слухає. Мене почали засмучувати подробиці, як змусити це працювати!
SixTwoOne

Відповіді:


2

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

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

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


Я думаю, що пропозиція проміжних контрольних точок хороша! Алгоритм компонування графіків, який я використовую на даний момент, створює лише прямі лінії, але я міг би розмістити вузол "зігнутий вигин" десь між двома іншими вузлами і використовувати евристичний для розміщення контрольних точок поблизу, що зробило б це красивим. Мені, безумовно, потрібно розібратися в цьому більше, оскільки це також пов'язане із створенням кращих перехресть.
SixTwoOne
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.