翻譯:MetaCat
非玩家角色(NPC) 是遊戲世界中的永久居民,他們的行為不受玩家控制。相反,他們的行為由遊戲開發者創建的一組預先編寫的條件決定,這些條件會根據世界狀態來評估NPC 應採取的行動。 NPC 通常以任務提供者和同伴的形式出現,以進行對話驅動的故事推進、供應商分發物品、或與敵人進行戰鬥。
我們的遊戲《Duck Duck Destruction》是一個案例,展示了一種使玩家能夠為NPC 編寫決策樹腳本並將其部署在自治世界中的模式。
動機
與Gnomik 或Sentences 等項目相比,我們的原語有較少的主觀色彩,前者透過專用的自上而下的主控層將規則和傳說製作引入遊戲玩法。相反,我們的方法允許玩家對世界做出細微的貢獻,在不破壞其基本機制的情況下保持其活力。我們認為玩家可部署的NPC 是集體創作和新興故事敘事的有利媒介,因為它們既能表達和互動,又能保持世界基礎結構的完整性。
機制
《Duck Duck Destruction》 是一款完全由玩家編寫的NPC 鴨子,在競技場環境中戰鬥的遊戲。玩家透過決策樹智能合約對鴨子進行編程,這些智能合約將NPC 的行為確定為對遊戲內事件的條件響應:「如果受到射擊,請遠離當前位置」或「攻擊任何進入近戰範圍的鴨子」。
在足夠數量的玩家提交決策樹後,遊戲主持人開始遊戲。然後遊戲自動進行,每輪都會提示鴨子根據編程的決策樹採取行動。遊戲以所有鴨子被淘汰或最後一隻鴨子存活而結束。
NPC 行為腳本:決策樹的圖形範例
智能合約
每個NPC 腳本都是部署在MUD/EVM 相容堆疊上的智慧合約。要將這些腳本添加到給定的世界,世界合約需要一個註冊功能,允許玩家提交其部署的NPC 智能合約的地址。可以根據遊戲進度、資產所有權或簡單的地址白名單選擇性地限制此功能。
一旦註冊了腳本,父世界就會直接呼叫它,或作為玩家操作的間接結果。由於MUD/EVM 底層缺乏Tick 機製或其他自主啟動腳本的方法,因此它本質上是被動的,NPC 所做的任何動作都以玩家發起的動作為前提。因此,腳本的父世界必須包含一個觸發NPC 腳本執行的函數呼叫。
一旦觸發,NPC 腳本就會使用世界狀態,並根據其預先定義的邏輯和程式設計來評估行動方案。
應用
《Duck Duck Destruction》將NPC 置於快節奏的戰鬥環境中,以最低限度地展示我們原始的底層機制。由於採用基於會話的模型,它目前的功能類似於NPC 托兒所,缺乏更豐富的周邊環境來直接進行互動。
然而,我們可以想像這種原始元素在更開放的沙盒世界中的使用,其中NPC 的反應是透過玩家提示非同步觸發的。一個例子可能是具有可編程個性的伴侶寵物,它們會跟隨玩家並對環境和其他角色做出獨特的反應,從而導致其行為中出現複雜性。這種複雜性導致世界變得不可預測且充滿驚喜。 《矮人要塞》中就有這樣的例子,玩家在自己建造的下水道中偶然發現了NPC 河馬,因為他們的邏輯決定有水的環境是合適的棲息地。
在一個允許部署分級NPC 並允許其執行不同操作的世界中,玩家還可以以鍊式故事的方式協作指導分支任務線,其中玩家角色和NPC 之間的互動推動了共同目標的決心和追求。
備擇方案
從概念上講,替代方案可以利用玩家編寫的邏輯,超越NPC 的表述,並將其應用擴展到世界景觀或可裝備物品的某些部分。這可能是一個前哨站,其旗幟和裝飾在被遊擊隊圍攻時會從乾淨變為破舊,或者玩家編程的賽博朋克小工具,只要對手使用遠程武器,就會從玩家的庫存中觸發煙霧彈。
儘管我們的作品試圖明確地將透明性框定為一種生成性功能,但使用零知識證明建構的實現可以在更具競爭力的環境中得到利用。 Topology 的Shoshin 就是一個例子,它允許玩家編寫腳本並提交具有私人決策樹的戰鬥NPC。諸如EZKL 之類的零知識堆疊可以實現可驗證的鏈下計算任務,還允許更複雜、更具表現力的NPC 邏輯,包括AI/ML 模型整合。
這兩種替代方法都存在著使連鎖故事式互通性變得不那麼直觀的缺點。尤其是EZKL,由於依賴證明後端,嚴格意義上來說,它使世界機制的自主性降低。儘管如此,我們發現這些替代方法很有趣,因為它們使世界能夠將探索融入遊戲玩法,提供更好的貢獻者體驗,並可能增強機器人抵抗力。
擴充
目前,發起《Duck Duck Destruction》遊戲比賽的玩家需要承擔運行其下註冊的所有NPC 合約所產生的網路費用。這可以透過允許玩家匯集資源的專用基金合約或帶有付款人擴展的gas 補貼模型來改善。
致謝
合約設計和工程由Norswap完成。視覺資產包由Tea Strazicic製作,SFX 由Orion Ohana製作,根據CC BY 4.0發布。