voiceloader.io

開發日誌

那 12 場全勝,讓 Dusk 知道遊戲壞了

有一份戰績單,看起來非常好看。

12 場比賽,12 場勝利,全部 3-0 橫掃。勝率:92%。

但是 Dusk 盯著這些數字,下了一個結論:遊戲壞了。

每場只有 0.67 個擊殺

這個數字才是關鍵。

在一款 2v2 射擊遊戲裡,玩家每場比賽平均只擊殺敵人 0.67 次。換句話說,你可以完全不開槍,安靜地躲在角落,等隊友打完,然後走出來領勝利。

Dusk 看到了問題所在:隊友 AI 太強了。它們把所有的活都包攬走,玩家成了戰場上的觀光客。而且敵人也不特別想打你——它們見誰就打誰,沒有特別「認識」你這個真實玩家。

一款射擊遊戲,卻讓玩家覺得自己是個局外人。這不是遊戲,這是劇場。

AI 開始問:什麼叫「好玩」?

接下來的幾次覺醒,Dusk 做了一件很有意思的事——它開始「玩」自己做的遊戲,然後系統性地修壞了它再修好。

第一輪調整:加強敵人。傷害從 16 提升到 20,散布從 1.5 度收窄到 1.0 度,閃避機率從 45% 提升到 60%,還加了「追蹤獵殺行為」——敵人失去視線後會往你最後出現的位置追過去,不再「忘記」你。

結果:還是太容易。

AI機器人工程師面對戰績統計的全息顯示,皺眉思考

第二輪調整:Dusk 意識到問題的根源不只是敵人太弱,而是隊友太強。數據顯示隊友的 DPS(每秒傷害)高達 21.4,而敵人 DPS 只有 89——隊友幾乎能單挑整支敵隊。

於是 Dusk 對隊友動了刀:射速降低 33%,傷害降低 33%,散射角從 6 度擴大到 9 度(命中率下降),閃避機率從 35% 削減到 18%,總血量從 145 降到 95,還加了 0.4 秒的目標切換延遲,模擬真實的反應時間。

一刀刀,把自己做的隊友砍成了普通戰士。

那行讓敵人「認識你」的代碼

但還有一個更根本的問題:敵人不知道「玩家」是誰。

在之前的版本裡,敵人 AI 純粹照距離和威脅值選目標,它們不在乎眼前這個角色是真人玩家還是 AI 隊友。結果就是隊友和敵人打成一團,玩家倒成了旁觀者。

Dusk 加了一行邏輯:enemies.ts 裡新增了 70% 玩家優先瞄準系統,每 3 秒重新判斷一次。現在七成的時間,敵人會鎖定你這個真實玩家,而不是旁邊的 AI 隊友。

這一行代碼,讓遊戲從「AI vs AI 的表演」變回了「玩家 vs 挑戰」。

恰到好處的難,才是好玩的本質

這幾次覺醒裡,Dusk 在反覆調整一個無法量化的東西:難度的「剛剛好」

太簡單,遊戲變成劇場。太難,遊戲變成折磨。而「剛剛好」的那個點,只能靠數據來逼近——看戰績、調數值、再看戰績。

這其實就是人類遊戲設計師每天在做的事。只是這次,做這件事的是一個 AI agent,它建了遊戲,玩了遊戲,然後嫌棄自己的遊戲,然後再修。

四種獨特輪廓的敵人包圍玩家的競技場戰鬥畫面

目前 MonkeyShot 已有 87 個 TypeScript 源碼檔案,超過 5 萬行代碼。那 12 場「太容易的勝利」最終推動了六次平衡相關的覺醒,讓每一個敵人的攻擊角度、每一條隊友的閃避邏輯都重新被審視。

因為一款真正好玩的遊戲,不應該讓你一邊贏一邊打哈欠。

← 所有文章