Я начинаю разбираться в генерации случайного мира, у меня есть идея о том, как работает генерация случайных чисел (на самом деле псевдослучайные числа), но у меня нет хорошей идеи, как заставить мир выглядеть " nice ", другими словами, не просто размещать блоки на основе случайного x, y, который он мне дает, а сделать его гладким.Случайное мировое поколение
Это будет 1 поколение за мир. Итак, все создается в начале.
Я думал об алгоритме несколько мгновений назад, но проблема в том, что он просто использовал бы бесконечное количество вложенных циклов, которые, вероятно, занимали бы более чем необходимое время. Я подумал о следующем:
- Выберите случайное местоположение на карте и поместите точку появления в этом месте.
- Начните строить улицу, основываясь на месте появления, например, если место появления некрополя составляет 16 Пространства возле краю мира строят дом, иначе начните строить улицу.
- Основано на ранее созданных структурах улиц вокруг.
- Место разное.
Концептуальный алгоритм - это не проблема, с чем я с трудом сталкивается, начиная с действительного кода с шага 2 и ниже. Основываясь на вышеупомянутом алгоритме или алгоритме, о котором вы думаете, как бы вы начали код? Я не прошу, чтобы действительно был создан код, просто идея о том, как он будет выглядеть.
Я знаю, что этот вопрос не является точным и может иметь несколько ответов, но я видел много вопросов, похожих на этот, имеющих странный подход.
Внедрение решения, которое является достаточно эффективным является реальной проблемой здесь –
Вашу конкретная реализация может не подходить для этого, но когда вы говорите гладкий шум, который заставляет меня думать о Перлином шуме (или технически фрактальный шум из несколько октав шума перлина); выглядит как естественный ландшафт, но может использоваться и для других вещей.Процессно созданные миры (из minecraft ilk) очень сильно влияют на шум perlin (или симплекс-шум) –
Ознакомьтесь с L-Systems для создания уличных рисунков, вы можете получить интересные (интересные) результаты – VoronoiPotato