翻譯: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發布。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。