地图是怎样生成的(一)——资源篇

文章内容与专栏封面无任何关系,选图原因仅为个人偏好。
Pixiv ID:79568845
本次专栏感谢 @宣友BOT 的大力协助。
文章发布时游戏版本 :1.0.0.341(443561)
前言
由于某些原因,自然灾害的2和3暂时先搁置一下,这里开一个新的系列。本系列主要讲解文明6地图生成规律。
本次专栏讲解的是资源在地图上的分布规律,初衷其实是研究文明6的奢侈分布,不过貌似也可以籍此搞清战略资源(尤指马)的分布。那,何乐而不为呢?神标常用结论将会用蓝色字体标注出,不想看详细公式的读者可以选择性阅读。

所有资源严格按下文的顺序生成。即:陆地奢侈→海洋奢侈→陆地战略→海洋战略→陆地加成→海洋加成。
一、陆地奢侈
分布规律
同一张地图上的每一片大陆上都有相等的奢侈品种类,这个数值在所有我们常见的地图中都是4。
同一种奢侈品无法同时生成在多个大陆上,但琥珀例外(将在海洋奢侈中讲解)。
生成顺序
先在第一块大陆上按次序生成4种奢侈,再在第二块大陆上按次序生成4种奢侈……
生成数量
每种奢侈品期望数量 = 本大陆的单元格数 × 19.33% × 资源值 ÷ 本大陆奢侈品种类
资源值:创建游戏时,高级设置中的“资源”选项可影响该值。标准(默认)为30%,稀少为27%,丰富为33%,随机则为26%~34%中的任一值(百分号前必须为整数)。下同。
也就是说,每种奢侈品的数量与所在大陆大小成正比。陆地奢侈品的总量约为地图陆地与湖泊格数总和×5.8%,这个值在标准盘古约为105,标准千湖约为224。
生成规律
在生成奢侈品资源前,为该大陆上所有满足该奢侈品地形/地貌条件且没有其它资源(见“生成顺序”条目。下同。)的地块(如果没有该种地块则不会选择该种奢侈资源)打分。在所有地块打分完毕后,将所有有效分数降序排序,取分数最高的数个地块,在其上生成对应的奢侈品资源。选取的个数为上一章节所计算的“每种奢侈品期望数量”。打分公式如下:
地块分数=133.33/(相邻的资源数+1)+rand(0,99)

如果该单元格相邻至少两个资源,且此时已经有地块获得了有效分数,则该地块的分数无效。
相邻的资源数:由于放置该资源前,地图上很可能存在已经生成过的其它资源,所以相邻单元格可能会存在其它资源。此公式会使靠近其它资源的地块分数降低。由于打分时本资源还未放置,所以同种资源间不会互相影响所在地块的分数。下同。
rand(m,n):m~n间的一个随机整数。下同。
如果有有效分数的地块数小于期望值,则全部拥有有效分数的地块都会生成该种奢侈品资源。
奢侈品资源会尽可能远离不同种类的奢侈品,这导致了奢侈品具有一定的群聚性——有特殊地形/地貌要求的奢侈尤为明显。
由于湖泊也算在一片大陆上,所以分配在湖里的琥珀也可能是属于该大陆的陆地奢侈。
二、海洋奢侈
分布规律
同一张地图海洋奢侈的种类由地图大小与地图种类决定,对应关系如下表。

千湖属于标准海洋资源的地图,盘古属于少量海洋资源的地图,也就是说标准盘古与千湖均只有2种海洋奢侈。
如果一个地图有偶数种海洋奢侈,则会有一半种类的奢侈只分布在北纬31.5°~南纬31.5°的区间,另一半只分布在这个区域以外。
如果一个地图有奇数种海洋奢侈,则会有一种海洋奢侈全纬度分布,剩余的同偶数分布法。
浮冰旁不会生成任何海洋奢侈。
生成顺序
先在高纬度地区依序生成数种海洋奢侈,再在低纬度地区依序生成数种海洋奢侈。
生成数量上限
每种奢侈品数量上限 = 不与浮冰相邻的海岸与湖泊单元格数之和 × 19.33% × 资源值 ÷ (2×低纬度地区奢侈种数)
生成规律
对于每个海岸或湖泊单元格,如果该格处于当前纬度地区,不相邻浮冰,且此时该种奢侈品数量未达到上限,便会为其打分。若分数高于85 + 5 ×每种奢侈品上限,就会在该格生成该种奢侈品。
地块分数=rand(0 , 300 + 15 × 每种奢侈品数量上限)/((相邻的资源数+1)*海洋资源密度)
海洋资源密度:由资源值决定。当资源值>30时为1.5,资源值<30时为4,资源值=30时为3。
由于海洋奢侈是每个单元格判定一次是否放置,而不是像陆地奢侈那样先打分后放置,所以海洋奢侈没有类似陆地奢侈的群聚性。
由于湖泊也会生成海洋奢侈,所以当琥珀被同时选为陆地奢侈和海洋奢侈时,其可能出现在数个大陆的湖泊中。
三、陆地战略
生成顺序
先在第一块大陆上按次序生成所有战略,再在第二块大陆上按次序生成所有战略……
优先生成可生成地块(该大陆所有满足该战略资源地形/地貌条件且没有其它资源的地块。下同。)少的战略资源。
生成数量
本大陆战略资源总数量 = 本大陆的单元格数 × 21.7% × 资源值
与奢侈品相同,每种战略资源的数量与所在大陆大小成正比。陆地战略资源的总量约为地图陆地与湖泊格数总和×6.5%,这个值在标准盘古约为117,标准千湖约为251。
本大陆某战略资源数量 = 本大陆战略资源总数量 × 该资源出现频率 ÷所有战略资源出现频率和

标准千湖的马的数量约为44,铁硝约为40;标准盘古则是20和18。
生成规律
与陆地奢侈相同,生成某种战略资源前,会为该大陆上所有该战略资源的可生成地块打分。在所有地块打分完毕后,将所有有效分数降序排序,取分数最高的数个地块,在其上生成对应的战略资源。选取的个数为上一章节所计算的“本大陆某战略资源数量”。打分公式如下:
地块分数=500/((相邻的资源数+1)*陆地战略资源密度)+rand(0,99)

陆地战略资源密度:由资源值决定。当资源值>30时为20,资源值<30时为10,资源值=30时为15。
如果该单元格相邻至少两个资源,且此时已经有地块获得了有效分数,则该地块的分数无效。
如果有有效分数的地块数小于期望值,则全部拥有有效分数的地块都会生成该种战略资源。
战略资源会尽可能远离奢侈品资源,在与一个奢侈品资源相邻的地块生成战略资源的概率是不与奢侈品资源相邻地块的53%。并且战略资源永远不会生成在同时相邻两个奢侈品资源的地块。
和奢侈品资源一样,战略资源也会有群聚效应,但相对于奢侈品的群聚效应显得微弱一些。
四、海洋战略
分布规律
对于不打MOD的玩家来说,海洋战略只有石油。
浮冰旁不会生成任何海洋战略。
生成顺序
先在高纬度地区依序生成数种海洋战略,再在低纬度地区依序生成数种海洋战略。
生成数量上限
每种战略数量上限 = 不与浮冰相邻的海岸与湖泊单元格数之和 × 21.7% × 资源值 ÷ (12×低纬度地区战略种数)
生成规律
对于每个海岸或湖泊单元格,如果该格处于当前纬度地区,不相邻浮冰,且此时该种战略资源数量未达到上限,便会为其打分。若分数高于85 + 5 ×每种战略上限,就会在该格生成该种战略资源。
地块分数=rand(0 , 300 + 15 × 每种战略数量上限)/((相邻的资源数+1)*海洋资源密度)
同海洋奢侈一样,海洋战略没有类似陆地奢侈的群聚性。
五、加成资源
分布规律
与奢侈和战略不同,加成资源并不按大陆分布。
生成顺序
优先生成可生成地块少的陆地加成资源。陆地加成资源生成完后,再优先生成可生成地块少的海洋加成资源。
生成数量
陆地加成资源总量 = 陆地加成资源的可生成地块 × 58.97% × 资源值
海洋加成资源总量 = 海洋加成资源的可生成地块 × 58.97% × 资源值 × 海洋加成
陆地加成资源的可生成地块:每一种陆地加成资源的可生成地块的并集。
海洋加成:在所有我们常见的地图,这个值为1.25。
海洋加成资源的可生成地块:每一种海洋加成资源的可生成地块的并集。
陆地加成资源的总量约为陆地加成资源的可生成地块×17.7%,这个值在标准盘古约为223,标准千湖约为380。
某加成资源数量 = 陆地/海洋加成资源总量 × 该资源出现频率 ÷所有加成资源出现频率和


在生成加成资源前,为所有满足该加成资源地形/地貌条件且没有其它资源的地块打分。在所有地块打分完毕后,将所有有效分数降序排序,取分数最高的数个地块,在其上生成对应的奢侈品资源。选取的个数为上一章节所计算的“某加成资源的数量”。打分公式如下:
地块分数=454.5/(相邻的资源数+1)+rand(0,99)

在所有种类的加成资源都生成完毕后,相邻两个或更多与自身相同加成资源的加成资源会被移除,所以加成资源不会像奢侈品资源那样过于密集。
加成资源很少与奢侈品资源或战略资源相邻,几乎不可能与两个奢侈品资源或战略资源相邻。换句话说,与奢侈品资源相邻的加成资源旁几乎不可能有战略资源。
同时相邻两个不同种类的加成资源的地块出现战略资源的概率很低。
加成资源倾向于生成在资源稀少的位置,所以大多数的鹿会生成在冻土,石头很少生成在丘陵上。
后记
资源生成篇算是讲完了,这次我试着把重点画了出来,并配了点图,不知道效果会如何。下一篇应该是地图生成的地貌篇,敬请期待。

Pixiv ID:79568845
壁纸+1,这个画风真的赞
关注可获得文明6更多更新消息与机制解读
如果你觉得本文是干货内容,烦请三连或者充电支持下,没硬币的点个赞也行啦~
我不咕咕咕啦,JOJO!