Communitygithub.com

poorvith-mp/skills-gamedev

26個遊戲開發AI技能:Unity、Unreal Engine 5、Blender建模、著色器與音訊管線。

skills-gamedev 是什麼?

這套技能專注於遊戲AI開發,提供一套完整的4步驟架構,幫助開發者設計出有趣且具挑戰性的非玩家角色(NPC)。它強調遊戲AI的本質是營造娛樂與節奏感的幻象,而非追求學術上的完美預測。技能涵蓋行為樹與有限狀態機的決策架構、視覺與聽覺感知系統、NavMesh尋路與戰術側翼包抄,以及關鍵的「鋪陳提示」與「能力幻象」設計。支援Unity與Unreal Engine 5等主流引擎,並提供可立即套用的敵人AI行為樹規格範本(ENEMY-AI-SPEC.md),包含感知參數、行為樹階層、音效反饋與驗證清單。此外,還明確列出常見的反模式(例如全知AI、零延遲反應),幫助開發者避免設計出讓玩家感到不公平或沮喪的敵人。這套技能非常適合遊戲設計師、AI程式設計師與獨立開發者,希望建立既聰明又有趣的遊戲敵人。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add poorvith-mp/skills-gamedev

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

game-ai

核心哲學

遊戲人工智慧(Game AI)並非學術界的機器學習,試圖預測未來或擊敗西洋棋大師。遊戲AI是一種娛樂與節奏感的幻象。一個以超人級精度、像素級瞄準、零猶豫表現的NPC,只會讓玩家感到挫折且毫無樂趣。遊戲AI必須提供清晰的意圖提示、可讀的戰術決策、可信的感官感知,以及動態難度調整,讓玩家產生智勝對手的興奮感。


4步驟遊戲AI架構

步驟 1:決策架構:行為樹 vs 有限狀態機

  1. 行為樹(戰鬥AI的業界標準):
    • 基於由左至右評估的階層式節點:
      • 複合節點:
        • 序列($ o$):依序執行子節點;任一子節點失敗即中斷(例如 有武器 $ o$ 裝彈 $ o$ 瞄準)。
        • 選擇器($?$):執行子節點直到其中一個成功(例如 血量低則逃脫 $?$ 近戰攻擊 $?$ 尋找掩體)。
      • 修飾節點:條件判斷閘(例如 反轉、時間限制、冷卻時間)。
      • 葉節點/任務:具體的可執行動作(例如 MoveToPosition、PlayAnimation)。
  2. 有限狀態機(FSM):
    • 最適合簡單的環境生物或階段式頭目(狀態:巡邏、調查、追逐、攻擊、逃脫)。

步驟 2:感官感知系統(視覺與聽覺)

  1. 視覺錐(視覺感知):
    • 透過三道閘門評估目標可見性:
      • 距離檢查:玩家是否在視線半徑內($D \le R_{text{max}}$)?
      • 視野角度:敵方前向量與朝向玩家方向之間的点積是否 $\ge \cos( heta / 2)$?
      • 視線(射線檢測):從敵方眼睛到玩家軀幹的物理射線檢測是否擊中世界幾何體或玩家?
  2. 聽覺感知(聽覺):
    • 將聲音事件傳播到遊戲世界中(例如 槍聲 = 40公尺半徑;腳步聲 = 8公尺半徑)。
    • 被驚動的NPC轉為調查狀態,並朝向聲音來源移動。

步驟 3:NavMesh尋路與戰術側翼包抄

  1. 基於導航網格的A*尋路:
    • NPC查詢預先計算的NavMesh進行路徑移動。
    • 互補速度障礙(RVO / ORCA):實作局部碰撞避免,使5個敵人群不會以完全相同的一列行進,或卡在門口入口。
  2. 戰術掩體尋找與側翼包抄:
    • 查詢環境查詢系統(EQS):採樣玩家周圍的候選點,根據掩體幾何角度、距離和視線保護進行評分。

步驟 4:意圖提示與能力幻象

  1. 意圖提示:
    • 在執行致命攻擊之前,NPC必須透過音效提示(「左側包抄!」、「手榴彈! 」)、預備動作動畫或雷射瞄準線來提示意圖。
  2. 「風暴兵效應」(可控的不準確):
    • 針對未察覺玩家的第一槍應故意偏離1公尺,以警示玩家並在造成真實傷害前製造腎上腺素。

可交付格式:敵人AI行為樹規格(ENEMY-AI-SPEC.md)

# 戰鬥敵人AI行為樹規格:[NPC 原型]

## 1. 感知參數
- **視線距離**:25公尺(白天)/ 14公尺(夜晚)
- **視野角度**:110度
- **聽覺半徑**:槍聲 = 50公尺 | 跑步腳步聲 = 12公尺 | 蹲伏行走 = 0公尺(無聲)
- **反應時間緩衝**:目標鎖定到觸發攻擊之間延遲350毫秒

## 2. 主行為樹階層

Root (Selector) ├── [Decorator: Health < 20%] -> Sequence (Emergency Flee) │ ├── FindCoverAwayFromPlayer() │ ├── MoveToCover() │ └── PlayAnimation("Heal") ├── [Decorator: CanSeePlayer == True] -> Selector (Combat Branch) │ ├── [Decorator: InMeleeRange] -> Sequence (Melee Strike) │ │ ├── PlayAudioBark("Charge!") │ │ ├── TelegraphWindup(400ms) │ │ └── ExecuteMeleeDamage() │ └── Sequence (Ranged Engagement) │ ├── Selector (Take Cover or Flank) │ │ ├── [Decorator: InCover] -> AimAtPlayer() │ │ └── MoveToFlankPosition() │ └── FireBurst(3_rounds) └── Sequence (Patrol / Idle) ├── PickNextPatrolWaypoint() ├── MoveToWaypoint() └── WaitRandom(2s, 5s)


## 3. 音效叫喊與玩家回饋
- **發現玩家時**:*「接觸!九點鐘方向!」*
- **投擲手榴彈時**:*「破片彈!找掩護!」*

實戰範例:修正「不公平」的狙擊手敵人AI

  • 問題:測試玩家討厭某個狙擊手敵人,因為它會在沒有預警的情況下秒殺地圖另一端的玩家。
  • 修正:在開火前加入一條可見的紅色雷射瞄準線橫掃地面2.0秒,並搭配獨特的音效充能嗡鳴聲。
  • 結果:玩家的死亡感覺公平且可避免;測試滿意度分數從32%躍升至88%。

驗證檢查清單

  • 感知系統驗證距離、視野錐與物理射線檢測視線。
  • 行為樹在進攻行動之前優先處理生存/逃脫狀態。
  • 所有致命攻擊都包含可讀的提示動畫或音效叫喊。
  • NavMesh代理實作局部避免(RVO)以防止門口擁擠。
  • 敵人反應時間包含合理的人類延遲緩衝(200–400毫秒)。

反模式

  • 全知AI:讓敵人無須感知檢查就能穿牆得知玩家座標。
  • 零幀轉向:敵人在一幀內180度轉向並以100%精度射擊。
  • 單線行軍:讓8個敵人排成一列穿過單一走廊,被逐個擊殺。

相關技能