也许我过于简单化了,但是为什么不考虑城市建在有利地形上的事实,或者出于任何原因而忽略任何规模的文明区域的事实呢?地形可能为军事设施提供了战术上的优势,或者也许是在一片大森林和一条河流的交汇处有伐木场,而这条河的下游有一个更大的村庄。即使“圣地”也基于地形,即使简单的事实是特定的土地在某个时候被认为是圣地,等等。无论后果如何,绝大多数文明的最后安息地都存在于由于非常基于地形的原因而形成的物理点。即使是在一个城市如雨后春笋般冒出来的情况下,仅仅是因为两个大城市之间发生了足够的贸易来保证有中间人,如果您愿意,根据阻力最小的路径选择城市位置。它将被放置在可以为当地粮食供应提供良好平坦土地的地方,以及能够很好地用于道路建设的土地。我确定您已经考虑过了...
因此,如果您要首先建造城市,那么,为什么不呢?为什么不建造城市,村庄,定居点之类的东西,以及由人工建造的,可支撑这种类型建筑的不错的周围地形呢?
以程序生物群落为例。它们通常应用于伪随机温度,湿度和高度图。如果您已经设计了城市(或伐木场等),那么您可能会对土地的需求有一个确定的概念,如果我没有误解,那正是您的观点。以Orthanc之类的奇幻建筑为例,该建筑充满了您忠实复制的平面图和周围地形。好吧,我们知道,根据时间表的不同,Orthanc周围是一片巨大的森林,里面布满了Ents(树生物)等。如果您要复制它,那么对我而言,应用随机地形是没有意义的。话虽如此,一旦您为塔楼本身和周围的森林创建了此设置,Orthanc和您下一个城市之间的关系是什么?
一种简单的方法可能是编写程序性地形生成,将设置放置在随机生成的地形系统内,然后将高度放到固定设置周围,然后中提琴就可以将Orthanc放置在许多不同的随机生成的世界中(应该是那样)。
但是我认为,最好结合设置,地形和已定义的生物群落,并确保Orthanc放置在以程序方式生成的大型森林生物群落中。根据您的编码方式,您可以为雕塑的每个预定义设置或建筑物或城市设置最小/最大生物群落,地形,湿度等。在成熟的逼真的3d世界中,这将是一个小任务吗?明显不是。
我认为,如果要尝试这样做,我将首先研究海岸线程序算法。采取的做法是,整个历史上几乎所有文明都遵循任何海岸线,无论是海洋,大海还是大湖。这是增长阻力最小的途径,因为那里可能有大量的捕鱼活动,附近有树木供木材使用,即使使用基本的船只(至少是单向),当然也可以更快地旅行。
我认为您将不得不完全落后。想一想,代表文明点的地图上的伪随机点可能是通过噪声算法在确定其他任何东西之前确定这些文明的种群的。好的,所以1000人的总积分为1分,另外2000000人(当然,这取决于您的世界总人口数)。为什么?为什么那里的人口那么多?一千人口可能是小的伐木场社区。如果您要创建3D球形世界,则可能是采矿社区,如果它位于地图的北侧。这里有点模糊,因为我不知道您是否在各个方向上都将无限前进,从而使NESW在确定生物群落时毫无意义,还是您想要一个非常真实的“地球”
但是,如果您基于伪随机噪声种群放下文明,我认为我们可以放心地假设一些规则(但可能不是绝对的),例如...文明越大,最有可能的是,手和地形来支撑他们。必须存在珍贵的矿物,木材等,否则必须有庞大的贸易体系来支持如此庞大的企业。在此基础上,您可以开始生成从一条城市到另一条城市的高速公路,以及到深部采矿作业等偏远居民点的道路。选择能够形成良好海岸线并将人口点完全掉落在地图上的文明点,以便您填满自己的土地海洋(或者您的世界中有亚特兰蒂斯号,或海上石油钻探)。
再次填充它们之间的地形完全取决于您的生物群落方法。如果您在各个方向上都拥有无限的空间,则将Orthanc放到适合种群的任何位置,将其压入森林生物群落并向外环绕,直到您到达算法执行相同程序生成的下一个预设目标的一半为止周围。当两个地形相遇时将它们混合在一起,是的,这显然是过于简单化了。
如果没有对您实际要机械完成的工作的实际了解,我只会抛出一些想法,甚至可能是不好的想法。我认为您的方法具有优点,即使在现实中完全是梦幻般的,因为您的目标始终是任何游戏中最重要的因素:玩家玩得开心吗?或者,我是在创建一个无聊的,有趣的随机世界吗?
还有什么会变得有趣,这在任何游戏中都可能是文明世代的一部分,无论是否首先是地形,如果您将两个相邻的大城市相邻放置,会发生什么?这是什么意思?他们在战争中吗?它们是两个繁荣国家之间的大规模贸易活动吗?什么样的敌人潜伏在那个伐木场的树林里?
我确实认为,如果您要尝试基于“城市”构建地形,那肯定是一件事情,那就是地形将直接受到所述城市人口的影响,无论是景观还是自然资源(甚至是美丽的景观)。
我不确定我是否真的回答了什么,或者这是否合适,但这是一个非常有趣的概念,我很想听听您的想法。