2D платформерный процедурный генератор мира
В настоящее время я разрабатываю Java-платформер на основе 2D-плитки. Не зарабатывать деньги, просто для удовольствия. Недавно я нашел эту игру под названием Caveblazers. Это также 2D-платформер, и я думаю, что это также основано на плитке. Этот мир генерируется процедурно и выглядит каждый раз, когда вы играете в игру. Я пытался экспериментировать с перлин-шумом и симплекс-шумом, но это не сработало, как планировалось. Я даже не мог убедиться, что уровень возможен и нет никаких стен, препятствующих цели. Моя игра будет локальной игрой, также в пещерах. Поэтому мой вопрос заключается в том, как создать эти удивительно выглядящие пещеры и как найти места для размещения лесов и сундуков. Помощь будет очень признательна, и так как она должна быть доступна для игры до следующей недели, я бы хотела получить быстрый ответ!
1 ответ
Думайте о перлин-шуме как о более или менее скучной карте высот ландшафта.
Значения обычно находятся в диапазоне от 0 до 1 или от -1 до 1.
Сначала протестируйте свой код шума perlin в отдельном приложении / интерфейсе пользователя, только с цветами или 3 плитками, как только вы освоите это, попробуйте сопоставить с лучшими плитками.
https://www.redblobgames.com/maps/terrain-from-noise/
Отображение зависит от вас, но в целом то, что будет холмами на карте высот, - это стены в вашем 2d платформере, а более глубокие точки остаются пустыми / прозрачными или заполненными фоновыми плитками.
В дополнение к этому вы можете захотеть обеспечить проход, возможно, с помощью какого-то бота, который проверяет, что пещеры проходимы, бот может вырезать некоторые дополнительные сглаженные проходы, используя дополнительный код. Вы не можете достичь этого с помощью чистого перлин-шума, поэтому этот второй шаг - больше искусство, чем наука. В целом, код выделяет туннели в перлин-шум путем усреднения значений, чтобы избежать грубых краев.
Может быть использовать что-то вроде случайной прогулки + какое-то направление, см.: https://gist.github.com/jeffThompson/5608847