《爐石戰記》

開發者觀點:以科學的方法平衡競技場

開發者觀點:以科學的方法平衡競技場

嗨!我是 Tian,《爐石戰記》團隊的資深數據科學家,今天我們要來談談用於平衡競技場的數學。

無時無刻都有人在競技場中對戰,這些對戰會製造出龐大的數據,幫助我們確保競技場是平衡的。數據量超級多。如果我得要在爆爆研究所上班的話,我大概會被派到數學科學部門吧。

平衡的藝術

ABunchOfKnobs_option02.jpg競技場的平衡工作分為兩個階段。在第一個階段,我們決定每張卡牌要進入哪個區間(一個區間指的是強度相近的卡牌的子集)。一張卡牌通常會落入兩個區間中,並且我們把傳說卡牌和非傳說卡牌分開至兩個不同的區間系統中。我們以遊戲內勝率與選牌率來決定每張卡牌要落入哪個區間。這表示你在競技場所面臨的三選一卡牌每一張強度都相似。

接著,我們針對九個職業的勝率做平衡。勝率越接近 50% 越理想。我們藉由調整每張卡牌的加權來達成這樣的平衡。加權是一個數字,用來決定一張卡牌出現在選牌過程中的機率。一張卡牌的加權如果越高,那麼它出現在選牌過程中的機率也就越大。當一張卡牌的加權改變時,也會影響該張卡牌所在之區間出現的機率。

要讓這樣的系統運作需要非常大量的數據,但多虧每天都有無數場競技場對戰,我們有充分的數據可以使用。

ThreeSteps_EK_600x260.png

運用這些數據來平衡遊戲需要三個步驟。

  1. 建立一個模型
  2. 解決受限最適化的問題
  3. 計算加權

完成上述步驟後,我們需要安排時程進行快速修正,以便在遊戲中加入這些改動。

建立一個模組

如果你是競技場常客,你可能熟悉勝率的計算。某幾張卡牌對勝率的影響顯著大於其他卡牌。舉例來說,在遊戲中抽到巫妖王比抽到雪鰭企鵝對勝率的幫助來得大上許多。

EN_SnowFlippaLichKing.png

我們假設你在遊戲中抽到巫妖王。你可能會開始想:「在抽到巫妖王之後我的勝率變得如何呢?有 60% 嗎?還是 50%?我該如何用數字來衡量呢?」 我們再假設你在下一回合接著抽到寒冰護體─現在你想重新評估你的勝率。

我們造了一個機器學習模型來為你對勝率的疑惑解答。我們提供給了電腦數以萬計的數據;藉著每場競技場對戰中的細節,電腦學會了如何以它所接收到的資訊預測出勝率。用比較正式的術語來說,我們「培訓」我們所做出來的模型。因此,每當我們抽卡時,不論抽了幾張,我們都可以得知勝率變化的情形。

解決受限最適化的問題

ABunchOfKnobs_option03.jpg我們先換個情境,想像一個有很多可調整旋鈕的盒子。每個旋鈕即是一張卡牌。當你調整一個旋鈕時,你實際上是在調整與卡牌相關的數字。

比方說,在你調整旋鈕之前,盒子告訴你目前的勝率是 40%。在你做了一個調整後,預期勝率變成了 46%。這顯現出一個相當有趣的疑問:如果你同時調整多個旋鈕,你有辦法把勝率變成你想要的數字嗎?

這樣的疑問使我們有了需要建構最適化問題的想法。以數學的話語來說,我們想要找出所有解法中的最佳解。我們同時也想盡可能地達成「調整多個旋鈕」這樣的目標。以正式術語來說,我們在高維向量中最小化部分目標函數。

在競技場的平衡工作中,我們希望每個職業的預估勝率都盡可能地接近 50%,我們藉由改變每張卡牌的相關數字來達成這樣的目標。

然而,旋鈕也不是隨便我們調整的─存在著某些限制。下方是我們為「盒子」所設計的限制一覽。

  • 新數字的變動範圍應該在某個固定值的正負 30% 以內。過大的變動可能會傷害遊戲體驗。
  • 如果我們想要降低一個職業在競技場中的強度,這個職業最強的幾張卡牌出現的機率必須低於該職業其他較弱卡牌。反之亦然。
  • 為使最適化問題有效,存在有物理上的限制。比方說:出現機率的上升幅度與下降幅度必須相等(以數學術語來說即是零和)

計算加權

HeavyLooking.png運用競技場數據來平衡的最後一個步驟,是藉由前兩個步驟的結果來調整賦予給每張卡牌的加權。大體來說,一個加權為 2.0 的卡牌出現的機率是加權 1.0 卡牌的兩倍。受限最適化讓我們知道要「調整哪個旋鈕」以及要「調整多少」。接著,我們依照「旋鈕」來調整每張卡牌出現在選牌過程中的機率。這樣子,我們知道在其他的卡牌變動機制(像是法術、武器、來自哪個資料片等等)之外,該多大幅度地調整每張卡牌的加權。

使對戰環境趨於平衡

在平衡所需各階段工作皆完成之後,九個職業的總體勝率應該會非常接近 50%。然而,少數時候還是會出現平衡後勝率仍然不理想的情況。如果在加權調整前某職業的勝率遠遠不及 50%,這樣的情況就可能發生;我們在調整後也許達不到理想的數字,但比起調整前仍然會有所改善。

多虧這個系統可以運用進階計算數學和機器學習來加以利用競技場數據,我們才能決定各職業是否需要加強或改弱,進而為各職業的每張卡片選擇最適當的加權。

ABunchOfKnobs_option05.jpg

希望這次對於競技場微調系統的說明令你感興趣!我們想要知道你的想法,所以如果你有任何疑問的話,請留言告訴我們

下一篇文章
《魔獸世界》
10小時前

Hotfixes 修正項目 - 3 月 15 日

你可在此了解即時修正項目