1989年的八月,CARNEGIE MELLON的一個研究生在一個周末寫了一個叫做TinyMUD的游戲。那是一個簡單的,多用戶的游戲。在互聯網只要誰知道他的地址與端口(lancelot.avalon.cs.cmu.edu 4201),那么誰就可以得到這個游戲。然而TinyMUD并不是最開始的MUD游戲,這個游戲容易使用,并且可被移植到許多UNIX系統上。這使得MUD風潮像爆炸一樣風靡世界至今未衰。現在的各種MUD游戲就在你的身邊,另你目不暇接。
MUDs(多用戶空間)有如下的各種優點:
許多人可以一起玩;
游戲被分成許多虛擬的空間以便在一個空間的人或物不會影響到另一個空間的人或物;
所有的交互內容以文字出現,沒有圖片或聲音;
通訊靠TCP套接字實現;
大多數代碼由學校里的學生來完成維護并且可以公開地得到;
實物,空間和人物的組合可以由簡單的命令來完成,而其他語言編寫的MUD游戲允許有更復雜的命令和道具;
盡管MUD是為了一個嚴肅的目的而出現的,但是它仍然保持著原始冒險或RPG游戲的氣氛;而且游戲玩家的身份并不被現實所束縛,MUD里的游戲的角色有現實虛擬如一的人,有毛茸茸的動物,有科幻故事里的英雄,以及所有可愛的,丑陋的,令人討厭的,智慧的人,或者僅僅是一個平常的怪人。
JIM ASPENS(現在是YALE大學的老師)認為TinyMUD無足輕重,很快就會喪失掉新意。他有了些想法卻又舉棋不定,這對MUD游戲的優點和缺點都有一定的影響。
從地獄開始:MUD游戲--內存VS硬盤
早期的MUD游戲傾向于把大部分游戲數據放到硬盤上。當玩家需要時,空間和物體的數據從硬盤上被取出來。這種方式很慢。
TinyMUD把所有的數據都放在內存里面。這種設計假設數據不會變得特別多。實際上,對于小的MUD游戲,基于內存的數據存儲是很快的。但當數據量增加得很多時,進程會開始頻繁地在硬盤和內存之間交換數據。系統的負載會由于頁面錯誤的集中出現而攀升。許多系統結構都有一個處理數量限制。ASPENS最終拋棄了TinyMUD當它在他的機器上達到了32M處理數量極限而崩潰的時候。MUD游戲的數據膨脹使問題惡化了,導致巨大的個人對象(INDIVIDUAL OBJECT),甚至后臺進程。LambdaM00,運行在SparcCenter 1000上的Xerox Parc平臺上,在1994年就要求有198M給予進程并且數據要占有80M的硬盤空間。
很大的基于內存的MUD游戲的表現不盡人意眾所周知。盡管有大量的優秀的MUD程序員,直到很晚這個數據層的改進問題才被考慮到。有以下幾點原因:
無知。很多學生懂得C語言,但幾乎沒有MUD程序員研究過數據庫的設計。我還記得在新聞組rec.games.mud上,一個學生堅持認為基于硬盤的MUD游戲會把硬盤搞得疲勞不堪。
習慣。有很多MUD游戲是基于硬盤的。包括Marcus Rarnum(那時是DEC的員工)的UberMUD和UnterMUD和Andrew Molitor(Wesleyan大學的研究生)的TeenyMUD,是Andrew Molitor諸多計劃中的一個。UberMUD,用到了b+樹型數據結構,但被證明對于大多數MUD程序員是相當復雜的。UnterMUD用到了hash表,使用了很高明的緩沖技術而提高了數據訪問速度。這種技術被用到了一些商業MUD產品中。但是這種數據結構不允許一些MUD程序員所喜好的操作,比如檢查數據對象的總數量。UnterMUD的數據結構,也就是緩沖技術,已經被應用于其他一些服務器中,比如MUSH 2.0。
至少有一種運行得很長時間的TeenyMUD。TeenyMUD使用了一種平直的文件,這種文件使用了一種直接索引方式,和hash搜索同樣有效,盡管比之于UnterMUD和UberMUD在緩沖技術方面還欠缺一點點。它的資源占用率很低,對于那些只想試用MUD一兩個星期的人很適用。但是,那些喜歡小玩意的MUD程序員常常忽視了TeenyMUD因為它缺少一種可編程的環境。不言自明,如果你的服務器是完全基于內存,而你的MUD進程增長迅速使得依靠硬盤的方式變得很誘人的話,那么在這個時候要不損壞數據而更換服務器則太晚了。
基于硬盤方式不是一種萬能鑰匙。它使得checkpoint(當服務器運行時做備份)變得很復雜。一種技術上的意見認為基于硬盤的數據結構不會增進效率,如果這些數據夠多。理論上,經常被訪問的數據對象的緩沖會被放在內存中。,當需要時,這些數據就被交換到進程地址空間里面。既然對象不能因為分布狀況而被組合到數據頁上,任何順序地訪問大量數據的操作都會使進程運行艱難。操作系統比大多數應用程序要更善于交換數據,一個基于硬盤的數據庫比一個基于內存的數據庫要痛苦一些。基于硬盤方式仍然會給數據增長加上一個令人滿意的上限,盡管硬盤映像會變地更大,更臃腫,有更多的碎片。
與其找尋一種復雜的方法來解決數據增長問題,許多MUD游戲寧愿依靠一種公共的約束或rm -rf(rm:Unix命令-刪除)和一切從新開始者來構建數據庫。很不幸,這種標志之一以及一個成功的MUD游戲的副作用就是在程序大小和子進程數量兩方面的增長。————————
應該注意到硬盤,內存和cpu要占用較多的系統資源。一個50個用戶的MUD游戲要占用一個FTP進程的一定比例的網絡帶寬而且不會使通訊顯著地減慢。
在1989年和1994年之間,普通互聯網主機上的內存和cpu性能增長了一到兩個數量級。但是在1989年,只有很少數的人曾經登錄到有額外的 CPU周期分給MUD游戲的互聯網主機上,特別是一個那種能控制整個的工作站使其他進程不能以合理的反應時間運行的主機。
同時,隨著MUD玩家把游戲介紹給他們的朋友,一定數量的大學生開始迷上了MUD游戲。但給予MUD的CPU周期仍然增長緩慢。這種不和諧導致了兩個結果。
人們開始在任意的地方運行MUD,也不請求得到系統管理員的允許。1990年,某個使用GNU群件的人總會在一個機器上發現四到五個MUD在運行,而用戶要干點實際的工作就必須殺死這些MUD進程。
在某個正在發展的虛擬社區里,掌握著可以運行MUD的資源的人總是有著很大的權力,甚至要超過他們對繼續改進MUD所需投入的時間和精力。
這樣我們就碰到了關于MUD的第二個問題
究竟是哪些人的游戲呢?
ASPNES認為他的游戲可能在幾個星期后人們就會對之興味索然。然而確沒發生這樣的情況,他于是就繼續運行他的游戲。很多用戶認為TinyMUD,還有他們在構建這個游戲的努力,會永遠持續下去(或者至少是在他們畢業之前,還有機會接觸網絡的時候)。同時,ASPNES,他是一個游戲中的巫師,當游戲變得越來越大,越來越難以控制的時候,卻越來越懶地維護他的 MUD游戲,不去管理資源使用,也不去觀察游戲參與者的行為了。
一個用戶在TinyMUD上的所建對象的數目的限制只是一個“錢”(當然是游戲中的貨幣)的問題。玩家需要數個便士來建造空間和對象。一個玩家開始是一分錢也沒有的,但卻可以通過訪問別人的建筑或尋找寶藏來賺一些錢。有野心的建造者很快發現計算金錢的系統可以用宏來屏蔽掉以便不斷地攫取有價值的寶藏。這對那些有野心的龐大建筑計劃者很合口味。但對其他人來說,例如,他們建造了500個對象,卻被告知:“你找到了一分錢!”。他們被留在了鎮子的中心,以至于任何經過此地的人都必須看著這500個對象的列表。一旦這些對象被去掉,它們仍被加到數據庫里直到有人發出了一個工作循環命令。
TinyMUD的一些部分以線性的方式延伸,比如街道和地下鐵道。另外的部分卻互相交織在一起。有些電話亭連接了四到五個方向。WESLEYAN大學的蒸氣管道連接到了FLORIDA大學的校園里。臺灣竟就在劍橋的旁邊。還有一些謎語,包括巨洞歷險的遺跡。還有住宅,準確地說,是一個住宅。。
REC ROOM是一個早期的數據庫。它有一些玩具和場景。REC ROOM的主人讓別人可以連到數據庫上還為建造著提供了自由的外出的通道。因此任何建造了些對象的人都作了一個入口和出口同道連到了REC ROOM上,以代替數據庫的線性部分。很快REC ROOM成為一個生存的場所,但也是一個交通要沖。
同時,一小部分MUD玩家在建造,而只有極少數的人在探索。更多人把TinyMUD作為一個有家具的交談系統。曾經有過議論要是鼓勵,或甚至于強迫玩家去探索。但是,定居卻成為MUD游戲里與建造和探索相競爭東西。大多數服務器把交談設置得同建造一樣復雜。
當人們在一個虛擬的空間里聚集的時候,就意味著任何想搞點破壞的人可以寫一個程序連到MUD上,找到那個房間,發出大量的字符,那么MUD就會死掉。
對于TinyMUD的這些已被發現的缺點,擁有資源的MUD玩家,或者從別人那里能搞到機器運行MUD的人,開始設計新的MUD游戲。這些新的MUD游戲在建造方面有某種中央建設的計劃,或者至少在哪個人把什么東西放在什么地方的問題上有限制。所有這些育游戲都有更加積極的巫師。建造方面的限制導致了爭吵,偶爾甚至相當有強調性和尖刻。建造者可以看到他們的杰作被巫師循環掉以減少數據庫的在內存和硬盤間的交換數據。“REC ROOM現象”使建造一般空間的的人被提升到實際上的巫師的地位,他們能控制哪一個人能進入或者建造新的建筑到公共的空間里去。這些人的力量只在系統管理員之下其他人之上。
MUD玩家大多數是大學學生,他們剛剛發現所謂“言論自由”和“藝術性表達”的概念。他們通常是狂野的,也是毫無效果地把這些想法加到數據庫上的項目里。而對于MUD游戲的下一個階段的矛盾已經被埋下伏筆,而且至今仍未被解決。
哪些人擁有MUD數據庫呢? 系統管理員? 巫師(在MUD游戲中有著編程和管理系統權限的人)? 還是那些揮灑了汗水建造游戲中風景的人?
一個數據庫只是一個文件。如果你拷貝下來又會發生什么呢? 哪些人又有這些拷貝呢? 如果在不同的機器上有著同一個數據庫的兩個拷貝在運行呢?
如果MUD游戲的規則或者是管理員定的規則發生了變化,那么反對這些規則的玩家能不能摧毀他們的建筑呢? 如果玩家沒有什么舉動,是不是就意味著他們贊同新個規則呢? 如果玩家的建筑包含了“公共”空間或vital topological interlink呢?
玩家有沒有權力參與MUD游戲? 他們有沒有權力去建造呢? 對于那些公平地參與者會不會有限制呢? 對于那些在建筑上進行了投資的玩家對數據庫能有影響么? (Can it be decommissioned over their protests?)
分布式MUD游戲,(就象所有其他的分布式的東西一樣。) 已經被作為數據庫所有權問題和所有其他常見的錯誤的解決方案被提出來了。而且已經有了一些初步成功的分布式MUD游戲的實驗。玩家能夠從一個MUD游戲毫無困難地走到另一個MUD游戲。如果被拒絕的話,人們可以簡單地“拿起他們的玩具回家”。但是,分布式MUD游戲卻不怎么流行。
很自然,如果用戶權限的問題不被解決的話,對于那些有著用戶分級的系統就不會有令人滿意的解決方案。一個MUD系統管理員可能會選擇去相信一些主機上的MUD系統,但是如果其中的一個MUD因為疏忽而出現了安全問題,他們可以允許制造麻煩的人從這個MUD中出去然后登錄到另外的主機上。
而且,一個分布式的MUD游戲要求每個參與的MUD系統都使用同樣的服務器代碼,或者至少是一個同樣的數據庫層。我還不知道有任何的令人滿意的解決方案來解決游戲玩家把游戲中的東西從一個MUD帶到另一個MUD中的問題。
做你想做的,那就是規則的全部含義。
正如其他的系統的管理員所知道的,人們對于共享的計算機資源和對于真實生活的資源都同樣的不是很有理性。在沒有一個積極的系統管理員的情況下,開始的TinyMUD的數據庫不僅變得很大而且亂七八糟。網絡上有著年青的,未諳世事的年青人,他們喜歡搞破壞,而不是為自己建設。甚至能用一些簡單的編程工具來制造系統災難。在MUD上這可能變得更加糟糕,因為網絡上對于匿名用戶的許可使的一般人也可以對網絡安全造成威協。
MUD只是游戲,但是大多數系統管理員和玩家都普遍認為MUD是很有趣的,對于大多數人,接收端的煩惱并不是很有趣。但是對于煩惱到底是什么的問題卻比編程時的問題要更加痛苦。狂暴的舉動或者是淫穢的內容能保護語言性的或藝術性的表達么? 或者對于那些平靜的玩家是一件煩人的事情?扮演一角色會給一個玩家粗魯的或侵虐的性格么?
當實際上沒有什么社會規范時強迫玩家遵守社會規范沒有什么用處。在一個MUD上,性別,種族,狀態,甚至地球引力都不是他們看上去那么回事。一個人可以很好地理解,當那些憂郁的,或毛絨絨的,或那些可以飛的人堅持認為新手會在現實生活中和MUD中一樣行動,所帶來的混亂。而且,一種社會規范會成為一個社會團體存在的前提。一些學生利用學習的間隙想些別的事情而不是考慮關于道德的事情。
不管MUD游戲系統是不是社團,象泥(mud)水坑里會生蟲一樣,他們也產生了、管理機構。通常,對于系統管理員有三種理解。
有象JIM ASPNES式的“放任自流”模式。這種MUD游戲趨向于毫無規律地快速增長,也沒有人去踢出那些搗亂的人。沒有一個積極的管理員,許多MUD社區<使用了一種強有力的MUD客戶端軟件作為主持正義的義務警察。防御的功能包括:禁止問題玩家的輸出。對于攻擊的問題,有可能采用/usr/dict/words(是一個UNIX下的字典文件,有大概400多K字節)來把對方給趕跑,特別是當對方的客戶端沒有你的強大時。
另一個方面,一些MUD游戲采用了另一種轉移的方式,組織了一個以可憎的行為為規范的社區,交互的集中形式是TinyMUD 的“kill”的命令。CATHARSIS是一個很多人知道的虛擬王國,那里不需勞神費事,淫穢的內容就可以被提升到藝術的高度。
一些MUD游戲采取了自動管理的模式。這種方式工作得相當不錯,如果管理機器的人員就是MUD的頂級巫師,而且經常上線玩,因此熟知其他玩家,并且能觀察到不斷出現的問題的話。許多這樣的MUD游戲也使用一種用戶注冊的方式,使任何一個人想玩的人都必須回復一個有效的地址。而生事的家伙也就永遠toaded. 這個系統最大的缺陷就是一個獨裁的MUD只會接納喜歡,或者至少是能容忍,頂級巫師的人。......
第三個可能是在大多數有能力的玩家中選出人來產生一個合作控制的MUD游戲管理模式。有人幽默地指出道:冒險式的MUD 游戲,允許用戶通過猜迷,殺死巫師直到他們也到了巫師階段,然后才開始建造自己的東西。TinyMUD和與之類似的MUD同類有一個相似的分級方式:玩家們通過和巫師外出游歷直到他們也變成巫師來取得分數。有一些運行了很長時間的MUD使用了一種合作式的管理方式,通常是又投票來決定。當巫師和玩家分成了不同的派別,互相譴責對方粗野的不正當的行為,特別是在公共的論壇里的比如USENET里,這些MUD產生了復雜的或者是丑惡的政治問題
在另一個方面,政治是現實生活的一個不可避免的部分。一些玩家可能會認為政治很好玩,但是另外的人對此報著悲觀恐懼的看法。互聯網正在變得越來越擁擠,而這種早期的令人喜悅的無政府的狀態可能會轉變為一種更復雜的,但可以接受的狀態。
總結:你不能考軟件來解決社會問題。
幾年以前,系統管理員都在把沒有用的MUD從他們的機器上刪除掉。現在管理員們發現,MUD游戲為地理上分隔得很開的項目組成員在郵件列表上提供了顯而易見的優勢。使學生們為合作完成作業而與同學和老師保持聯系,也使行動不便的學生能夠有機會參與社會活動。MUD游戲讓學生和其他地方的學生在網絡上實時交談,讓處于城市郊區的大學沒有了隔離的問題。一個虛擬的的公共機構可以讓充滿希望的學生,職員和貢獻者們做虛擬的旅行。
很清除,更進一步的軟件發展是組成穩定的MUD社區的前提。希缺資源對虛擬設區的重視和對真實社區是一樣的。MUD 的數據庫在運行它的服務器超過了它的處理能力時,或者系統軟件變得不正常時,會被刪除掉,使得建造活動和社區建設的活動受到壓制。
即使有對服務器軟件的升級,在一個字符界面的虛擬社區里生活的社會問題在五年里幾乎沒有什么變化。當有限的資源被去掉時,磨擦仍然會存在。
在MUD上有過主流媒體對“社會問題”的關注(這并不讓人吃驚;網絡空間里的性和死亡比數據庫層面的討論要賣座得多)但是如果那些將要成為系統管理員人認為虛擬的強奸和MUD毒癮只是他們面對的唯一問題,他們會感到吃驚的。
MUD游戲應該是匿名的么,或者MUD的ID應該與現實生活的信息相聯系? 匿名問題可能會促進反社會的行為,但是經過注冊的ID免去了MUD游戲中最有用的性質:遮羞的面紗。一個妥協的方法是系統管理員不能隨意進入修改身分信息。但是任何保存在文件中的信息并不是象人們想象的那樣能夠保密。
哪些人去建造呢? 限制建造的目標到某些特定的主題和布局可以把那些有不同想法的人排除出去。但是無法控制的建造活動會使在數據庫里尋找一個目標或者搜索數據庫變得不可能。一個數據太多的數據庫對任何人是沒有任何趣味的。
新用戶應該學些什么呢? 喜歡謾罵的用戶在MUD應該受到懲罰么,或者游戲里面應該有現實生活的秩序? 你能夠確定的知道任何人的現實身份嗎? 把你的真實的生活中的行為移植到虛擬的環境中是沒有什么用的。“財富”的和“個人”的概念在虛擬的生活中并不適用。文字的交互比真實生活的交流要簡單一些,只是沒了語調和真實的表達。也可能在這種環境種要知道語言對別人的影響也是不可能的。如果一個用戶用無意義的信息轟炸別人使得他或她不能使用MUD,那么攻擊者要被認為是犯了錯誤嗎?......
即使是簡單的情況,象姓名的管理,也會是一個復雜的問題。一個MUD能夠支持多少個叫DAVE的人? 那么給用戶分配唯一的數字-字母的ID會不會打破這種虛擬社區里社會的氣氛?
隨便想一想就會看到每一個社會問題并不能靠一個代碼補丁來解決。一個面向大學本科學生的MUD游戲的管理員可能會被裝上一些過慮的裝置來過慮一些特定的字詞。學生們卻又會想出一些新的方法來互相謾罵,這要比服務器上的規定的更新要快得多。既然一些人能夠被一些簡單的話感動,任何形式的話語很快就會變得冗長無比。
忽視這些問題的MUD系統管理員會發現他們自己碰到每一個事件時都會隨意定一些規則。另一個方面,使規則生效的虛擬社區的社會情況比真實生活的變化要快很多。
“我們,世界上的MUD玩家,為了構建一個完美的數據庫,宣布聯合起來,并保證對于任何有能力的人都能得到kill命令的使用權力。而且在網絡死掉之前提供一個備份的MUD,還要提高提示出現的頻率,而且保證我們還有我們的后代有一個安全的站點可以連線。為此我們宣布并確立這個《真實世界的虛擬城邦憲法》”