精華區beta Hearthstone 關於我們 聯絡資訊
source:https://playhearthstone.com/zh-tw/blog/22788308 有夠長XD 嗨!我是 Tian,《爐石戰記》團隊的資深數據科學家,今天我們要來談談用於平衡競技 場的數學。 無時無刻都有人在競技場中對戰,這些對戰會製造出龐大的數據,幫助我們確保競技場是 平衡的。數據量超級多。如果我得要在爆爆研究所上班的話,我大概會被派到數學科學部 門吧。 平衡的藝術 競技場的平衡工作分為兩個階段。在第一個階段,我們決定每張卡牌要進入哪個區間(一 個區間指的是強度相近的卡牌的子集)。一張卡牌通常會落入兩個區間中,並且我們把傳 說卡牌和非傳說卡牌分開至兩個不同的區間系統中。我們以遊戲內勝率與選牌率來決定每 張卡牌要落入哪個區間。這表示你在競技場所面臨的三選一卡牌每一張強度都相似。 接著,我們針對九個職業的勝率做平衡。勝率越接近 50% 越理想。我們藉由調整每張卡 牌的加權來達成這樣的平衡。加權是一個數字,用來決定一張卡牌出現在選牌過程中的機 率。一張卡牌的加權如果越高,那麼它出現在選牌過程中的機率也就越大。當一張卡牌的 加權改變時,也會影響該張卡牌所在之區間出現的機率。 要讓這樣的系統運作需要非常大量的數據,但多虧每天都有無數場競技場對戰,我們有充 分的數據可以使用。 運用這些數據來平衡遊戲需要三個步驟。 建立一個模型 解決受限最適化的問題 計算加權 完成上述步驟後,我們需要安排時程進行快速修正,以便在遊戲中加入這些改動。 建立一個模組 如果你是競技場常客,你可能熟悉勝率的計算。某幾張卡牌對勝率的影響顯著大於其他卡 牌。舉例來說,在遊戲中抽到巫妖王比抽到雪鰭企鵝對勝率的幫助來得大上許多。 我們假設你在遊戲中抽到巫妖王。你可能會開始想:「在抽到巫妖王之後我的勝率變得如 何呢?有 60% 嗎?還是 50%?我該如何用數字來衡量呢?」 我們再假設你在下一回合接 著抽到寒冰護體─現在你想重新評估你的勝率。 我們造了一個機器學習模型來為你對勝率的疑惑解答。我們提供給了電腦數以萬計的數據 ;藉著每場競技場對戰中的細節,電腦學會了如何以它所接收到的資訊預測出勝率。用比 較正式的術語來說,我們「培訓」我們所做出來的模型。因此,每當我們抽卡時,不論抽 了幾張,我們都可以得知勝率變化的情形。 解決受限最適化的問題 我們先換個情境,想像一個有很多可調整旋鈕的盒子。每個旋鈕即是一張卡牌。當你調整 一個旋鈕時,你實際上是在調整與卡牌相關的數字。 比方說,在你調整旋鈕之前,盒子告訴你目前的勝率是 40%。在你做了一個調整後,預期 勝率變成了 46%。這顯現出一個相當有趣的疑問:如果你同時調整多個旋鈕,你有辦法把 勝率變成你想要的數字嗎? 這樣的疑問使我們有了需要建構最適化問題的想法。以數學的話語來說,我們想要找出所 有解法中的最佳解。我們同時也想盡可能地達成「調整多個旋鈕」這樣的目標。以正式術 語來說,我們在高維向量中最小化部分目標函數。 在競技場的平衡工作中,我們希望每個職業的預估勝率都盡可能地接近 50%,我們藉由改 變每張卡牌的相關數字來達成這樣的目標。 然而,旋鈕也不是隨便我們調整的─存在著某些限制。下方是我們為「盒子」所設計的限 制一覽。 · 新數字的變動範圍應該在某個固定值的正負 30% 以內。過大的變動可能會傷害遊戲 體驗。 · 如果我們想要降低一個職業在競技場中的強度,這個職業最強的幾張卡牌出現的 機率必須低於該職業其他較弱卡牌。反之亦然。 · 為使最適化問題有效,存在有物理上的限制。比方說:出現機率的上升幅度與下降 幅度必須相等(以數學術語來說即是零和) 計算加權 運用競技場數據來平衡的最後一個步驟,是藉由前兩個步驟的結果來調整賦予給每張卡牌 的加權。大體來說,一個加權為 2.0 的卡牌出現的機率是加權 1.0 卡牌的兩倍。受限最 適化讓我們知道要「調整哪個旋鈕」以及要「調整多少」。接著,我們依照「旋鈕」來調 整每張卡牌出現在選牌過程中的機率。這樣子,我們知道在其他的卡牌變動機制(像是法 術、武器、來自哪個資料片等等)之外,該多大幅度地調整每張卡牌的加權。 使對戰環境趨於平衡 在平衡所需各階段工作皆完成之後,九個職業的總體勝率應該會非常接近 50%。然而,少 數時候還是會出現平衡後勝率仍然不理想的情況。如果在加權調整前某職業的勝率遠遠不 及 50%,這樣的情況就可能發生;我們在調整後也許達不到理想的數字,但比起調整前仍 然會有所改善。 多虧這個系統可以運用進階計算數學和機器學習來加以利用競技場數據,我們才能決定各 職業是否需要加強或改弱,進而為各職業的每張卡片選擇最適當的加權。 希望這次對於競技場微調系統的說明令你感興趣!我們想要知道你的想法,所以如果你有 任何疑問的話,請留言告訴我們 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.97.249 ※ 文章網址: https://www.ptt.cc/bbs/Hearthstone/M.1543526607.A.F85.html
aynmeow : 意思是垃圾職業牌比較容易選到巫邀王? 11/30 05:41
kenny830724 : 越多爛職業卡越能靠賽 11/30 05:58
WTFITSTHIS : 現在競技場最弱勢的是什麼職業? 11/30 05:59
RisingTackle: 照這個邏輯,強牌越多,都海底的話牌競爭力就越差 11/30 06:10
RisingTackle: 與其這樣不如就直接靠賽好了 11/30 06:12
RisingTackle: 競技場本來就是個雙方起點不一樣的比賽 11/30 06:13
lf41001 : 以前可以選8張火元素的競技場反而比較好玩 雖然不 11/30 06:53
lf41001 : 平衡但玩起來很爽 11/30 06:53
scarofwind : 科學(X) 更多RNG(O) 11/30 08:09
abc14455 : 有次選到五張火球術,12勝 11/30 09:27
SBIt : 那bz能透過調整牌庫順序讓大家勝率55開嗎? 11/30 09:49
Jotarun : 總結: 這是透過最佳化讓統計上各職業勝率能趨近50% 11/30 13:06
shigurew : 當兩邊的牌組一樣爛的時候,就很平衡,但是不好玩啊 11/30 13:38
shigurew : 。 11/30 13:38
iamnotfatest: 想問一下跟終瘟一起給人選的牌有那些== 11/30 18:31
Jotarun : 揮擊 原始飛龍 散播瘟疫 駭骨戰馬 鈷藍逆鱗龍人 11/30 19:10