《動物森友會》花株生成機制與優化佈局研究
最近,研究了遊戲源碼,已經對遊戲內新花株的生成機制有了很深的認識,以下為生成機制的描述:
每天早上5:00,遊戲會以隨機順序訪問島上的每一朵花
如果花被澆水了,則這朵花的內部計數器 +1,並根據公式得到新花株的生成概率
投一個隨機數骰子,如果成功,則隨機從這朵花周圍8格找一個空格,否則跳過這朵花
如果這朵花周圍8格沒有相同品種的花,則自我複製(基因完全相同)
如果這朵花周圍8格存在相同品種的花,則從中隨機選取一株,雜交
這朵花(和與它雜交的花)的內部計數器清0 ,並將它們標記為「不可用」,它們不會被後續的花選中作為雜交對象
新花株的生成概率 = 基礎概率 + 獎勵概率
基礎概率由花的內部計數器,也就是被澆水的天數決定,當澆水天數小於3時,概率為5%,當澆水天數大於3天時,每多一天,概率增加5%。
獎勵概率是為了獎勵朋友幫你澆水,以下為獎勵概率的表格
比如,一朵花總共被澆水了5天,且這5天始終沒有產生新花株,在第5天有兩個朋友為這朵花澆水,則它在第6天它產生新花株的概率為15%+30% = 45%。根據上述機制,我編寫了一個模擬程式,用於估計不同佈局的性能:
新花株的每日產量
空間效率,空間效率 = 每日產量 / 佈局面積
花朵效率,花朵效率 = 每日產量 / 花的總數
空間效率與花朵效率為佈局在兩個維度的性能指標:當你手頭有很多花,但島上的空地不夠時,應當選擇空間效率高的佈局。如果你手頭花的數量較少,但空地很多時,使用花朵效率高的佈局可以產生更多的花株。
仿真設定:
每一個佈局的模擬天數為一萬天,每一天的仿真完成後,都會鏟走新花株使佈局恢復原狀,並統計數量
佈局外側使用圍欄擋住
兩種最簡單的情形
根據幫忙澆水的朋友人數不同(0~5人),平均產量會有變化:
單獨花株的平均產量為 0.147 ➡ 0.285 ➡ 0.373 ➡ 0.506 ➡ 0.652 ➡ 0.801
成對花株的平均產量為 0.196 ➡ 0.452 ➡ 0.587 ➡ 0.757 ➡ 0.873 ➡ 0.962
為什麼成對花株比單獨花株的平均產量高一點?這是因為兩朵花相當於投了兩次隨機數骰子,如果第一朵失敗了,第二朵還有成功的可能。
但是如果是想大量複製花朵,比如複製藍玫瑰,應該採取單獨花株的模式,因為這種模式的花朵效率更高,具有更高的產量。
空格較少的情形
這個佈局十分擁擠,只有中間一格是空地,即使沒有朋友來幫忙澆水,它的平均產量也為0.715,隨著澆水人數增加,平均產量接近1。
需要注意的一點是,這裡的產量是長期運行下的平均產量。為了達到平均產量,是需要幾天的持續澆水的。這是因為在最初的幾天裡,花的內部計數器還沒累加到一個較高的值。一般來說,一個佈局達到平均產量需要5天左右的時間來積聚能量。
下圖為此佈局前30天的平均產量曲線,比較明顯的是藍色曲線,它前5天的平均產量逐漸上升,然後在0.7附近徘徊。
複製田佈局設計
「複製田」就是要避免花的雜交,每一朵花周圍都沒有可以雜交的對象,只能觸發自我複製機制。
下面分析三種4×4大小的複製田佈局,其空間效率逐漸提升,但花朵效率逐漸下降。
注意,圖中紅色、綠色、藍色表示不同品種的花朵,他們之間不會雜交
為了方便分析,根據上述表格繪製了三種佈局的 「空間效率-花朵效率」 性能曲線。觀察這個曲線可以得到很多訊息:
每一個佈局的性能點都在穿過原點的一條射線上,隨著澆水人數的變多,其值向原點外擴散
如果佈局比較「稀疏」,性能點到原點的距離是固定比例的,比如佈局1和佈局2
如果佈局比較「擁擠」,它會逐漸收斂到「最大空間效率」處,比如佈局3,它只有1/4的空間為空地,所以它的空間效率收斂到25%。
根據這張性能圖,可以挑選出空間效率最高的佈局:
如果澆水的人數為0~2人:佈局3的空間效率最高; 佈局2的空間效率比佈局1高,且具有和佈局1相近的花朵效率。推薦使用佈局2或佈局3。
如果澆水人數為3人及以上:推薦使用佈局2。
另外,佈局2可以進一步優化,讓每一朵花附近的平均空格數更多,防止新花株產生後將空格完全堵住,浪費一部分花朵的產能。
下圖為佈局2與優化後的性能比較。
自交田佈局設計
自交這裡指的是顏色相同的同一品種的花進行雜交,我們最常用的佈局是棋盤格型佈局,3×3的棋盤格型佈局有兩種擺法,一種是x型,一種是菱形,它們之間有差異嗎?差異又有多大?
通過上述表格可以看到,雖然X型佈局的合計產量比菱形佈局高,但是我們的目標是「自交」,而不是「複製」,X型佈局會極大提高自我複製的概率,這是因為它的四個角上的花朵都隻與中間的花接觸,如果中間的花被使用過後,這四朵花將只會觸發自我複製!
總結,在使用棋盤格佈局做自交時,我們應該盡可能避免一朵花隻與另一朵花接觸的情況。
棋盤格型佈局的空隙很多,所以基本不會出現浪費花朵產能的情況,但空間效率不夠高,它的佈局密度只有50%,那麼是否存在其他的佈局,擁有更高的佈局密度和空間效率呢?
下面放出各種佈局的仿真結果:
對以上13種佈局繪製「空間效率-花朵效率」性能曲線,選擇盡可能靠右上角區域的佈局,就能挑選出空間效率與花朵效率之間較好權衡的佈局。
「紅圈」內的佈局是較好的佈局
總結,經過仔細觀察上圖,我從中挑選出了一些最合適的佈局,它們一般擁有更高的空間效率和與棋盤格型佈局相近的花朵效率:
當幫你澆水的人數為0人時:推薦使用佈局5,7,9,11,12
當幫你澆水的人數為1人時:推薦使用佈局5,7,9
當幫你澆水的人數為2人以上時:推薦使用佈局5,7
雜交田佈局設計
雜交這裡指的是相同品種的不同顏色花進行雜交,雜交的佈局可以設計的餘地比自交小很多,因為我們要防止相同顏色的花互相接觸,棋盤格型佈局是一種常用的雜交田佈局。
先給出最常見的3×3雜交田,不做過多解釋。
3×3 X型雜交田,當有一個朋友澆水時,第二天就會有80%概率出現雜交後代
3×3 菱形雜交田,不會出現自我複製的後代,具有非常高的花朵效率
是否存在比棋盤格型雜交田更好的佈局?答案是存在的,但是需要兩種不同品種的花,見佈局2。
8×8 棋盤格型雜交田,佈局1
使用兩種不同品種的花,佈局2
佈局2具有更高的空間效率和花朵效率。佈局2花朵效率高的原因是它可以避免自我複製,在多人澆水時,這種優勢越發明顯。
來源:bilibili
作者:NilhillQ