文明帝國 5 美麗新世界 地圖生成關聯指南

22 8 月

廣告

作者:石鬼面

來源:文明5吧

 

  看了一下代碼,關於地圖關聯,大致是這樣的:

  首先

  xml中設定了部分文明的地圖關聯,在地圖生成時,會優先滿足該文明的地圖傾向。

地圖關聯有這些:

  英國沿海,

  奧斯曼沿海,

  西班牙沿海,

  玻璃沿海,

  丹麥沿海,

  阿拉伯荒漠,

  阿茲特克叢林,

  印度草原,

  易洛魁森林,

  俄羅斯苔原,

  蒙古平原(沒錯,是平原),

  印加丘陵。

  應該注意到:沿海之外的其他地貌關聯且只關聯唯一文明。

地圖逆關聯有:

  埃及無叢林和森林,暹羅無森林,桑海無苔原。可以注意到有逆關聯的都沒有地圖關聯。

  其次

  每種地圖,都有自己的生成規則,生成規則中會有一個專屬該地圖的“默認”地貌傾向,比如沙塵暴的傾向就是沙漠,盤古地圖應該是無類型,島圖是沿海。

  然後,程式會把地圖分割成很多區塊,計算每個區塊的地貌比例,然後根據規則歸類為“草原類”“苔原類”“混雜類”等等(比如苔原+雪原占區塊面積30%以上就定義為苔原區塊)。

  之後計算區塊產出,並按照一定規則進行修正。比如荒漠地塊糧食過少,而且地塊內沒有河流,那麼就吧荒漠換成叢林,苔原地塊糧食少就加鹿等等。從而保證每一個區塊的產出都不會過少或者過多。

  與文明的優先傾向對比。如果滿足,就把相應文明放在那,然後計算下一個文明的位置。

  其中,地圖關聯判定優先順序為:沿海>沿河(目前無文明關聯)>其他關聯>逆關聯>地圖默認

  如果沒有區塊滿足地圖關聯,比如砍2爺遇到整塊地圖都沒有“叢林區塊”的情況,那麼就把他放到有相應地貌的區塊,也就是說放到有那麼一兩個叢林的區塊中。

  如果有相應地貌的地方無法設定初始位置,比如說離其他文明過近或者壓根沒有區塊滿足以上條件,或者文明本身就沒有特定傾向,那麼就把該文明強制歸類為地圖的“默認”類型進行分配。比如高海平面的島圖,全部都是小島,不滿足任何一種沿海之外的地貌標準(其他類型都要求陸地面積要達到一定數量),所以所有文明在高海平面的島圖中都是“沿海”屬性。

  如果默認類型都沒地方放了,那麼就在主大陸臨近的海裡,生成一個1格大小的草原地貌,把該文明放上去。(前陣子那個I大打的孤島衰圖估計就這麼形成的。。。)

  大致看過地圖生成演算法之後,大家可以猜測一下為什麼沿海之外的每種地貌,只關聯了一種文明。

  總而言之,地圖關聯就xml裡列的那麼幾個,不用猜測了。但是要說兩點,一個是在個別地圖上,地圖關聯常常不滿足條件,因而失效。另外一個是由於地圖生成演算法問題,不同的地形關聯幾率是不同的,有的地貌容易出現,就容易關聯,有的地貌不容易出現,無關聯的情況就比較多。

 


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。