《文明5》出生點由什麽決定 地圖生成規則研究
在文明5中玩家經常會發現自己所選的國家不管怎麽重開遊戲都無法在出現在特定的地形上,這其實是由遊戲內部文明與地圖的代碼關聯性所決定的,今天小編就給大家介紹一下這塊內容,一起來學習一下吧。
地圖關聯性一覽
英國沿海,
奧斯曼沿海,
西班牙沿海,
玻璃沿海,
丹麥沿海,
阿拉伯荒漠,
阿茲特克叢林,
印度草原,
易洛魁森林,
俄羅斯苔原,
蒙古平原(沒錯,是平原),
印加丘陵。
應該注意到:沿海之外的其他地貌關聯且隻關聯唯一文明。
地圖逆關聯有:埃及無叢林和森林,暹羅無森林,桑海無苔原。可以注意到有逆關聯的都沒有地圖關聯。
地圖生成規則
每種地圖,都有自己的生成規則,生成規則中會有一個專屬該地圖的“默認”地貌傾向,比如沙塵暴的傾向就是沙漠,盤古地圖應該是無類型,島圖是沿海。
然後,程式會把地圖分割成很多區塊,計算每個區塊的地貌比例,然後根據規則歸類為“草原類”“苔原類”“混雜類”等等(比如苔原+雪原佔區塊面積30%以上就定義為苔原區塊)。
之後計算區塊產出,並按照一定規則進行修正。比如荒漠地塊糧食過少,而且地塊內沒有河流,那麽就吧荒漠換成叢林,苔原地塊糧食少就加鹿等等。從而保證每一個區塊的產出都不會過少或者過多。
與文明的優先傾向對比。如果滿足,就把相應文明放在那,然後計算下一個文明的位置。
其中,地圖關聯判定優先級為:沿海>沿河(目前無文明關聯)>其他關聯>逆關聯>地圖默認
如果沒有區塊滿足地圖關聯,比如砍2爺遇到整塊地圖都沒有“叢林區塊”的情況,那麽就把他放到有相應地貌的區塊,也就是說放到有那麽一兩個叢林的區塊中。
如果有相應地貌的地方無法設定初始位置,比如說離其他文明過近或者壓根沒有區塊滿足以上條件,或者文明本身就沒有特定傾向,那麽就把該文明強製歸類為地圖的“默認”類型進行分配。比如高海平面的島圖,全部都是小島,不滿足任何一種沿海之外的地貌標準(其他類型都要求陸地面積要達到一定數量),所以所有文明在高海平面的島圖中都是“沿海”屬性。
如果默認類型都沒地方放了,那麽就在主大陸臨近的海裡,生成一個1格大小的草原地貌,把該文明放上去。
大致看過地圖生成算法之後,大家可以猜測一下為什麽沿海之外的每種地貌,隻關聯了一種文明。
總而言之,地圖關聯就xml裡列的那麽幾個,不用猜測了。但是要說兩點,一個是在個別地圖上,地圖關聯常常不滿足條件,因而失效。另外一個是由於地圖生成算法問題,不同的地形關聯幾率是不同的,有的地貌容易出現,就容易關聯,有的地貌不容易出現,無關聯的情況就比較多。