Может быть, я упрощаю, но зачем игнорировать тот факт, что города построены на выгодной местности, или, если на то пошло, любого размера цивилизованного района по любой причине? Возможно местность предлагает тактическое преимущество для военного взноса или возможно есть лесопильный завод на пересечении большого леса и реки, у которой есть более крупная деревня ниже по течению. Даже «святые» места основаны на местности, даже если по той простой причине, что этот конкретный участок земли в какой-то момент считался святым и т. Д. Независимо от того, каковы последствия, окончательное место отдыха подавляющего большинства цивилизации существует в физическое место по очень наземным причинам. Даже в случае роста города просто потому, что между двумя более крупными городами происходит достаточно торговли, чтобы гарантировать посреднику, если хотите, расположение этого города будет выбрано на основе пути наименьшего сопротивления. Он был бы размещен где-нибудь, чтобы предлагать хорошие плоские сельхозугодья для местного снабжения продовольствием в сочетании с землей, которая хорошо подходит для строительства дорог. Я уверен, что вы думали об этом ...
Итак, если вы собираетесь строить города в первую очередь, конечно, почему бы и нет? Почему бы не построить город, деревню, поселок или что-то еще, вместе с приличным участком окружающей местности, построенным вручную, который поддерживает такое учреждение?
Возьмите процедурные биомы в качестве примера. Они обычно применяются к псевдослучайным картам температуры, влажности и высоты. Если вы уже спроектировали город (или лесопильный завод и т. Д.), То, скорее всего, у вас есть четкое представление о том, как должна выглядеть земля, что, если я не ошибаюсь, именно ваша точка зрения. Возьмите фантастическое здание, такое как Orthanc, изобилующее планами этажей и окружающей местностью, которые вы покорно воспроизвели. Ну, мы знаем, что в зависимости от временной шкалы Ортханк был окружен огромным лесом, заполненным энтами (древовидными существами) и т. Д. Если вы пытаетесь повторить это, то применение случайной местности не имеет смысла для меня. Тем не менее, как только вы создали эту обстановку для самой башни и окружающего леса, что находится между Ортханком и каким бы ни был ваш следующий город?
Простым подходом может быть написание процедурной генерации рельефа, размещение настроек внутри случайно сгенерированной системы рельефа и перетаскивание своих высот вокруг ваших фиксированных настроек и альта, в которых вы можете разместить Ортханка во многих различных случайно сгенерированных мирах (если это то, что вам нужно).
Тем не менее, я думаю, что вам лучше всего использовать комбинацию обстановки, рельефа и определенного биома, а также убедиться, что Ортханк будет помещен в процедурно генерируемый большой лесной биом. В зависимости от того, как вы его кодируете, вы можете установить минимальный / максимальный биом, местность, влажность и т. Д. Для каждой предварительно определенной настройки, здания или города, которые вы создали. Будет ли это небольшая задача в полноценном фотореалистичном трехмерном мире? Очевидно нет.
Я думаю, что если бы я попытался это сделать, я бы сначала исследовал процедурные алгоритмы береговой линии. Принимая подход, что почти все цивилизации на протяжении всей истории следовали любой береговой линии, будь то океан, море или большое озеро. Это путь наименьшего сопротивления для роста, так как там, вероятно, много рыбалки, поблизости деревья для дров, и, конечно, более быстрое путешествие даже при зачаточном плавании (по крайней мере, в одну сторону).
Я думаю, что вам придется строить полностью задом наперед. Подумайте, псевдослучайные точки на карте, представляющие точки цивилизации, возможно, с помощью алгоритма шума, определяющего популяции этих цивилизаций, прежде чем что-либо еще будет определено. Итак, 1 балл присуждается населению 1000, еще 2 000 000 (или любому другому соотношению, в зависимости от вашего населения мира, конечно). Зачем? Почему эти числа населения там? Население в 1000 человек может быть небольшим сообществом лесозаготовительных предприятий. Возможно, это сообщество майнинга, если оно находится на северной стороне карты, если вы создаете сферический трехмерный мир. Здесь становится немного нечетко, потому что я не знаю, движетесь ли вы бесконечно во всех направлениях, делая NESW бессмысленным в определении биомов, или если вы хотите очень настоящую «Землю»
Однако, если вы столкнетесь со своими цивилизациями, основываясь на псевдослучайных популяциях шума, я думаю, что мы можем смело предположить несколько правил (но, возможно, не абсолютных), таких как ... Чем больше цивилизация, тем больше вероятность того, что большее количество полезных ресурсов на рука и местность, чтобы поддержать их. Должны присутствовать драгоценные минералы, лес и т. Д. До тошноты, или должна существовать огромная торговая система для поддержки такого огромного предприятия. Исходя из этого, вы можете начать создавать автомагистрали из города в город и дороги в отдаленные населенные пункты, такие как глубокая добыча полезных ископаемых и т. Д. Выберите точки цивилизации, которые бы сформировали хорошие береговые линии и полностью отбросили точки населения с карты, где вам нужно заполнить океаны (или, может быть, у вас есть Атлантида в вашем мире, или морские нефтяные учения).
Заполнение промежуточной местности снова полностью зависит от вашего подхода к биому. Если у вас есть бесконечное в каждом направлении мире, тогда положите Orthanc вниз, где бы он ни подходил для населения, выньте его в лесной биом и строите вокруг него наружу, пока вы не доберетесь до половины до вашего следующего заданного пункта назначения, который ваш алгоритм выполняет ту же процедурную генерацию около. Lerp / Смешайте две местности вместе, когда они встречаются, и да, это очевидное упрощение.
Без реального рабочего знания того, что вы на самом деле пытаетесь выполнить механически, я могу выбросить только идеи и, возможно, плохие. Я думаю, что у вашего подхода есть свои достоинства, даже если он действительно фантастический в реальности, потому что вы нацелены на то, что всегда является самым важным фактором в любой игре: развлекается ли игрок? Или я создаю случайный мир, который не скучен и, следовательно, не весел?
Что также может стать интересным, и это может быть частью поколения цивилизаций в любой игре, в первую очередь на местности или нет, что произойдет, если вы сбросите 2 больших города рядом друг с другом? Что это означает? Они на войне? Являются ли они массовыми торговыми операциями между двумя процветающими странами? Какие враги прячутся в лесах этой лесопилки?
Я думаю, что одно можно сказать наверняка, если вы пытаетесь построить ландшафт на основе «городов», и это то, что население этого города будет напрямую зависеть от ландшафта и природных ресурсов (и, возможно, даже от красоты).
Я не уверен, действительно ли я ответил на что-либо или это было уместно, но это очень интересная концепция, и я хотел бы услышать, куда вы направляетесь.