做卡牌遊戲AI模擬器時,最容易先做的事就是大量跑對局。100局變1,000局,1,000局變10,000局,CSV一大,整件事突然很像研究。
但最大的陷阱是:如果策略本身錯了,大量模擬只是在更精確地統計錯誤策略。
案例中,固定規則引擎跑完12,480局,規則稽核也良好,卻得到皇家約79.8%、巫師約25.6%的極端結果。這不是說真實環境的皇家有八成勝率,而是在提醒我們:出牌策略可能有偏差。
第一原則因此很簡單:增加對局數之前,先確認CPU真的會玩這款遊戲。
1. 模擬器不是一個AI:把規則、決策、評分拆開
至少要分成三層。
- 規則引擎:判斷動作是否合法,處理傷害、目標、進化與效果。
- 出牌策略:從合法動作中選擇行動。
- 評估器:判斷牌組或策略到底好不好。
混在一起之後,一旦結果奇怪,就很難知道是卡牌效果有bug、AI太菜、先後手偏差,還是評分函數有問題。
所以要分別測試合法性、決策品質、評估品質。
2. 先做規則引擎:先建立世界的物理法則
聰明AI之前,先要有穩定一致的遊戲世界。
牌組合法性、同名卡上限、職業限制、PP、抽牌、換牌、場面上限、攻擊、守護、疾馳/突進、進化/超進化、目標、衍生卡、Token、特殊機制、勝負條件都要正確處理。
每張卡與機制標示:
- Full
- Partial
- Unsupported
- Runtime gap
碰到未支援卡時,寧可停止並說「還不能評估」,也不要硬印出一個57.3%的假勝率。
3. 出牌AI不能只看「現在最強的一步」
卡牌遊戲的答案常常在未來。
AI應該考慮場面價值、手牌價值、未來1~3回合、斬殺機率、關鍵組件保留價值、進化資源、對手下回合的反擊、爆手風險、場面空間,以及替代勝利路線。
「能出就出、出最大的、能打臉就打臉」在簡單節奏牌組裡可能看起來還行,但遇到組合技、控制與資源管理牌組就會崩。
4. 人類攻略知識應該當提示,而不是牢籠
把攻略文章全部寫成if條件,只會做出僵硬的攻略書機器人。
更好的方法是把知識轉成加分、扣分、優先級。
例如提高AOE在快攻對局的價值、懲罰過早花掉組件、獎勵保留進化資源、在對手爆發回合前減少過度鋪場、在2~3回合後有斬殺時提高未來價值。
再給知識加上卡包、模式、職業、原型、對局、先後手、階段、來源日期、信賴度。意見衝突時保留多個策略分支。
5. 公平A/B測試就是給兩個AI同一張考卷
舊AI卡手、新AI天胡,根本不能比較。
使用相同random seed重現隨機條件,再交換先後手。
seed 001:舊AI先手 / 新AI後手
seed 001:新AI先手 / 舊AI後手
...
同時記錄漏斬殺、燒牌、場面塞滿、進化資源浪費、組件早用、換牌錯誤、忽視對手強勢回合。
這樣才能抓到「贏了,但AI還是很蠢」的情況。
6. 為什麼是2,016局?不是玄學,只是乘法
2,016本身沒有神秘力量。
56個對局測試單元
× 18個seed
× 2次先後手反轉配對
= 2,016局
重點不是數字,而是先決定要覆蓋多少條件。
- quick:幾十~幾百局,檢查是否壞掉
- standard:約2,000局,做策略A/B與主要對局
- full:10,000局以上,做環境級評估
一開始就跑full,最後才發現AI很蠢,只是在製造高精度垃圾。
7. 最強牌組搜尋不是暴力枚舉所有40張組合
組合空間太大。先從真實比賽或公開牌表開始,再產生附近候選。
可以嘗試1~3張替換、投入數調整、同角色卡替換、針對特定對局的tech卡、整個套件替換。
評估不能只看平均勝率,也要看下行風險、先後手穩定性、壞對局的底線。
所以應該說:「在這個卡池快照、AI策略、環境權重與候選集合中,評估最好的牌組。」
8. 診斷功能比一個裸勝率更有價值
輸入40張與對手職業/原型後,可以回傳:預估勝率與不確定性、先後手差、換牌、前中後期目標、主要勝法、應保留的卡、解場優先級、進化資源時機、對手下回合的強勢回應、2~3回合斬殺路線、常見錯誤、替代路線、換卡候選。
這時模擬器才真正變成教練。
9. 皇家79.8%事件:也許「下怪打臉」對AI太友善
最有趣的失敗就是職業差距異常大。
一個合理假設是:簡單、主動的牌組更容易被不成熟AI操作。
皇家可能只需要:
下從者!
搶場面!
臉開了!
打臉!
贏了!
而差勁的巫師AI可能是:
組合組件?現在能用!用了!
進化資源?現在變強!用了!
手牌上限?不知道!
三回合後?未來的我處理!
這不是現實環境的證明,而是不同牌組對AI思考能力要求不同的證據。
10. 環境改變後也能立刻重跑:最終產品是研究室
把現在的輪替環境保存成版本快照。
Environment 8
- card snapshot
- legal card pool
- engine version
- policy version
- meta decks
- human knowledge
- simulation results
新卡包到來時建立下一個環境,只比較新卡、輪替退出、平衡改動、禁限、新原型、引擎支援與環境權重。
只改權重就重新加權;新卡進入牌組就重跑受影響部分;新機制未支援就先擋住正式升級。
真正重要的是可追溯性:這個數字到底由哪套規則、哪個AI策略、哪版卡牌DB、哪些seed、哪個環境產生?
皇家如果又接近80%,先別急著戴王冠。
先問:這個機器人是不是以為整款遊戲只有「下怪,然後打臉」?
