鏈上游戲設(shè)計(jì)媒介具有多種功能和限制,其中之一就是對集體決策的高度重視。通過原型系統(tǒng)探索這種功能,我們提出了 Sentences:一種鏈上協(xié)作世界構(gòu)建工具,其結(jié)構(gòu)圍繞僅附加分支敘事的原始結(jié)構(gòu)。它使用 MUD 構(gòu)建,為集體敘事生成提供了一個輕量級環(huán)境。Sentences 的每個新游戲都會生成一個新世界,然后玩家通過逐步添加其傳說來實(shí)現(xiàn)它。
動機(jī)
在自治世界空間中,新項(xiàng)目誕生的一項(xiàng)常見任務(wù)是集體“世界構(gòu)建”,構(gòu)建一個共同的傳說系統(tǒng),決定玩家對世界的體驗(yàn)。這種練習(xí)通常是非正式的、非結(jié)構(gòu)化的,但也可以通過有序的提示和練習(xí)來支持,幫助世界構(gòu)建者塑造他們世界的結(jié)構(gòu)和連貫性。
這些練習(xí)本身就是一個世界。它們在敘述者之間構(gòu)建了一個信息系統(tǒng),這是一套讓敘述得以蓬勃發(fā)展的規(guī)則。這套規(guī)則就是世界,它為新想法的誕生創(chuàng)造了一個懸而未決的現(xiàn)實(shí)空間。練習(xí)的選擇也必然會影響所創(chuàng)造的敘述:一組問題將假設(shè)一個潛在答案的空間;一個方向的提示可能會阻礙另一個方向的探索。
因此, Sentences 是一個“世界構(gòu)建的世界”;一個用于協(xié)作知識生成的原始沙盒。它必然是稀疏和受限的,旨在作為測試新想法的實(shí)驗(yàn)室。除了擴(kuò)展敘事之外,沒有其他聊天或貢獻(xiàn)。在 Sentences 的世界中,世界是線性構(gòu)建的,但可以從初始種子向多個方向分支。


機(jī)制
除非世界已經(jīng)在進(jìn)行中,否則加載 Sentences 客戶端會為玩家提供生成新世界的選項(xiàng)。生成后,玩家會收到一個提示,提示玩家可以使用一個核心機(jī)制來開發(fā)故事,示例可能如下:
- 「這個社會最重要的是自然」
- 「這個文明完全依賴于水平」
- 「這個團(tuán)體是靠金錢建立起來的」
一旦生成,世界就會活躍起來,作者有固定的時間(我們將其設(shè)置為 20 個區(qū)塊,以規(guī)律的 tick 方式進(jìn)行)來為故事提出新的補(bǔ)充內(nèi)容。時間結(jié)束后,將進(jìn)入第二階段,參與者將投票選出他們最喜歡的提案。投票數(shù)統(tǒng)計(jì)完畢后,最喜歡的提案將加入到故事中,然后重新開始該過程。
如果在時間窗口內(nèi)沒有提出任何提案,世界就會消亡。這種消亡并不是絕對的:世界只是將其他已消亡的世界加入檔案中。由于所有提案和投票都在鏈上,因此所有世界都包含可能方向的完整歷史記錄,作為「消亡」分支,代表一組可能的平行宇宙。
合約
敘述的狀態(tài)由兩個相互關(guān)聯(lián)的系統(tǒng)管理:一個系統(tǒng)負(fù)責(zé)管理新敘述的生成,另一個系統(tǒng)負(fù)責(zé)處理時間、投票和敘述新內(nèi)容的提議。
新故事的初始化,由從輸入系統(tǒng)中編碼的硬編碼提示列表中,隨機(jī)選擇的句子組成 FirstEntrySystem.sol。這些提示是使用簡單的替換語法腳本生成的。在未來的版本中,此腳本還可以在合約中復(fù)制,以提供更多樣化的起點(diǎn)。
一旦故事初始化完成,這個初始提示就會被添加到鏈中,新的提案期就會開始。這個周期持續(xù) n 個區(qū)塊(每個區(qū)塊大約一秒),并由變量定義 periodEndsBlock,該變量在每個新提案期開始時設(shè)置在活動故事上。
在提案期間,會建議新的敘述條目,參與者會投票決定他們選擇的擴(kuò)展。提案和投票均由 ProposalsSystem.sol 處理,它根據(jù) periodEndsBlock 變量驗(yàn)證這些貢獻(xiàn)的時間。提出的每個提案都指向一個“父級”(它所響應(yīng)的提案),成功的提案會形成一個鏈接列表。
在提案期結(jié)束時,將計(jì)算每個提案的投票數(shù)。如果出現(xiàn)平局,則隨機(jī)選擇兩個提案中的一個(在未來的版本中,將此視為會產(chǎn)生分支的情況將會很有趣)。如果沒有提出任何提案,則故事結(jié)束。故事將被歸檔,玩家可以采取的下一步行動將是產(chǎn)生新的故事。
應(yīng)用(Applications)
我們設(shè)想,Sentences 在 10-50 名參與者的會議中發(fā)揮最佳作用,這些參與者可能彼此認(rèn)識,也可能不認(rèn)識,但本著原型傳說的精神聚集在一起。例如:在 Discord 上舉辦活動,目標(biāo)是在一小時內(nèi)生成五個新世界。
就其本身而言,Sentences 并不是特別令人興奮,它只是一種工具,而不是一個引人入勝的世界。然而,作為一個模塊化組件,Sentences 的敘事生成機(jī)制,可以很好地融入到更豐富的角色扮演游戲中,在游戲過程中編織游戲的結(jié)構(gòu)。投票機(jī)制還可用于支持在玩家生成的提示中包含生成輸出。
Sentences 當(dāng)前版本的一個弱點(diǎn)是初始提示的特殊性。這很容易為不同的部署進(jìn)行更改,但擴(kuò)展游戲的提示生成機(jī)制,以更符合敘事部分的開放性將會很有趣。
備擇方案
Sentences 的形式靈感來自基于文本的游戲、即興創(chuàng)作、傳說和 TTRPG。我們在制作這款游戲時參考的一些特定參考資料包括 Max Kreminski 的 Epitaph(一款奇幻敘事生成游戲)和 Kate Compton 的 Tracery 替代語法工具。這些項(xiàng)目利用簡單的隨機(jī)性和模塊化,來創(chuàng)建復(fù)雜的分支敘事,在我們的案例中,我們對這些原語在集體場景中使用的潛力很感興趣。
雖然 Sentences 在構(gòu)建世界時就考慮到了這一點(diǎn),并且在這方面有些主觀性(即:僅附加敘述),但人們也可以想象它被用于其他受限的協(xié)作寫作場景(比如:Toggle the table of contents Twitch Plays Pokémon?)。
擴(kuò)展和未來工作
Sentences 的一個明顯擴(kuò)展是,任何初始化世界的人都可以設(shè)置,關(guān)于如何將新句子附加到敘事中的具體規(guī)則。例如,這些規(guī)則可以修改投票系統(tǒng),要求一定數(shù)量的玩家才能繼續(xù)敘事,或者修改投票時間以減緩或加快敘事的發(fā)展。這樣一來,Sentences 不僅成為世界的原型設(shè)計(jì)工具,還成為產(chǎn)生特定故事風(fēng)格的約束和對話結(jié)構(gòu)的原型設(shè)計(jì)工具。
另一個同樣有趣的開發(fā)方向是從當(dāng)前世界的「死」分支中生成平行世界的選項(xiàng)。作為一種機(jī)制,最好的實(shí)現(xiàn)方式可能是生成一個帶有指向舊分支指針的新「新世界」合約,而不是從頭開始生成一個新世界。