MUD 危險了 ? - MUD Game
By Dinah
at 2019-07-13T17:39
at 2019-07-13T17:39
Table of Contents
本來打了一堆...改成閒聊一下。
身為 mud 的 coder 及管理者,我目前並不鼓勵任何人投入 mud
多人遊戲的開發,因為目前要「多人」很難,要投入人力去「開
發多人遊戲型 mud」更難。
我很早就有想過這一點,比方以區域來說,我自2013年起,就有
寫一些輔助工具,用來縮短創作區域的時間,目前已能做到可在
短時間內:
1.產生區域 x-x 地圖及建議行走路線
2.依照 x-x 地圖產生區域房間,其路線與 x-x 一致
3.依三段敘述原則,寫三個陣列存每一段的敘述,再隨機組合它
們,就能產生每個房間所需的敘述
4.不撰寫怪物檔,改撰寫怪物設定集,再透過程式讓它讀取設定
write_file成怪物 .c 物件檔,再透過適當寫法讓這個區域總
是有怪物,怪物量總是維持在一定數量內。
5.怪物掉落物的部份,不撰寫實體物品檔,而是改撰寫虛擬物品
設定集,就能讓怪物改掉落虛擬物品。
6.甚至也不寫 npc 了,改撰寫 npc 設定集,房間載入時就依照
設定集產生 npc。
7.甚至也不在房間寫 init 去寫任務或 ask/answer 這些了,撰
寫任務系統,通通使用 quest 指令就搞定了。
8.甚至撰寫副本系統,讓同一個區域可在同時間產生多個副本,
滿足多個玩家想同時打這個區域(且各自獨立)的期望,還可以
辦比賽,同時進副本,看誰最快通關。
.
.
可是寫了這麼多,最終會卡在一個東西----素材。
素材是什麼呢?比方以小說刀劍神域為例,桐人最後釋出了茅場
晶彥給他的 the seed 世界的種子,這東西是什麼呢?依照小說
的描述:
==============================================================
世界的種子.
那是茅場開發的,為了能運行基于完全潛行系統的全感覺VR環境
,它還擁有一系列文件名以"THESEED"開頭的接口程序.
茅場整理了自動運行的SAO服務器的"cardinal【カーディナル】"
系統進行縮編【ダウンサイジング】,不僅留下了小規模服務器
能運行的部分,也留下能夠讓其在更高級的服務器上運行的游戲
開發支援環境組件包。
也就是說,想要創造VRWORLD的話,就算利用回路一般的服務器,
只要將接口程序下載,進行3D建模設計,或者干脆利用現成的配置
,如果程序能夠運行,就能誕生一個世界。
==============================================================
素材指的就是上面的開發支援環境組件包。
例如以星海爭霸這個遊戲來說,它的地圖編輯器就類似這樣的東
西,它提供了很多組成區域的素材,讓使用者可創建各式各樣的
區域。
https://www.youtube.com/watch?v=pNhJPQvW-pc
mud 房間的組成要素之一,區域敘述,我上面提到的三段敘述組
合方式,就有一點像是在寫這個區域所需的房間所需的敘述的素
材:
第一段敘述群──┐
第二段敘述群──┼─隨機組合成一個房間敘述
第三段敘述群──┘
而我思考的「素材」則是更根源的
區域敘述素材一──┐
區域敘述素材二──┤ ┌─第一段敘述群──┐
區域敘述素材三──┼──┼─第二段敘述群──┼─隨機組合成一個房間敘述
. │ │ └─第三段敘述群──┘
. │ │
區域敘述素材X──┘
以沙漠這樣的區域為例,一般會有一些常見的詞兒,例如:
沙漠、沙地、黃沙、飛沙、沙礫、荒涼、死寂、燥熱、酷熱、炙
熱、豔陽、寬廣、無邊、流砂、綠洲、仙人掌、駱駝、蠍子、禿
鷹、地平線、.....
透過適當的組合器,可隨機組合出下面的東西:
酷熱 寬廣 無邊 黃沙
↓
在這片既酷熱又寬廣無邊的黃沙裡
荒涼 沙地 禿鷹
↓
幾隻飢渴的禿鷹盤旋於荒涼的沙地之上
死寂 蠍子
↓
四周是死寂的世界,除了幾隻偶爾會突然躦出來的蠍子
然後組合成一個基本的房間敘述:
在這片既酷熱又寬廣無邊的黃沙裡,幾隻飢渴的禿鷹盤旋於荒涼
的沙地之上,四周是死寂的世界,除了幾隻偶爾會突然躦出來的
蠍子。
我認為最基本的,是要提供素材,以及適當的素材組合方式,至
於像「在這片既酷熱又寬廣無邊的黃沙裡」這樣的敘述則可以透
過人腦去「腦補」,不一定要提供完整的自動產生方式,也就是
說:
超詳細的素材 + AI級的組合程式 → 馬上可用的敘述
不需要。
┌─────────────────────┐
↓ │
夠多的素材 + 適當的組合程式 → 產生隨機組合 → 無法用,捨棄 →┘
│
└───→ 可用,靠腦補產生可用的敘述
至少要能做到這樣。
當很多相關的物件都有足夠多的素材+適當的組合程式,可藉此
產生可用的各式各樣的「描述」時,mud 說穿了就是一堆描述的
組合,開發才會快,才會順。
也就是說,傳統上,所謂釋出一個 mudlib 給人架 mud,以現代
的角度來看,那個幾乎得從無到有去開發,並開發到一個程度才
能真的拿來玩。應該要釋出的,是裡面已包含架 mud 所需的各種
素材包,我拿到這個 mudlib,比方我要寫什麼,素材包裡面就已
包含我想要的各種材料,我直接拿來用就好了不用從無到有。
那 mud 實際上是各種文字的組合,可隨意複製貼上,這代表開發
敘述(描述)的環境不一定要寫在 mud 裡頭。什麼叫開發環境不一
定要寫在 mud 裡頭呢,底下我曾貼過的東西就是例子:
http://sites.google.com/view/randomapv1
我可以在「外部」產生出我想要的東西,再複製貼到「mud 內」
同理,我上面提到的東西也一樣,我們假設將來有一個網頁工具
,它的介面如下
請選擇物件: 區域 請選擇區域類型: 森林 [執行]
第一段敘述產生區
┌───────────────────────────────────┐
│#define LONG_MSG1 ({\ │
│"越往樹海的中心走,越感受到自己踏入的是一座非常古老的原始森林",\ │
│"道路上遍佈著落葉,但令你感到奇怪的是,斷枝卻十分稀少",\ │
│"存在已久的森林總是有幾個令附近的城民感到恐懼的傳說",\ │
│}) │
└───────────────────────────────────┘
第二段敘述
┌───────────────────────────────────┐
│#define LONG_MSG2 ({\ │
│"森林覆蓋範圍每年都在變化,彷彿這些林木是種在會移動的植披地毯似的",\ │
│"明明就沒有風,頭頂卻傳來像是風吹過的樹枝嘎吱聲響",\ │
│"這座森林的可怕傳說,一定程度降低了附近城民屯墾的意願",\ │
│}) │
└───────────────────────────────────┘
第三段敘述
┌───────────────────────────────────┐
│#define LONG_MSG2 ({\ │
│"道路被層層交錯纏繞的巨大根藤覆蓋\,嚴重拖慢著前進的速度",\ │
│"遍佈著落葉的道路走起來有點滑,走起路來得小小翼翼哪",\ │
│"一路上都看不到啥人,真不曉得眼前這條看似道路的東西是怎麼形成的",\ │
│}) │
└───────────────────────────────────┘
使用者可以一直按 [執行] 鈕,它會一直產生隨機的三段敘述集
,看到中意的就是複製貼上,甚至可自己再改一下,就能產生適
合自己區域的三段敘述集,貼到以指定的 mudlib(the seed) 所
架的 mud 所指定的地方 save 起來,就能讓自己的區域產生出敘
述。
概念是這樣。
當區域的房間敘述可藉由工具產生時,想想這可節省多少開發時
間,然後不只是區域敘述,比方 npc 的中英文名字、技能名字、
npc 的描述語句、怪物的攻擊方式描述、技能的招式名、技能的
招式敘述等......通通都有對應的工具可藉以產生。
例如以 sword 類的持劍 en 類攻擊為例,可能有:
$N手握$W對著$O使出$S
$N手握$W, 對$O使出$S
$N手握$W, 一招$S劃向了$O
$N順手揮出$W刺向$O
$N使出一招$S擊向了$O
$N反手使出了$S砍向$O
$N手握$W, 一招$S砍向$O
$N手握$W, 施展$S斜刺$O
$N手握$W, 一招$S疾刺$O
$N手握$W, 以一招$S直劈$O
.
.
各位想想看,劍類的 en 攻擊可能很多 mud 都有,都要寫,難
道叫每個架站的人或是 coder 都從零開始寫嗎?那會浪費多少
寶貴的時間----只為想這些每個 mud 都有的東西。
雖然這篇是重打的但好像還是講了落落長一堆..抱歉..
想說的是,如果真的要從現在開發一個新的 mud,那應該優先思
考的,是怎麼在一開始,節省大家花在「開發」上的時間。
(後續還有很多多人共同開發會面臨到的問題先不談)
比方假設要寫 SAO 的艾恩葛朗特區域,它是一個百層區域,每一
層實際上都類似一座大陸區域(裡面為大大小小各型區域的複合)
,那可以思考的是,有沒有什麼快速開發這類區域的手段?
--
身為 mud 的 coder 及管理者,我目前並不鼓勵任何人投入 mud
多人遊戲的開發,因為目前要「多人」很難,要投入人力去「開
發多人遊戲型 mud」更難。
我很早就有想過這一點,比方以區域來說,我自2013年起,就有
寫一些輔助工具,用來縮短創作區域的時間,目前已能做到可在
短時間內:
1.產生區域 x-x 地圖及建議行走路線
2.依照 x-x 地圖產生區域房間,其路線與 x-x 一致
3.依三段敘述原則,寫三個陣列存每一段的敘述,再隨機組合它
們,就能產生每個房間所需的敘述
4.不撰寫怪物檔,改撰寫怪物設定集,再透過程式讓它讀取設定
write_file成怪物 .c 物件檔,再透過適當寫法讓這個區域總
是有怪物,怪物量總是維持在一定數量內。
5.怪物掉落物的部份,不撰寫實體物品檔,而是改撰寫虛擬物品
設定集,就能讓怪物改掉落虛擬物品。
6.甚至也不寫 npc 了,改撰寫 npc 設定集,房間載入時就依照
設定集產生 npc。
7.甚至也不在房間寫 init 去寫任務或 ask/answer 這些了,撰
寫任務系統,通通使用 quest 指令就搞定了。
8.甚至撰寫副本系統,讓同一個區域可在同時間產生多個副本,
滿足多個玩家想同時打這個區域(且各自獨立)的期望,還可以
辦比賽,同時進副本,看誰最快通關。
.
.
可是寫了這麼多,最終會卡在一個東西----素材。
素材是什麼呢?比方以小說刀劍神域為例,桐人最後釋出了茅場
晶彥給他的 the seed 世界的種子,這東西是什麼呢?依照小說
的描述:
==============================================================
世界的種子.
那是茅場開發的,為了能運行基于完全潛行系統的全感覺VR環境
,它還擁有一系列文件名以"THESEED"開頭的接口程序.
茅場整理了自動運行的SAO服務器的"cardinal【カーディナル】"
系統進行縮編【ダウンサイジング】,不僅留下了小規模服務器
能運行的部分,也留下能夠讓其在更高級的服務器上運行的游戲
開發支援環境組件包。
也就是說,想要創造VRWORLD的話,就算利用回路一般的服務器,
只要將接口程序下載,進行3D建模設計,或者干脆利用現成的配置
,如果程序能夠運行,就能誕生一個世界。
==============================================================
素材指的就是上面的開發支援環境組件包。
例如以星海爭霸這個遊戲來說,它的地圖編輯器就類似這樣的東
西,它提供了很多組成區域的素材,讓使用者可創建各式各樣的
區域。
https://www.youtube.com/watch?v=pNhJPQvW-pc
mud 房間的組成要素之一,區域敘述,我上面提到的三段敘述組
合方式,就有一點像是在寫這個區域所需的房間所需的敘述的素
材:
第一段敘述群──┐
第二段敘述群──┼─隨機組合成一個房間敘述
第三段敘述群──┘
而我思考的「素材」則是更根源的
區域敘述素材一──┐
區域敘述素材二──┤ ┌─第一段敘述群──┐
區域敘述素材三──┼──┼─第二段敘述群──┼─隨機組合成一個房間敘述
. │ │ └─第三段敘述群──┘
. │ │
區域敘述素材X──┘
以沙漠這樣的區域為例,一般會有一些常見的詞兒,例如:
沙漠、沙地、黃沙、飛沙、沙礫、荒涼、死寂、燥熱、酷熱、炙
熱、豔陽、寬廣、無邊、流砂、綠洲、仙人掌、駱駝、蠍子、禿
鷹、地平線、.....
透過適當的組合器,可隨機組合出下面的東西:
酷熱 寬廣 無邊 黃沙
↓
在這片既酷熱又寬廣無邊的黃沙裡
荒涼 沙地 禿鷹
↓
幾隻飢渴的禿鷹盤旋於荒涼的沙地之上
死寂 蠍子
↓
四周是死寂的世界,除了幾隻偶爾會突然躦出來的蠍子
然後組合成一個基本的房間敘述:
在這片既酷熱又寬廣無邊的黃沙裡,幾隻飢渴的禿鷹盤旋於荒涼
的沙地之上,四周是死寂的世界,除了幾隻偶爾會突然躦出來的
蠍子。
我認為最基本的,是要提供素材,以及適當的素材組合方式,至
於像「在這片既酷熱又寬廣無邊的黃沙裡」這樣的敘述則可以透
過人腦去「腦補」,不一定要提供完整的自動產生方式,也就是
說:
超詳細的素材 + AI級的組合程式 → 馬上可用的敘述
不需要。
┌─────────────────────┐
↓ │
夠多的素材 + 適當的組合程式 → 產生隨機組合 → 無法用,捨棄 →┘
│
└───→ 可用,靠腦補產生可用的敘述
至少要能做到這樣。
當很多相關的物件都有足夠多的素材+適當的組合程式,可藉此
產生可用的各式各樣的「描述」時,mud 說穿了就是一堆描述的
組合,開發才會快,才會順。
也就是說,傳統上,所謂釋出一個 mudlib 給人架 mud,以現代
的角度來看,那個幾乎得從無到有去開發,並開發到一個程度才
能真的拿來玩。應該要釋出的,是裡面已包含架 mud 所需的各種
素材包,我拿到這個 mudlib,比方我要寫什麼,素材包裡面就已
包含我想要的各種材料,我直接拿來用就好了不用從無到有。
那 mud 實際上是各種文字的組合,可隨意複製貼上,這代表開發
敘述(描述)的環境不一定要寫在 mud 裡頭。什麼叫開發環境不一
定要寫在 mud 裡頭呢,底下我曾貼過的東西就是例子:
http://sites.google.com/view/randomapv1
我可以在「外部」產生出我想要的東西,再複製貼到「mud 內」
同理,我上面提到的東西也一樣,我們假設將來有一個網頁工具
,它的介面如下
請選擇物件: 區域 請選擇區域類型: 森林 [執行]
第一段敘述產生區
┌───────────────────────────────────┐
│#define LONG_MSG1 ({\ │
│"越往樹海的中心走,越感受到自己踏入的是一座非常古老的原始森林",\ │
│"道路上遍佈著落葉,但令你感到奇怪的是,斷枝卻十分稀少",\ │
│"存在已久的森林總是有幾個令附近的城民感到恐懼的傳說",\ │
│}) │
└───────────────────────────────────┘
第二段敘述
┌───────────────────────────────────┐
│#define LONG_MSG2 ({\ │
│"森林覆蓋範圍每年都在變化,彷彿這些林木是種在會移動的植披地毯似的",\ │
│"明明就沒有風,頭頂卻傳來像是風吹過的樹枝嘎吱聲響",\ │
│"這座森林的可怕傳說,一定程度降低了附近城民屯墾的意願",\ │
│}) │
└───────────────────────────────────┘
第三段敘述
┌───────────────────────────────────┐
│#define LONG_MSG2 ({\ │
│"道路被層層交錯纏繞的巨大根藤覆蓋\,嚴重拖慢著前進的速度",\ │
│"遍佈著落葉的道路走起來有點滑,走起路來得小小翼翼哪",\ │
│"一路上都看不到啥人,真不曉得眼前這條看似道路的東西是怎麼形成的",\ │
│}) │
└───────────────────────────────────┘
使用者可以一直按 [執行] 鈕,它會一直產生隨機的三段敘述集
,看到中意的就是複製貼上,甚至可自己再改一下,就能產生適
合自己區域的三段敘述集,貼到以指定的 mudlib(the seed) 所
架的 mud 所指定的地方 save 起來,就能讓自己的區域產生出敘
述。
概念是這樣。
當區域的房間敘述可藉由工具產生時,想想這可節省多少開發時
間,然後不只是區域敘述,比方 npc 的中英文名字、技能名字、
npc 的描述語句、怪物的攻擊方式描述、技能的招式名、技能的
招式敘述等......通通都有對應的工具可藉以產生。
例如以 sword 類的持劍 en 類攻擊為例,可能有:
$N手握$W對著$O使出$S
$N手握$W, 對$O使出$S
$N手握$W, 一招$S劃向了$O
$N順手揮出$W刺向$O
$N使出一招$S擊向了$O
$N反手使出了$S砍向$O
$N手握$W, 一招$S砍向$O
$N手握$W, 施展$S斜刺$O
$N手握$W, 一招$S疾刺$O
$N手握$W, 以一招$S直劈$O
.
.
各位想想看,劍類的 en 攻擊可能很多 mud 都有,都要寫,難
道叫每個架站的人或是 coder 都從零開始寫嗎?那會浪費多少
寶貴的時間----只為想這些每個 mud 都有的東西。
雖然這篇是重打的但好像還是講了落落長一堆..抱歉..
想說的是,如果真的要從現在開發一個新的 mud,那應該優先思
考的,是怎麼在一開始,節省大家花在「開發」上的時間。
(後續還有很多多人共同開發會面臨到的問題先不談)
比方假設要寫 SAO 的艾恩葛朗特區域,它是一個百層區域,每一
層實際上都類似一座大陸區域(裡面為大大小小各型區域的複合)
,那可以思考的是,有沒有什麼快速開發這類區域的手段?
--
Tags:
線上
All Comments
By Hazel
at 2019-07-17T15:49
at 2019-07-17T15:49
By Ida
at 2019-07-21T13:59
at 2019-07-21T13:59
By Callum
at 2019-07-25T12:09
at 2019-07-25T12:09
By Eden
at 2019-07-29T10:20
at 2019-07-29T10:20
By Ophelia
at 2019-08-02T08:30
at 2019-08-02T08:30
By James
at 2019-08-06T06:40
at 2019-08-06T06:40
By Faithe
at 2019-08-10T04:50
at 2019-08-10T04:50
Related Posts
15兄弟求健檢
By Todd Johnson
at 2019-07-13T17:08
at 2019-07-13T17:08
狂魔像主教怎麼玩有想法嗎?
By Delia
at 2019-07-13T14:05
at 2019-07-13T14:05
MUD 危險了 ?
By Aaliyah
at 2019-07-13T13:18
at 2019-07-13T13:18
OCP 2019 S2 Week 5 Day 2
By Elvira
at 2019-07-13T10:56
at 2019-07-13T10:56
請問現在主流武器是什麼?
By Puput
at 2019-07-13T10:53
at 2019-07-13T10:53