iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
Vibe Coding

從 Vibe Coding 到系統架構:Gemini x Claude Code 雙 AI 協同開發 Godot 2D Roguelike 卡牌遊戲實戰系列 第 24 篇

Day 24:【數據追查】削弱後勝率反而變高?原來高輸出也有代價

  • 分享至 

  • xImage
  •  

Day 23 的 A/B 對照表,最後留了一個還沒有解釋的數字:
加上消耗機制削弱《賣血狂暴》之後,勝率不是下降,而是從 81% 升到 85%。

輸出強度確實下降了,結束時攻擊力從 14.0 降到 10.4,下降約 26%。
但遊戲的勝率反而提高了。

這個結果和原本預期的方向不一致,所以我沒有直接把它當成模擬結果的一部分就結束,而是請 Claude Code 往回追查:為什麼這張卡被削弱之後,玩家反而比較容易贏?

最後查到的結果:這張卡確實很強,但玩家之所以輸,很多時候是因為在打倒魔王前,先把自己給「扣死了」。


一、預期表現不同的數字

Day 23 的 A/B 實驗只有一個主要變數:
《賣血狂暴》是否加入「消耗」機制。
原本這張卡打出後會進入棄牌堆,之後牌組重新洗牌,又有機會再次抽到。

加入消耗機制後,一場戰鬥只能使用一次。
因此,原本可以在一場戰鬥裡重複增加攻擊力的效果,被限制成只能發生一次。
從輸出數據來看,這個改動確實達到預期:

版本 結束時攻擊力
沒有消耗 14.0
加入消耗 10.4

攻擊力下降約 26%。
但另一個數字卻出現不同方向的變化:

版本 勝率
沒有消耗 81%
加入消耗 85%

原本預期削弱一張輸出卡之後,遊戲應該會比較難。
實際結果卻是勝率提高了 4 個百分點。

所以 Day 23 的實驗還不能停在「削弱有效」這個結論。
我需要知道,到底是哪一個因素讓勝率反而提高?


二、先追查結果,再決定要不要接受它

我先請 Claude Code 回頭檢查這 150 場模擬的打法。
這次模擬使用的是固定的「貪婪打法」:

抽到什麼就打什麼,能量夠就出牌。

這個規則套在一般攻擊牌上,通常不會產生額外問題。

例如:

  • 斬擊 → 造成傷害
  • 招架 → 增加護甲

但《賣血狂暴》的效果同時包含兩個部分:

失去 3 點生命,本場戰鬥永久 +3 攻擊力。

對貪婪打法來說,它很容易只看到「+3 攻擊力」這個結果。
但前面的「失去 3 點生命」也是這張牌真正的成本。
《賣血狂暴》就像免費的毒藥,看起來能加攻擊力就毫不猶豫一直喝,結果魔王還沒發力,自己已經殘血。

因此,我請 Claude Code 繼續檢查:這張牌在一場戰鬥裡到底會被使用幾次,以及這些自傷累積起來會造成什麼影響。


三、玩家有時候是先被自己的卡扣掉生命

沒有消耗機制時,《賣血狂暴》打完會進入棄牌堆,之後還可能再次被抽到。
在這套貪婪打法的模擬裡,一場戰鬥平均可能打出 2~3 次。
也就是說:

  • 使用 1 次:失去 3 點生命
  • 使用 2 次:失去 6 點生命
  • 使用 3 次:失去 9 點生命

玩家的生命上限是 30。
如果一場戰鬥連續使用兩、三次,光是這張卡本身就可能先扣掉 6~9 點生命。
這些傷害還沒有算進魔王的攻擊。

Day 21 的測試曾經出現過另一個對照:純防禦牌組可以撐到第 20 回合左右,而貪婪打法平均約 6 回合結束戰鬥。

因此,這套打法的問題不一定是魔王在短時間內造成了大量傷害。
有些死亡情境可能是:

  1. 玩家連續使用《賣血狂暴》
  2. 自己先失去 6~9 點生命
  3. 魔王再繼續造成正常傷害
  4. 最後玩家因此提早死亡

加入消耗機制後,《賣血狂暴》一場最多只能使用一次。
這讓一場戰鬥最多只會因為這張卡失去 3 點生命。
攻擊力成長雖然下降了,但玩家同時少付出了很多自傷成本。

這也就解釋了為什麼勝率會從 81% 提高到 85%。


四、這張卡的兩個問題

Day 23 找到的第一個問題,是《賣血狂暴》的強度來源。

它有兩個特性:

  1. 生命值最低可以被保護在 1 點,讓自傷成本可能逐漸接近零。
  2. 卡片可以回到牌組再次抽到,讓永久攻擊力可以持續累積。

所以它的攻擊力成長沒有明確上限。

但 Day 24 的模擬又看到另一個問題:

這張卡被重複使用時,自傷也會一起累積。

也就是說,同一個機制同時放大了兩件事情:

攻擊力增加得更多
生命值也消耗得更多

只看卡片描述:

失去 3 點生命,永久 +3 攻擊力

這看起來像是一筆固定的交換。
但放進完整戰鬥流程之後,它可能變成:

失去 3 → +3 攻擊
再失去 3 → 再 +3 攻擊
再失去 3 → 再 +3 攻擊

攻擊力持續增加,自傷也持續增加。

因此,《賣血狂暴》原本不只是「強度偏高」,它在特定打法下也可能成為一張會讓玩家自己承擔過高成本的牌。

這也是為什麼只看單張卡片的數值,很難直接看出問題。


五、A/B 實驗把這個差異放大出來

Day 23 的 A/B 實驗,原本是為了確認「消耗機制」能不能限制《賣血狂暴》的強度。
結果同一組實驗也把另一件事情測了出來。

版本 勝率 平均勝利回合 4 回合擊殺 結束時攻擊力
沒有消耗 81% 6.0 13% 14.0
加入消耗 85% 6.2 9% 10.4

加入消耗後:

  • 結束時攻擊力:14.0 → 10.4
  • 4 回合擊殺:13% → 9%
  • 平均勝利回合:6.0 → 6.2
  • 勝率:81% → 85%

前面三個數字大致符合「輸出被削弱」的方向。
但勝率提高了。

回頭看,原因就比較清楚:

這次改動雖然降低了攻擊力成長,同時也限制了《賣血狂暴》的自傷次數。

所以這張卡少帶來了一部分輸出,也少帶來了一部分生命成本。
在這套貪婪打法下,後者對勝率的影響可能更大。


六、用模擬找出問題

如果只看卡片數值:

-3 HP,+3 Attack

很容易先注意到「+3 攻擊力」是不是太強。
但真正放進戰鬥流程後,還有另一個問題:
這張卡一場到底會被打幾次?

如果只手動玩幾場,未必會特別注意到這件事。
有時候可能只抽到一次,有時候剛好沒有抽到,有時候又剛好連續抽到。
而模擬可以把同樣的規則大量執行,再把結果放在一起比較。

這次也是因為 Day 23 的 A/B 實驗出現了「攻擊力下降,但勝率提高」這個結果,我才回頭請 Claude Code 追查使用次數與自傷累積。

最後才看到:

《賣血狂暴》的問題不只有攻擊力成長太快,還包括它在重複使用時會一起放大自傷。

因此,加入消耗機制之後,雖然輸出降低,整體生存率反而改善。


七、從「這張卡太強」繼續往下追

Day 23 的問題是:

《賣血狂暴》是不是太強?

Day 24 往下追了一層:

它為什麼會讓整體勝率出現這種結果?

這兩個問題得到的答案不一樣。

前一個問題看到的是攻擊力成長。
後一個問題則把「自傷次數」也放進來。
所以這次最後修改的地方,也不是單純把:

+3 Attack

改成:

+2 Attack

而是限制這張卡在一場戰鬥中的使用次數。
這也是 Day 23 和 Day 24 連在一起之後,比較能看清楚的地方:

數值平衡不一定只是調整數字,有時候真正需要調整的是一個效果可以被觸發幾次。

Day 23 先用模擬確認「哪裡看起來不合理」,
Day 24 再把結果拆開,才找到另一個原本沒有直接注意到的成本。


Day 25 開始,系列進入第六部:上線之後才是真正的開始。


上一篇
Day 23:【數值平衡】先量化再動手:用模擬取代「我覺得這張卡有點強」
下一篇
Day 25:世界觀、變現、王國擴充:推翻AI 三個提案
系列文
從 Vibe Coding 到系統架構:Gemini x Claude Code 雙 AI 協同開發 Godot 2D Roguelike 卡牌遊戲實戰 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言