《爐石戰記》開發者訪談:競技場的平衡性

發佈日期

《爐石戰記》高階資料研究員Tian在最近的一次開發者訪談中聊到了競技模式平衡工作背後的數學原理,他表示,競技場的平衡是透過建立模型-限定條件下求最優解-計算權重的方法進行平衡,最終才能將改動上線。

競技模式的平衡工作有兩個階段。第一,確定每張卡牌要進入哪個(或哪幾個)牌池(牌池是強度相似的卡牌所組成的集合)。一張卡牌通常會進入兩個牌池,同時會將傳說和非傳說卡牌分入兩種不同的牌池系統。設計師會透過遊戲中卡牌的勝率和被選取的機率來決定哪張卡牌進入哪個牌池。這使得玩家在選牌環節中每次看到的三張卡牌都在相近的強度等級上。

第二,平衡九個職業的勝率。理想的狀況下,勝率應該儘量接近50%。設計師會透過調整相關的每張卡牌的權重來實現平衡。權重與卡牌出現在選牌介面中的機率有關。一張卡牌的權重越高,在選牌時看到它的機率就越大。如果卡牌的權重被調整,那麼它所在的牌池也會相應調整。

要讓這個系統運轉需要大量的資料,而由於每天都會進行海量的競技模式遊戲,所以就有大量的資料可供參考。

《爐石戰記》開發者訪談:競技場的平衡性

建立模型

對那些經常玩競技模式的玩家而言,該如何計算勝率是比較熟悉的。有些卡牌的勝率會明顯高於其他卡牌。例如,在遊戲中選到巫妖王之後的勝率肯定比選到雪鰭企鵝高得多。

《爐石戰記》開發者訪談:競技場的平衡性

那就假設玩家選到了巫妖王。那你可能會想:“我選到巫妖王之後的勝率有多少?60%?50%?我要怎麼去量化計算呢?”然後,再假設你下一輪選牌選到了寒冰護體,那現在你又該重新計算自己的勝率了。

設計師建立了一個機器學習模型來回答這些問題。他們將大量的資料輸入電腦,用所有競技模式中的對戰詳情來讓電腦不斷學習,根據所給的資訊來預測勝率。用正式的術語來說,就是“訓練”我們所建立的模型。因此,在玩家選擇了任意卡牌後,它都能給出相應的勝率。

限定條件下求最優解

現在後退一步,把上面的模型想象成是一個箱子,上面有許多可以調節的旋鈕。每一個旋鈕關聯一張具體的卡牌。當你調節一個旋鈕的時候,你就調整了這張卡牌的相關數值 。

比如在調節一個旋鈕之前,箱子告訴你目前的勝率是40%。在你調節之後,預測的勝率變為46%。這就引出一個非常有趣的問題:如果調整了多個旋鈕,那麼能夠將勝率調整到你想要的目標值嗎?

《爐石戰記》開發者訪談:競技場的平衡性

所以設計師需要構建一個最佳化問題。用數學術語來說就是要找到所有可行方案的最優解。他們想要透過同時“調整多個旋鈕”來儘量得到想要的勝率目標值。用術語來說就是,要用高維向量來求一些目標函式的最小值。

在競技模式平衡中,設計師想要所有職業的預測勝率儘量接近50%,並且會透過調整涉及到的每張卡牌的相關數值來實現這一目標。但是,不能隨意地調整這些旋鈕,它們是有限制的。以下是設計師在“箱子”中設定的一些限定條件:

  • 30%之內。重大的改動可能會破壞遊戲的體驗。

  • 如果設計師想要降低某個職業在競技場的強度,那麼他們高強度卡牌的出現機率就會比強度較低的卡牌低一些。如果想某個職業更強一些,那就把這個思路反過來。

  • 為了保證求解勝率問題的可行性,還會有一些實際資料上的限制。例如,所有卡牌出現機率的總增加量和總減少量應相等(即數學術語中的“零和”)。

計算權重

用資料來完成競技模式平衡的最後一步,就是根據在前兩步所得的資訊來調整相關卡牌的權重。總體上來說,一張權重為2.0的卡牌的出現頻率要比權重為1.0的卡牌高出一倍。

《爐石戰記》開發者訪談:競技場的平衡性

而限定條件下的最佳化結果會讓設計師知道要“調整哪些旋鈕”、“調整的力度為多少”。然後他們會將每個“旋鈕”連線到選牌過程中每一張卡牌的出現機率上。現在設計師知道應該如何調整每一張卡牌的權重了,並且還會根據每張卡牌的特性來進行其他的調整(例如該卡牌是法術還是武器,來自哪個擴充套件包等等)。

遊戲內平衡

《爐石戰記》開發者訪談:競技場的平衡性

在平衡工作完成之後,所有九個職業的總體勝率應該非常接近50%。但是在極少數情況下,設計師也會面臨平衡之後效果並不理想的狀況。

如果某個職業的勝率遠遠高於或低於50%,那就要做出權重調整;設計師的改動也許沒有達到理想值,但調整過後情況總會比以前好很多。而這個系統可以透過先進的計算機數學和機器學習來利用競技模式的資料,讓他們可以確定哪個職業需要被加強或者削弱,併為每個職業的每張卡牌選擇最最佳化的權重。

相關攻略文章

最新攻略