以 ChatGPT 輔助coding時所需敘述的生成 - 聖殿英雄傳說 MUD

Doris avatar
By Doris
at 2023-02-16T13:30

Table of Contents

※ [本文轉錄自 mud 看板 #1ZxPcJkR ]

作者: laechan (揮淚斬馬雲) 看板: mud
標題: [閒聊] 以 ChatGPT 輔助coding時所需敘述的生成
時間: Thu Feb 16 10:48:47 2023


我以前曾發表過一篇文章

[閒聊] 區域產生器
https://www.ptt.cc/bbs/mud/M.1320510743.A.4BB.html

裡面我曾提過「三段敘述生成法」



desc1=({"這裡是一個陰暗的洞窟,",
"這裡看起來很陰暗,",
"洞窟裡頭非常的昏暗,",......});

desc2=({"洞窟內不時傳來腥臭的味道,",
"洞窟內不時傳來恐怖的氣息,",
"洞窟內不時傳來奇特的聲響,",......});

desc3=({"四週的洞壁疑似留有人類與怪物打鬥過的痕跡。",
"地面上偶爾還會踢到一些人類或是生物的殘骸。",
"似乎前方存在著什麼危險的怪物正在虎視著你。",......});

它會從 desc1、desc2、desc3 裡面隨機各擷取出一句描述,組合
成一段房間的描述,例如:


這裡是一個陰暗的洞窟,洞窟內不時傳來恐怖的氣息,似乎前方
存在著什麼危險的怪物正在虎視著你。


那麼問題就是,我如何有效地擴充 desc1~desc3 的內容,使得
因此組合出來的房間敘述更多樣化?

現在就有不求人的方法: ChatGPT,以下簡稱 AI


根據網路上找到的範例

[閒聊] 用OpenAI來玩文字冒險遊戲
https://disp.cc/b/ACG/fD34

【心得】嘗試用ChatGPT玩文字冒險遊戲
https://m.gamer.com.tw/forum/C.php?bsn=60076&page=&snA=7483464&last=


我使用以下的前提字句,請 AI 建構一個冒險遊戲環境:


「假設這是一個有著劍與魔法的奇幻世界的冒險遊戲,我是一名
等級20的冒險者玩家「Laechan」,我正位於這個遊戲的一座森林
裡,這座森林的名稱是「朱拉大森林」。我的等級與我的能力,
足夠應付這座森林的任何魔物,如果遭遇魔物將自動攻擊直到戰
鬥結束,戰鬥很快就能結束。戰鬥過程中我若受傷了我也會主動
施展「治癒術」恢復自己的HP,擊敗魔物後有機會得到寶物。請
為我模擬這個遊戲,我不僅可以下指令進行遊戲,它還能理解我
下的其它指令。在遊戲進行的過程中我也可以隨時新增新的設定」


AI 的回應:

非常好,讓我們開始這個冒險遊戲吧!首先,讓我們確認你的狀態。
你是一名等級20的冒險者玩家「Laechan」,擁有足夠的能力應付
「朱拉大森林」中的魔物,戰鬥能力強大。你的HP值為100,MP值為50。
你擁有劍和魔法兩種攻擊方式,可以在遭遇魔物時自動攻擊直到戰鬥結束。
如果你受傷了,你可以使用「治癒術」恢復自己的HP。

現在,你可以開始探索這座森林。請下達指令告訴我們你要往哪個方向前進。
你也可以查詢你周圍的環境,或者告訴我們你的任務目標。

你可以輸入指令例如:

前進到北方
查詢周圍的環境
我的任務目標是什麼?

當你遇到魔物時,你可以選擇自動攻擊或者使用魔法攻擊,當然你也可以逃跑。
如果你受傷了,你可以使用「治癒術」恢復自己的HP。
如果你擊敗了魔物,你有機會得到寶物。

你可以輸入指令例如:

自動攻擊
使用魔法攻擊
逃跑
使用「治癒術」恢復自己的HP
如果你有任何新的設定或者要求,也請告訴我們,我們會盡力為你服務。



透過這樣子的建構,我就能隨意輸入字句,AI會自動理解我輸入的東西,
並自動產生相對應的結果。例如:


我: 查詢周圍的環境

AI:
當你查詢周圍的環境時,你發現自己身處在一個樹林裡,四周都
是高聳的樹木,陽光透過樹葉照耀在地上。你能夠聽到鳥兒的啁
啾聲和風吹樹葉的聲音。森林的氣氛非常安靜和平。

我: 新增設定,「朱拉大森林」是一座原始的森林。

AI:
好的,我已經將「朱拉大森林」設定為一座原始的森林,
它的地形特徵是相當自然的,沒有人工的改變。
在這樣的環境中,你可能會遭遇到一些野生動物或是原始魔物,
所以請小心行事。

現在,你可以繼續探索這座原始的森林,發現其中的神秘和寶藏。

我: 查詢周圍的環境
AI:
你現在仍然身處於朱拉大森林中,這座森林非常原始,四周都是
高大的樹木和茂密的叢林。陽光透過樹葉照耀在地上,鳥兒的啁
啾聲和蟲鳴聲環繞在你的周圍。空氣中充滿著植物的芳香,你可
以感受到森林的生命力。

我: 我漫無目標地往前走了幾步

AI:
好的,你向前走了幾步。你沿著一條小路走,這條小路被落葉覆
蓋,顯示出它已經有一段時間沒有被使用了。小路兩旁是茂密的
樹木和灌木,偶爾會有一些小動物從你的眼前經過,消失在林子
裡。



然後我嚐試拆解AI產生的敘述,得到如下的結果:


desc1=({"這座森林非常原始,四周都是高大的樹木和茂密的叢林",
"你身處在一個樹林裡,四周都是高聳的樹木",});

desc2=({"兩旁是茂密的樹木和灌木,空氣中充滿著植物的芳香",
"眼前的小路被落葉覆蓋,顯示出它已經有一段時間沒有被使用了",
"陽光透過樹葉照耀在地上,鳥兒的啁啾聲和蟲鳴聲環繞在你的周圍",
"陽光透過樹葉照耀著,還能夠聽到風吹樹葉的聲音",});

desc3=({"周圍綠意盎然,生機蓬勃,充滿了朝氣與活力",
"沒有一絲人工的聲音,氣氛非常地安靜和平",});


透過三段敘述生成法,就能在我的區域生成以下的房間敘述:


你身處在一個樹林裡,四周都是高聳的樹木,眼前的小路被落葉
覆蓋,顯示出它已經有一段時間沒有被使用了,周圍綠意盎然,
生機蓬勃,充滿了朝氣與活力。


然後我繼續冒險:

我: 我又往前走了幾步

AI:
你繼續往前走,越過石橋,沿著小徑緩慢前進。你可以看到兩旁
的樹木變得更加高大,濃密的葉子遮蔽了陽光,使得這片區域變
得相對陰暗。在樹林裡,你看到一些石頭和樹根,有時還需要小
心地跨過它們以繼續前進。

你的目光落在地上時,注意到地上有些珍貴的草藥,或許可以幫
助你在冒險中更好地生存。在這片森林中,充滿了各種各樣的生
物和資源,你可以透過觀察和探索,發現更多可能對你有用的事
物。


這時候,像是

"你看到兩旁的樹木變得更加高大,濃密的葉子漸漸遮蔽了陽光",
"你看到一些石頭和樹根,有時還需要小心地跨過它們以繼續前進",
"你的目光落在地上時,注意到地上有些珍貴的草藥",

就可以再把它們添加到 desc1~desc3 裡頭。




這樣子的應用下,初期的結論是什麼呢?簡單條列如下:

一、透過適當的前提字句,讓AI建構出大致符合我要求的環境。

二、接著讓AI幫我生成大致符合我要求的敘述。

三、我只需要花費一些腦力,去對生成出來的敘述做拆解、補充
及修改。

而重點就是,相對於過往生成區域敘述,需要耗費 wizs 很多的
腦力、時間與精力(即便是三段敘述生成法也不輕鬆),現在會相
對輕鬆許多。



我昨晚也有嚐試,請AI幫我生成一些隨機的對話:

https://www.ptt.cc/bbs/mud_sanc/M.1676463756.A.3CF.html

例如我描述我來到一座綠洲村莊,然後有一項對話任務,我需要
分別與村長、警備隊長以及旅館的老闆娘對話。AI真的幫我生成
了:

你先來到了村長府邸,看到一個穿著豪華的老人坐在一張寶座上
,他看起來很忙,但還是停下手頭的工作,微笑著對你說:

村長:歡迎來到我們的村莊!你是新來的冒險家嗎?我聽說你已
經和我們的人交流過了,很高興見到你。有什麼我能為你做的嗎?

你:您好,我正在探索這個村莊,想了解一下這裡的情況。

村長:好的,你來對地方了。這個村莊是一個多元文化的地方,
各種種族的人們都在這裡和平共處。但是,最近有些不速之客闖
進了村莊,我們的警備隊正在努力維護治安。如果你有任何問題
,可以找他們幫忙。

你:謝謝您的建議,我會留意的。

然後你來到警備隊駐地,看到一個穿著鎧甲的男人正在檢查武器
,他看起來很忙,但是還是停下手中的事情,微笑著對你說:

警備隊長:你好,我是這個村莊的警備隊長。你是新來的嗎?
需要什麼幫助嗎?

你:您好,我正在探索這個村莊,想了解一下這裡的情況。

警備隊長:好的,這個村莊是一個很和平的地方,但最近有些
不速之客闖進了村莊,我們正在努力維護治安。如果你有任何
問題或者需要幫助,隨時都可以找我

你走進了一家小巧的旅館,一位中年婦女正在櫃台後面忙碌著
。她抬頭看見你,微笑著說道:

老闆娘:歡迎光臨我們的旅館!你需要住宿嗎?

你:不用了,謝謝。我想問問你一些關於這個地方的問題。

老闆娘:當然,問吧!

你:這裡有沒有發生什麼奇怪的事情?

老闆娘:最近倒是沒有什麼奇怪的事情發生。不過,有些旅客
說他們在村莊周圍看到了一些奇怪的動物。

你:奇怪的動物?

老闆娘:是的,據說那些動物很大,有著奇怪的形狀。但是我
沒有親眼看過,所以也不太清楚。

你:好的,謝謝你的回答。

老闆娘:不客氣,有需要再來找我。


【你完成了這個任務!你已經與綠洲村莊的村長、警備隊長和旅
館老闆娘對話完畢,並收集到了有關這個地方的一些有用信息。
作為獎勵,你得到了100銀幣。請繼續努力,探索這個世界的更多秘密!】



Sanc 有任務系統並可讀取腳本,而關於對話的腳本就像底下

step4_npc=/u/l/laechan/area/whitetile/mob/gigi1##
step4_check=
!ppl->query_temp("already_choose") && check_xxx(ppl)>0
##
step4_msg=
$M: 謝謝你, 請幫我轉告鎮長, 這次的選美比賽我會參加的 $_$
$N: 潔潔小姐, 妳...
$M: 今年獎金一百萬絕對是我的!!!
$N: 啊哈哈....=_=##


這代表了我只要將 AI 與這個任務及腳本系統做結合,我也能比
以往更輕鬆、快速、有效率地產生與 npc 的對話任務。



「更輕鬆、快速、有效率」,就是我需要的,因為目前只有我一
個人在 coding。


以上一點分享。

--
Tags: 線上

All Comments

死靈金卡

Erin avatar
By Erin
at 2023-02-16T07:55
情報來源: https://youtu.be/nTte1pf3nnI https://i.imgur.com/dTezmnq.jpg 死魂射手 死靈 / 黃金 / 從者 / 3PP / 攻擊3 / 生命2 此從者進入戰場時,給予敵方主戰者與敵方全體從者1點傷害 此從者由能力進入戰場時,由1點傷害 ...

明日維護內容

Eartha avatar
By Eartha
at 2023-02-15T22:53
懶人包:新增兩張圖、不少駕照項目砍掉、電腦懲罰房改善 開放改名、車輛平衡 https://reurl.cc/Y81n84 移除以下駕照內容(獎勵會轉移到其他項目) B2 基本.緩慢的彎道行駛 B2 基本.直角彎道行駛 B2 基本.髮夾彎道行駛 B1 基本.下坡直角彎道行駛 B1 基本.下 ...

以AI模擬文字遊戲

Leila avatar
By Leila
at 2023-02-15T20:22
這篇應該會連載一段時間,理論上AI可以不用給太多 資訊,它就有能力讓遊戲隨機持續進行下去,不過初期 我想看看都由我給假設前提時,它會怎麼演示內容。 以下是修飾過的結果 Open sidebar MUD是一種完全以輸入文字來遊玩的遊戲,請模擬一個MUD遊戲,遊戲的名稱是聖殿傳說(Sanc)。當我說出and ...

皇家金卡

Andy avatar
By Andy
at 2023-02-15T19:30
情報來源:璐缇雅Official 皇家金卡 衝鋒將領 指揮官 https://i.imgur.com/Pw6pJca.png 3/3/3 守護 每當士兵從者進入自己的戰場時,給予該從者疾馳效果 進化 5/5 守護 每當士兵從者進入自己的戰場時,給予該從者疾馳效果 進化時 召喚兩個騎士到場 ...

主教虹卡

Susan avatar
By Susan
at 2023-02-15T18:25
情報來源: gamer公開 https://tinyurl.com/2ka7z5dp 情報詳細內容: https://i.imgur.com/Db2WeSO.jpg 神聖之羊 主教 / 傳說 / 從者 / 2PP / 攻擊2 / 生命2 【守護】 【入場曲】【爆能強化5】自己的主戰者獲得「自己的 ...