2D платформерный процедурный генератор мира - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я разрабатываю Java-платформер на основе 2D-плиток. Не зарабатывать деньги, просто для удовольствия. Недавно я нашел эту игру под названием Caveblazers. Это также 2D-платформер, и я думаю, что это также основано на плитке. Этот мир генерируется процедурно и выглядит каждый раз, когда вы играете в игру. Я пытался экспериментировать с перлин-шумом и симплекс-шумом, но это не сработало, как планировалось. Я даже не мог убедиться, что уровень возможен и нет никаких стен, препятствующих цели. Моя игра будет локальной игрой, также в пещерах. Поэтому мой вопрос заключается в том, как создать эти удивительно выглядящие пещеры и как найти места для размещения лесов и сундуков. Помощь была бы очень признательна, и, так как она должна быть доступна до следующей недели, я бы хотела получить быстрый ответ!

Вот как бы я хотел, чтобы это было:

1 Ответ

0 голосов
/ 23 января 2019

Думайте о перлин-шуме как о более или менее скучной карте высот ландшафта.

Значения обычно находятся в диапазоне от 0 до 1 или от -1 до 1.

Сначала проверьте свой код шума perlin в отдельном приложении / интерфейсе пользователя, только с цветами или 3 плитками, как только вы освоите это, попробуйте сопоставить с лучшими плитками.

https://www.redblobgames.com/maps/terrain-from-noise/

Отображение зависит от вас, но в целом то, что будет холмами на карте высот, - это стены в вашем 2d платформере, а более глубокие точки остаются пустыми / прозрачными или заполненными фоновыми плитками.

В дополнение к этому вы можете захотеть обеспечить проход, возможно, используя какого-то бота, который проверяет, что пещеры проходимы , бот может вырезать некоторые дополнительные сглаженные проходы, используя дополнительный код. Вы не можете достичь этого с помощью чистого перлин-шума, поэтому этот второй шаг - больше искусство, чем наука. В целом, код выделяет туннели в перлин-шум путем усреднения значений, чтобы избежать грубых краев.

Может быть, использовать что-то вроде случайного блуждания + направление, см .: https://gist.github.com/jeffThompson/5608847

...