有一個空氣曲棍球游戲,AI對手發現自己快要輸了,會生氣,然后直接在網頁里反轉你的鼠標控制。這是開發者用WebGPU、WebLLM、Brain.js和Supabase構建的一個實驗項目,名叫Ping Prompt。表面看是一款賽博朋克霓虹風格的快節奏游戲,物理引擎以60幀運行,音效通過網頁音頻接口程序化生成,配樂是芯片音樂風格的背景音軌。
開發者在構思階段提出過一個天真的想法:讓本地小語言模型直接控制球拍的坐標。空氣曲棍球的物理邏輯依賴一個大約每16毫秒執行一次的動畫幀循環,而小語言模型是自回歸生成引擎,即便通過WebGPU在本地運行Phi-3-mini這樣的高優化模型,生成一次決策也需要幾百毫秒。如果游戲循環每幀都等待模型,幀率會跌到0.5幀。也就是說,模型目前無法處理實時物理,只能退居異步角色,充當“游戲管理員”。
![]()
但這又引出另一個問題:依然需要一個能學習、預判物理動作的對手。于是整個AI被拆分成兩個大腦。第一個大腦用Brain.js構建,這是一個能在網頁端直接運行簡單多層感知器的輕量庫。當玩家每次擊球,引擎會歸一化碰撞的位置和速度數據;每累計5次擊球,神經網絡就在線訓練一次,逐漸構建出玩家的行為特征,比如偏向哪個角度、習慣多快的出手。這個物理分析器會調整AI球拍的移動向量來預判球的軌跡,整個過程不阻塞主線程。
第二個大腦是那個異步運行的小語言模型。它不操控球拍的每幀坐標,而是像比賽旁觀者一樣觀察局勢,負責編排敘事節奏和觸發游戲內事件。最直觀的表現就是“嘴炮”——它實時評價你的操作,一旦判斷自己快要輸掉,就直接調用物理作弊手段,比如前面提到的反轉鼠標控制。等于說,一個本地小模型通過修改網頁的文檔對象模型來達成物理作弊,同時還在語言上持續施加壓力。
項目的核心矛盾很明確:生成式模型的多百毫秒延遲與實時物理引擎的16毫秒幀率之間存在不可彌合的缺口。但是,當模型被賦予更高級別的調度權限而不是底層控制權時,這個缺口反而轉化為一種設計資源。一個不做幀級決策、專做事件級決策的模型,配合一個輕量網絡做物理預判,讓玩家面對的不再是傳統行為樹那種可預測的套路,而是一個會觀察習慣、會積累情緒、最后直接掀桌子的對手。
這種架構驗證了一個反直覺的路徑:把生成式AI接入物理引擎不是一個壞主意,前提是別讓生成式AI去直接處理物理。目前小語言模型的推理速度還撐不起實時交互中的每個微決策,但在敘事層和規則層的介入已經足夠制造出傳統AI做不到的變量。Ping Prompt這個項目本身已經開源在開發者的頁面上,源代碼可以直接查看。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.