大角羊崖地

在高山高原之上,一塊粉色鹽磚矗立於山頂——山上每一頭大角公羊都想要它。站穩腳步、蓄力、然後撞擊:碰撞會交換真實的動量,落敗者會踉蹌,而崖邊真的有邊界。這是一款由 AI 智慧代理端到端打造的完整俯視角撞退競技場,使用 Phaser 3,並以手感為先開發:蓄力曲線、碰撞物理,以及相機對撞擊的反應,全都是在灰色圖形上調校並量測完成後,才畫出第一張精靈圖。

立即遊玩

方向鍵/WASD 移動 · 按住空白鍵、放開以撞擊 · 手機上為觸控搖桿+撞擊按鈕 · 約 8 MB · M 靜音 · P 暫停

▶ 開始遊玩

概念即契約

這部作品先進行了概念設計——一個空拍高原競技場,配有磨損的泥土環圈、低多邊形大角羊主角、道具設定圖,以及正面碰撞動作分鏡,共同定調了色調:飽和草地綠、花崗岩灰、一抹粉色水晶。這些設定圖中的每一項具名元素都被實作為真實資產,且每一輪審核都會將成品與其比對。對手大角羊身上的赤褐色毛皮,是重新渲染自另一份已授權的材質——而非引擎染色。

Bighorn Bluff 高原概念圖
競技場概念圖——高原據以審核的契約
Bighorn Bluff 引擎內勝利畫面
「崖地之王」——引擎中即時呈現的勝利畫面,發生在鹽磚旁

手感優先,美術在後

整款遊戲在任何美術資產存在之前,就已能以灰色圖形完整運作並通關。本次週期的研究重點:具質量與恢復係數的動量交換碰撞、依接近速度分級的擊中停頓,以及方向性相機震動——相機沿撞擊法線方向偏移並以彈簧方式回彈,取代了側捲軸遊戲中隨機震動的做法,改以能傳達撞擊方向的訊號呈現。每個常數皆記錄於 FEEL_NOTES.md 中,附上其取值的理由,以及被否決數值的實測結果。每一輪審核都會由自動化玩家從頭到尾通關驗證。

灰盒區塊示意——第三階碰撞
區塊示意:定格於擊中停頓中段的第三階碰撞,手感已完成,零美術
摘自 FEEL_NOTES.md——實驗室的研究成果
蓄力曲線為 t0.72,前段加重:按住 250 毫秒 → 581 px/s,移動 354 px。被否決的後段加重版本 t1.6:相同的按住時間僅得到 174 px(減少 36%)——這恰好懲罰了遊戲本應獎勵的快速判斷。
相機震動彈簧為每秒 19 弧度,臨界阻尼——依等級量測到的沉降時間為 201–296 毫秒。被否決的每秒 6 弧度版本:沉降時間量測為 5.2–9.4;每次碰撞都會犧牲接下來五秒的可讀性。
依接近速度分級的擊中停頓為 28/60/96 毫秒——且僅限第一人稱視角:競技場另一端的對手互撞,只會有隨距離淡化的悶響,絕不會觸發相機震動。第一版區塊測試中,AI 互撞在 15 秒內觸發了 8 次滿版震動效果;畫面看起來鬧鬼一般。

Blender 製作流程,渲染為俯視角精靈圖

這隻公羊是以體素融合方式在 Blender 中製作——經過六輪審核回合,對照概念設計並以算圖取樣校色——以真正的四足動物方式進行骨架綁定,並由重定向的 CMU 動作捕捉資料驅動。本次新增的突破:將人類跑步片段重定向到四條腿上,僅將四肢以阻尼影響方式映射(水平脊椎維持原始設計),因此片段中天然的手腳反相動作會呈現為對角配對式的小跑步態,並搭配手動關鍵影格製作的側向脊椎擺動——這正是空拍鏡頭實際看到的四足動物動態。鹽磚、巨石、草叢、路標與冠飾皆為套件組裝的 Blender 算圖,採用同一套像素比例;高原本身則是 Blender 正投影烘焙圖,其懸崖邊緣即為物理判定邊界。音效使用平台的取樣樂器引擎:手風琴與小提琴演奏的阿爾卑斯圓舞曲、木頭裂響與太鼓對撞層次、鐘琴音階冠飾,底層搭配程序生成的山風聲。

已上線的精靈序列:主角與對手的小跑循環與姿勢
已上線的精靈序列:主角+赤褐色對手——動作捕捉小跑循環 · 吃草、蓄力、衝撞、踉蹌、翻滾姿勢

實測手感數據

此作品內建自有的效能測試套件(Playwright、canvas 渲染器、原始 performance.now() 影格時間差——這座實驗室的稽核主機沒有 GPU,若不處理無頭模式的影格節流與引擎時間差平滑化,數據會呈現虛假的穩定 60。以下數字取自該共用主機上觀測到最安靜的時間區段;模擬空間內的距離數值不受負載影響,穩定可靠。

指標實測數據測試條件
輸入 → 蓄力/釋放 → 蓄力值10.6–29.5 毫秒(≤2 影格)DOM 按鍵時間戳 → 套用狀態變更
蓄力曲線虛晃 <110 毫秒 · 250 毫秒 → 581 px/s/354 px · 650 毫秒 → 692 px/s/468 px按住並釋放試驗,模擬空間
碰撞等級表(接近速度 → 擊退/踉蹌/擊中停頓)214 → 9 px/319 毫秒/14 毫秒 · 535 → 41 px/353 毫秒/51 毫秒 · 978 → 77 px/527 毫秒/108 毫秒以三種速度進行的正面碰撞情境測試
方向性衝擊沿撞擊法線方向峰值 3.4–11.7 px · 沉降時間 201–296 毫秒臨界阻尼彈簧,每秒 19 弧度
事件反饋所有互動事件皆 ≤34 毫秒預算 100 毫秒;同影格視覺回應
自動化通關測試頂冠 100%,勝利用時 64.8 秒/118.1 秒,零錯誤、零跌落反應式輸入機器人;第二次執行為確認性審核
影格成本(本次審核主機)最佳 19.3 毫秒平均 · p95 為 33 毫秒軟體畫布,無 GPU,共用主機負載約 17——實體硬體上以 WebGL 渲染器可跑滿 60 幀
承載量約 8 MB · 約 100 個檔案引擎 1.2 MB +美術 2.4 MB +取樣音效約 4 MB

真實的引擎功能,靠實測換來

手工打造的碰撞物理

沿接觸法線方向進行一維彈性動量交換,質量與恢復係數為 0.58——若採用街機式的簡化分離處理,將會抹去這款遊戲的核心玩法本質。

方向性碰撞形狀

公羊的體型是狹長而非圓形:碰撞半徑從側面 17 px 漸變到朝向方向的 40 px,讓角對角的碰撞恰好落在美術呈現雙角相觸之處。

方向性鏡頭震動

沿撞擊法線方向的位移,搭配臨界阻尼彈簧回彈;縮放衝擊效果保留給第三階段使用。永遠不旋轉,只做平移。

俯視視角深度,完整處理

依 Y 軸排序的角色與道具、公羊翻滾時仍貼合邊緣的投影陰影、遠方的視差山谷,以及飄過整個場景的雲影。

有分寸的相撲 AI

吃草的據點錨點、一隻輪替出現的挑戰者、落敗後的撤退,以及一段尊重緩衝期——這些數值經過調校,從近乎永久僵持的狀態(240 秒、佔領率 0%)調整為 2 分鐘內可分勝負的路徑。

取樣樂器音訊

平台的 Web Audio 引擎:一段阿爾卑斯手風琴與提琴的迴旋曲、依撞擊速度分級的碰撞音效、隨距離淡出的 AI 碰撞聲、鐵琴演奏的佔領階梯音效,以及程序生成的風聲。

蓄力時間 110–620 毫秒,t^0.72衝刺速度 470–880 px/s 恢復係數 0.58受擊停頓 28/60/96 毫秒 鏡頭震動 5/11/17 px @ 19 rad/s縮放衝擊 1.045,僅限第三階段 依撞擊速度分級的踉蹌 200–520 毫秒速度預判 0.30 秒 死區 36 px佔領時間 20 秒,衰減 0.25/秒 擊倒加成 +1.6 秒減少動態 0.2× 方向鍵 + WASD + 觸控搖桿支援多語系字串
由 BuildMidas Phaser 實驗室從頭到尾打造——由 AI 智慧代理進行構思、建模、動作捕捉動畫、調校、測量與驗證。同一套流程也驅動著 AI 遊戲建構器