如何用 AI 打造自己的三國無雙
你有沒有想過,自己也能做出自己的無雙動作遊戲?
這篇會帶你從空資料夾做出第一個可玩的對戰場景,再擴充成多敵人關卡。我用開源遊戲《墨刃》作案例:它的「無雙征途」讓鍾馗穿過狼群、劍陣,最後迎戰山魈。你做自己的版本時,可以換成原創武將與世界觀;我們要學的是群戰的玩法結構,以及如何和 AI 一起把它做出來。
一、先玩一次,再決定第一版要做什麼
先開啟上方的線上遊戲,選「無雙征途」。用 WASD 移動、短按 J 攻擊、空白鍵閃身、按住 K 防禦。你會發現它的樂趣不只來自畫面,而是這個循環:看見敵群 → 找空隙接近 → 出招與閃避 → 清空據點 → 前往下一關。《墨刃》把狼群、劍陣和山魈接在同一條路線上。
現在先把華麗特效、完整劇情和 3D 模型放一邊。第一版只需要一個場地、一個可控制的角色、一個會靠近你的敵人,以及明確的勝負結果。請把驗收條件寫下來:按鍵有反應、靠近才打得到、血量會變、死亡後能重開。有了這四件事,才有東西可以真正「試玩」。
如果你想先拆解現成作品,可以在有 Node.js 與 Git 的電腦上執行:
git clone https://github.com/ywchiu/inkblade.git
cd inkblade
npm ci
npm start
在支援 WebGL 2 的瀏覽器開啟 http://127.0.0.1:4173/。這是研究案例的指令;下面我們會在另一個資料夾建立自己的小遊戲。單純遊玩《墨刃》不需要 AI 帳號或 API key。
二、讓 AI 做出第一個「真的能玩」的版本
先建立空專案,再用你熟悉的 AI 編碼助理打開這個資料夾。這裡只需要三行指令;編碼助理可以幫你建立其餘檔案:
mkdir my-musou-game
cd my-musou-game
git init
不要只說「幫我做一款三國無雙」。把操作、場景、勝負和交付方式寫進任務。你可以把下面這段貼給編碼助理,再把主角與敵人的設定改成自己的:
請在這個資料夾建立可於瀏覽器執行的第三人稱 3D 動作遊戲原型。
使用 JavaScript 與 Three.js;先用簡單幾何形狀代表角色,不接外部模型。
第一輪只做一個場地、一名玩家、一名敵人:
1. WASD 移動,鏡頭能跟隨玩家;J 攻擊,空白鍵閃身。
2. 敵人會接近玩家;攻擊有距離、方向與冷卻判定。
3. 雙方有血量;任一方血量歸零,顯示結果並可重新開始。
請先列出檔案與實作順序,再直接建立程式。
完成後提供 npm start 啟動方式、語法檢查與手動驗收步驟。
- 站在原地按攻擊,遠處敵人不會憑空扣血。
- 靠近敵人攻擊,血量只在命中時下降,不會按住鍵就一口氣歸零。
- 玩家被擊敗、敵人被擊敗,都有結果畫面和重開方式。
若有問題,不用重新丟一份模糊的需求。直接回報現象,例如:「站在場地另一端按 J,敵人仍扣血;請檢查攻擊距離,修好後加一個遠距離不扣血的測試。」這樣 AI 才知道要修哪個行為,也有條件可以證明修好了。
三、從單挑變成一人迎戰敵群
單挑能玩,才開始做「無雙感」。多放五個敵人並不會自動變好玩:如果所有敵人同時貼臉出招,玩家根本沒有讀招與反擊的空間。《墨刃》的群戰測試就檢查了敵人輪流進攻、範圍攻擊只命中一次,以及清場後才開關口等規則。現在把它們變成下一輪的開發任務:
沿用目前可玩的單挑版本,加入一個小型群戰關卡。
場上先有六名敵人;只有靠近玩家的敵人才會追擊,
同一時間最多兩名敵人真正出招,其餘保持位置並等待輪替。
加入一次範圍斬擊:範圍內每名敵人各扣血一次,範圍外不受傷。
顯示擊破數與剩餘敵人;清空敵群後開門,玩家走到門才進下一區。
死亡後重試此區,不可直接跳到下一關。
請保留原本的單挑模式,為上述判定加入自動測試。
這一輪要特別試三件事:站遠一點揮刀是否仍會打到敵人?一刀掃過三名敵人,是各扣一次,還是每幀一直扣血?最後一名敵人倒下後,關口是否真的打開、能否走過去?如果只有畫面上多了敵人,判定與關卡流程卻沒有完成,遊戲還不能算完成。
想看《墨刃》怎麼分工,可以從原始碼中的 combat3d.js(戰鬥規則)、campaign3d.js(關卡與敵群)和 game3d.js(操作與畫面整合)讀起。你不必逐行照抄,但可以看見「攻擊判定」「敵人行為」「關卡推進」分別有自己的位置。
四、玩法成立後,再讓 AI 幫你做角色
這時才輪到美術。《墨刃》先定下雨夜古寺、鍾馗與三位對手的方向,用 GPT Image 與 Nano Banana 2.1 做角色參考,再用 Tripo H3.1 產生 3D 模型。你的第一版也可以沿用方塊角色;等操作順了,再把它換成自己設計的武將與敵兵。
產圖時把「角色要長什麼樣」說清楚,比只寫「帥氣武將」有用。下面是給讀者練習的提示詞範例,不是《墨刃》製作時的原始對話:
設計一位原創東方古戰場武將,供 3D 建模參考。
全身入鏡,站姿自然,單色背景;深色札甲、暗紅披風、長柄兵器。
請讓頭部、手腳和武器完整可見,服裝層次清楚。
保持寫實比例,不要使用現有遊戲角色的造型或標誌。
選好參考圖並生成 GLB 後,先在模型預覽頁轉一圈:正面和背面有沒有缺件?角色朝向對不對?劍是否和手黏成同一塊?再放進遊戲看移動與出招。圖片好看,不等於模型能動。《墨刃》曾試用自動綁骨,雖然產出骨架與動作,走路時腿部和衣袍仍嚴重拉扯;最後使用遊戲程式建立的骨架與動作。這是整個製作過程最值得記住的一次驗收。
如果模型載入後背對玩家,請 AI 檢查模型軸向;若一進場就卡頓,先檢查模型與貼圖大小。做網頁遊戲時,素材下載量也算遊戲體驗。《墨刃》公開前曾把角色貼圖縮小、改為 WebP 並簡化網格,才把四個實戰模型的合計大小明顯降下來。
五、把故事、聲音與手機操作接回玩法
一連串敵人打完,玩家為什麼要往下一關走?《墨刃》用「村民的名字被借走」作主線:擊敗狼群得到守橋人的線索,破劍陣後才知道山魈藏著借名契。這種「每關給一個新線索」的安排,能讓連續清場有推進感。你可以先請 AI 幫你寫三關各一句目標與一段過關對白,確認它們都在正確時間出現,再擴成完整劇情。
《墨刃》的對白配音使用 ElevenLabs 語音模型,音樂與音效使用 Higgsfield、Mirelo 和 Kenney 素材。聲音放進遊戲後要自己聽:劍擊聲是否比對白大太多?連續斬擊時音效會不會重疊成雜音?切到別的視窗後是否還在播放?若使用生成或第三方素材,也要在發布前確認各自的授權條款。
最後用手機尺寸再玩一次。桌面上的 WASD、J 與空白鍵,在手機上需要搖桿和觸控按鈕;《墨刃》把移動放左側、攻擊/閃身/防禦放右側。請測試按鈕會不會被手指擋住、邊移動邊攻擊能否成功、畫面是否出現橫向捲動。光把桌面畫面縮小,操作並不會自動變順手。
六、用測試和試玩決定能不能發布
做完一輪,就要求編碼助理執行專案現有的檢查、摘要失敗原因,再交給你試玩。《墨刃》原始碼可用以下指令檢查;你自己的專案則要請 AI 建立對應的檢查指令:
npm run check
npm test
- 開場能進入遊戲;移動、攻擊、閃避與重開都能操作。
- 遠距攻擊不會扣血;範圍斬擊只打到範圍內敵人,每名敵人只扣一次。
- 清空敵群才開關;死亡重試不會跳關;最後有清楚的勝利結果。
- 桌面和手機都能玩;圖片、模型、音效能載入,沒有擋住操作的介面。
自動測試能抓住規則錯誤,手動試玩則能發現節奏、畫面與操作問題。遇到 bug,請回報「在哪一關、按了什麼、預期看到什麼、實際發生什麼」,再請 AI 修正並補測試。這比反覆說「不好玩,幫我改」有效得多。
《墨刃》的網頁版把可執行遊戲放在 dist/,透過 Cloudflare Pages 發布。你自己的作品也可以在通關流程、手機操作與素材載入都檢查完成後,再發布靜態遊戲檔案。最重要的下一步,是先做出一個能讓朋友打完一場、再按一次重玩的版本;第二關、第三關和華麗特效都可以從這個基礎繼續長出來。