來源:MetaCat
鏈上遊戲設計媒介具有多種功能和限制,其中之一就是對集體決策的高度重視。通過原型系統探索這種功能,我們提出了 Sentences:一種鏈上協作世界構建工具,其結構圍繞僅附加分支敘事的原始結構。它使用 MUD 構建,爲集體敘事生成提供了一個輕量級環境。Sentences 的每個新遊戲都會生成一個新世界,然後玩家通過逐步添加其傳說來實現它。
動機
在自治世界空間中,新項目誕生的一項常見任務是集體“世界構建”,構建一個共同的傳說系統,決定玩家對世界的體驗。這種練習通常是非正式的、非結構化的,但也可以通過有序的提示和練習來支持,幫助世界構建者塑造他們世界的結構和連貫性。
這些練習本身就是一個世界。它們在敘述者之間構建了一個信息系統,這是一套讓敘述得以蓬勃發展的規則。這套規則就是世界,它爲新想法的誕生創造了一個懸而未決的現實空間。練習的選擇也必然會影響所創造的敘述:一組問題將假設一個潛在答案的空間;一個方向的提示可能會阻礙另一個方向的探索。
因此, Sentences 是一個“世界構建的世界”;一個用於協作知識生成的原始沙盒。它必然是稀疏和受限的,旨在作爲測試新想法的實驗室。除了擴展敘事之外,沒有其他聊天或貢獻。在 Sentences 的世界中,世界是线性構建的,但可以從初始種子向多個方向分支。
機制
除非世界已經在進行中,否則加載 Sentences 客戶端會爲玩家提供生成新世界的選項。生成後,玩家會收到一個提示,提示玩家可以使用一個核心機制來开發故事,示例可能如下:
“這個社會最重要的是自然”
“這個文明完全依賴於水平”
“這個團體是靠金錢建立起來的”
一旦生成,世界就會活躍起來,作者有固定的時間(我們將其設置爲 20 個區塊,以規律的 tick 方式進行)來爲故事提出新的補充內容。時間結束後,將進入第二階段,參與者將投票選出他們最喜歡的提案。投票數統計完畢後,最喜歡的提案將加入到故事中,然後重新开始該過程。
如果在時間窗口內沒有提出任何提案,世界就會消亡。這種消亡並不是絕對的:世界只是將其他已消亡的世界加入檔案中。由於所有提案和投票都在鏈上,因此所有世界都包含可能方向的完整歷史記錄,作爲“消亡”分支,代表一組可能的平行宇宙。
合約
敘述的狀態由兩個相互關聯的系統管理:一個系統負責管理新敘述的生成,另一個系統負責處理時間、投票和敘述新內容的提議。
新故事的初始化,由從輸入系統中編碼的硬編碼提示列表中,隨機選擇的句子組成 FirstEntrySystem.sol。這些提示是使用簡單的替換語法腳本生成的。在未來的版本中,此腳本還可以在合約中復制,以提供更多樣化的起點。
一旦故事初始化完成,這個初始提示就會被添加到鏈中,新的提案期就會开始。這個周期持續 n 個區塊(每個區塊大約一秒),並由變量定義 periodEndsBlock,該變量在每個新提案期开始時設置在活動故事上。
在提案期間,會建議新的敘述條目,參與者會投票決定他們選擇的擴展。提案和投票均由 ProposalsSystem.sol 處理,它根據 periodEndsBlock 變量驗證這些貢獻的時間。提出的每個提案都指向一個“父級”(它所響應的提案),成功的提案會形成一個鏈接列表。
在提案期結束時,將計算每個提案的投票數。如果出現平局,則隨機選擇兩個提案中的一個(在未來的版本中,將此視爲會產生分支的情況將會很有趣)。如果沒有提出任何提案,則故事結束。故事將被歸檔,玩家可以採取的下一步行動將是產生新的故事。
應用(Applications)
我們設想,Sentences 在 10-50 名參與者的會議中發揮最佳作用,這些參與者可能彼此認識,也可能不認識,但本着原型傳說的精神聚集在一起。例如:在 Discord 上舉辦活動,目標是在一小時內生成五個新世界。
就其本身而言,Sentences 並不是特別令人興奮,它只是一種工具,而不是一個引人入勝的世界。然而,作爲一個模塊化組件,Sentences 的敘事生成機制,可以很好地融入到更豐富的角色扮演遊戲中,在遊戲過程中編織遊戲的結構。投票機制還可用於支持在玩家生成的提示中包含生成輸出。
Sentences 當前版本的一個弱點是初始提示的特殊性。這很容易爲不同的部署進行更改,但擴展遊戲的提示生成機制,以更符合敘事部分的开放性將會很有趣。
備擇方案
Sentences 的形式靈感來自基於文本的遊戲、即興創作、傳說和 TTRPG。我們在制作這款遊戲時參考的一些特定參考資料包括 Max Kreminski 的Epitaph(一款奇幻敘事生成遊戲)和 Kate Compton 的 Tracery 替代語法工具。這些項目利用簡單的隨機性和模塊化,來創建復雜的分支敘事,在我們的案例中,我們對這些原語在集體場景中使用的潛力很感興趣。
雖然 Sentences 在構建世界時就考慮到了這一點,並且在這方面有些主觀性(即:僅附加敘述),但人們也可以想象它被用於其他受限的協作寫作場景(比如:Toggle the table of contents Twitch Plays Pokémon?)。
擴展和未來工作
Sentences 的一個明顯擴展是,任何初始化世界的人都可以設置,關於如何將新句子附加到敘事中的具體規則。例如,這些規則可以修改投票系統,要求一定數量的玩家才能繼續敘事,或者修改投票時間以減緩或加快敘事的發展。這樣一來,Sentences 不僅成爲世界的原型設計工具,還成爲產生特定故事風格的約束和對話結構的原型設計工具。
另一個同樣有趣的开發方向是從當前世界的“死”分支中生成平行世界的選項。作爲一種機制,最好的實現方式可能是生成一個帶有指向舊分支指針的新“新世界”合約,而不是從頭开始生成一個新世界。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。