游戏之家 > 游戏库 > 文明5

《文明5》出生点由什么决定 地图生成规则研究

在文明5中玩家经常会发现自己所选的国家不管怎么重开游戏都无法在出现在特定的地形上,这其实是由游戏内部文明与地图的代码关联性所决定的,今天小编就给大家介绍一下这块内容,一起来学习一下吧。

地图关联性一览

英国沿海,

奥斯曼沿海,

西班牙沿海,

玻璃沿海,

丹麦沿海,

阿拉伯荒漠,

阿兹特克丛林,

印度草原,

易洛魁森林,

俄罗斯苔原,

蒙古平原(没错,是平原),

印加丘陵。

应该注意到:沿海之外的其他地貌关联且只关联唯一文明。

地图逆关联有:埃及无丛林和森林,暹罗无森林,桑海无苔原。可以注意到有逆关联的都没有地图关联。

地图生成规则

每种地图,都有自己的生成规则,生成规则中会有一个专属该地图的“默认”地貌倾向,比如沙尘暴的倾向就是沙漠,盘古地图应该是无类型,岛图是沿海。

然后,程序会把地图分割成很多区块,计算每个区块的地貌比例,然后根据规则归类为“草原类”“苔原类”“混杂类”等等(比如苔原+雪原占区块面积30%以上就定义为苔原区块)。

之后计算区块产出,并按照一定规则进行修正。比如荒漠地块粮食过少,而且地块内没有河流,那么就吧荒漠换成丛林,苔原地块粮食少就加鹿等等。从而保证每一个区块的产出都不会过少或者过多。

与文明的优先倾向对比。如果满足,就把相应文明放在那,然后计算下一个文明的位置。

其中,地图关联判定优先级为:沿海>沿河(目前无文明关联)>其他关联>逆关联>地图默认

如果没有区块满足地图关联,比如砍2爷遇到整块地图都没有“丛林区块”的情况,那么就把他放到有相应地貌的区块,也就是说放到有那么一两个丛林的区块中。

如果有相应地貌的地方无法设定初始位置,比如说离其他文明过近或者压根没有区块满足以上条件,或者文明本身就没有特定倾向,那么就把该文明强制归类为地图的“默认”类型进行分配。比如高海平面的岛图,全部都是小岛,不满足任何一种沿海之外的地貌标准(其他类型都要求陆地面积要达到一定数量),所以所有文明在高海平面的岛图中都是“沿海”属性。

如果默认类型都没地方放了,那么就在主大陆临近的海里,生成一个1格大小的草原地貌,把该文明放上去。

大致看过地图生成算法之后,大家可以猜测一下为什么沿海之外的每种地貌,只关联了一种文明。

总而言之,地图关联就xml里列的那么几个,不用猜测了。但是要说两点,一个是在个别地图上,地图关联常常不满足条件,因而失效。另外一个是由于地图生成算法问题,不同的地形关联几率是不同的,有的地貌容易出现,就容易关联,有的地貌不容易出现,无关联的情况就比较多。