0%
棲息地:來自一個在線社區的報告 盧卡斯影業「棲息地」項目的教訓

棲息地:來自一個在線社區的報告

盧卡斯影業「棲息地」項目的教訓

我們一次又一次地發現,基於經常無意識地假設玩家行為的活動會有意想不到的結果(當它們不是徹底失敗的時候)。很明顯,我們無法控制。某些事情牽涉到的人越多,我們就越難以控制。我們可以影響事物,可以建立有趣的情境,可以為事情的發生提供機會,但是我們無法決定結果。社會工程至多是一門不精確的科學(或者,正如一些人說過的,「在最精心控制的條件下進行的最精心設計的實驗中,生物體會做任何它想做的事情」)。
為了在有限的篇幅里儘可能多地敘述,我們將通過一系列的原則和主張來描述我們自認為學到的東西,這些原則和主張圍繞著推理和事例展開。
棲息地世界由我們稱之為「區域」的大量離散點組成。在鼎盛時期,原型棲息地世界大約由兩萬人組成。每個區域都毗連其他四個區域,只需將你的化身移動到屏幕的某一邊緣即可完成區域的轉移。門道和其他通道可以鏈接到額外的區域。每個區域都包含一組物品,這些對象定義了化身可以做的事情,以及玩家在電腦屏幕上看到的場景。
數據通信標準至關重要。
棲息地最初的規格要求我們創建一個能夠支持兩萬名化身的世界,並計劃可擴張到五萬。無論怎麼看,這都是一項龐大的事業,複雜的問題肯定在意料之中。然而,在實踐中,我們在開發的早期就超過了複雜性閾值。當我們網路社區的人口達到五十左右時,其複雜性就會超出我們的理解(這五十人是做好了容忍漏洞的準備的「內部人員」)。
然而,我們對網路空間數據通信標準中心的關注更多地集中在傳輸數據的定義,而非較數據傳輸協議上。從A點到B點可靠地獲取比特的機制對我們來說並不特別有趣。這並不是因為這些機制不重要(它們顯然重要),也不是因為它們不會形成重大的研究和工程挑戰(它們顯然已經做到了),而是因為我們關注的是基於對象的網路空間的獨特通信需求。我們關心的是在對象之間發送消息(通信行為而非表現)的協議,以及將對象定義從一個系統傳遞到另一個系統的協議。
然而,如果一個計算機遊戲涉及多個玩家,那麼深入研究程序的內部機制就能讓一個人實現作弊,因為在某種意義上,一個人獲得了不公平的優勢,而其他玩家可能沒有意識到這一點。棲息地就是這樣一款多玩家的遊戲。當我們設計軟體時,我們的「最高指導原則」是「後端不應質疑玩家電腦告訴它的一切東西的有效性」。這是因為我們需要保護自己,避免一個聰明的用戶使用他的前端程序來添加「自定義特性」的可能性。例如,我們不能實現傳統視頻遊戲中的任何類型的「技能和行動」元素,其中,靈巧的操縱桿決定了武裝戰鬥的結果,因為你無法防止別人修改程序副本來告訴後端他們進行了「打擊」,無論他們是否進行了打擊。實際上,我們在量子通信的合作夥伴甚至在我們開始之前就警告了這些——他們就已經有用戶用自己的常規系統做了這樣的事情。真的會有人為了修補而不辭勞苦地拆卸和研究100k左右、非常緊湊和怪誕的6502機器碼嗎?事實證明,答案是肯定的:人們會這樣做。我們沒有百分之百地遵循自己的規則。結果是,在我們看來,如果人們通過侵入自己的系統「作弊」,產生的後果不會很嚴重,而在這種情況下違反規則,一些功能的實現就會被大大減弱了。如果人們不以這些方式侵入系統作弊,那真的是見鬼了!
截至本文寫作時,盧卡斯影業的棲息地的北美化身,量子通信的「加勒比俱樂部」已運營了近兩年。它使用了我們最初的Commodore 64前端,以及Stratus後端軟體的一個簡化版本。現在,俱樂部的會員人數已經達到了15000人。

經驗教訓

幾個星期以來,治安官只是個名義上的領袖,儘管他是一個受人尊敬的人物,並有一定的道德權威。我們困惑于應當給予他哪些權力。他有權在任何地方射殺任何人嗎?是否要給他一把更厲害的槍?或是一根能把人送進監獄的魔杖?法院呢?法律呢?律師呢?我們再次對玩家進行了調查,最終解決了一系列問題,這些問題可以通過全民公決來解決。不幸的是,在實驗結束和系統關閉前,我們無法對結果進行操作。然而很明顯的是,有兩個基本的陣營:一方支持無政府主義,另一方認為需要政府。這是一個需要由未來的網路空間設計師解決的問題。然而,我們的觀點是,虛擬世界無須建立在「默認」的政府的基礎上,但是可以根據需要成立一個政府。
我們從棲息地的經驗中提煉出的重要教訓是:網路空間更多是由參与者之間的互動來定義的,而不是由實現它的技術來定義的。雖然我們發現,目前正在竭盡全力完成的介面技術方面的工作——數據手套、頭戴式顯示器、專用渲染引擎等——既令人激動又前途無限,但是目前圍繞這一切硬體的近乎神秘的狂喜,在我們看來既過分又有點錯位。我們不禁有一種不安的感覺,擔心它會分散我們在真正緊迫問題上的注意力。我們願景的內核是網路空間必然是一個多參与者的環境。在我們看來,對於這種環境中的居民而言,重要的是他們能得到的能力,他們在那裡遇到的其他人的特點,這些不同的參与者相互影響的方式。除了基本的通信能力外,用於向參与者呈現這種環境的技術,雖然迷人而有趣,但卻是一個次要問題。
我們明白這一點是因為棲息地外部強加的一個糟糕設計限制,即玩家通過一個300波特串列電話鏈接就可以得到滿意的體驗(此外,一個人還可以通過商業分組交換網路路由,它對每個數據包傳輸施加了100~5000毫秒額外的、不可控的延遲)。
化身可以移動,拾取、放下、操縱物體,相互交談,打手勢,每一個化身都在一名玩家的控制之下。控制是通過操縱桿,使玩家可以指向事物併發出指令。談話是通過在鍵盤上打字來完成。玩家輸入的文本出現在化身頭頂上卡通風格的「文字氣球」中。
《真名實姓》的故事背景是「網路空間」(儘管《真名實姓》出版時,「網路空間」這個詞尚未誕生),但這是一部虛構作品。棲息地是一個虛擬社區,使用了《真名實姓》中的一些比喻,並讓它們成為現實。前兩篇文章發表於20世紀90年代初,最後一篇在20世紀90年代中期發表于互聯網上。
當一個對象被實例化時,我們分配一個內存塊來包含對象的狀態。對象狀態信息的前幾個位元組在所有對象中都採用相同的形式,包括對象的屏幕位置和顯示屬性等內容。當系統內核生成顯示並管理運行時的環境時,該標準信息將被內核解釋。狀態信息的其餘部分隨對象類型而變化,只能通過對象的行為代碼訪問。
實現平台相對而言並不重要。

實現

在新聞組關於網路空間的討論中,該領域的一名工作人員解散了加勒比俱樂部(棲息地目前的化身),他認為這是一種無趣的行為,並評論說大多數活動都是空洞瑣碎的交談。事實上,這一觀察在很大程度上是正確的。然而,我們希望上文所述的一些逸事能說明更多的事情正在發生,而不只是那些空洞又瑣碎的談話。此外,在此基礎上解散該系統就是解散用戶本身。他們花錢購買這項服務。對他們來說,這既不空洞,也不瑣碎。這印證了另一條假設,即人們比他們更清楚他們應該做什麼。這種假設是全知全能的中央計劃者的另一種表現,它決定了所有發生的事情,這是整篇文章試圖讓你不去尋找的一個角色。真實的系統將會被真實的用戶所使用,因此假定用戶會承擔你創建系統所需要的各種高尚活動是錯誤的。他九_九_藏_書們中的大多數人不會。網路空間也許確實會改變人類,但前提是要從真正的人類開始。

棲息地是什麼?

鑒於我們將網路空間看作一種通信媒介,而不是簡單的用戶界面模型,並且考慮到我們提倡的面向對象方法的風格,另一點變得清晰起來:
在系統內工作。
有些物體是結構,如地面和天空。許多只是風景,如樹和郵筒。然而,大多數物體都有其功能。例如,門可以將化身從一個區域傳送到另一個區域,並且可以打開、關閉、上鎖、解鎖。自動櫃員機可以訪問化身的銀行賬戶。自動售貨機出售商品以換取棲息地的金錢。棲息地有成熟的經濟體制,包括貨幣、銀行等。棲息地的貨幣單位是代幣,因為它是一個代幣經濟體,並且承認了代幣和計算機遊戲之間長期可靠的聯繫。
不要相信任何人。
廣大公眾把互聯網視為各種各樣的東西:商業機會、交流手段、公告牌……有時則是一個社區。但是在一般公眾意識到互聯網之前,在線社區就已經出現了,最有趣的早期實驗之一是由盧卡斯影業贊助的「棲息地」(Habitat)。作為棲息地的共同創造者,奇普·莫寧斯達和蘭德爾·法默提供了他們對在設計和實施這個迷人有趣的項目時發現的問題和解決方案的業內看法。這個項目的「神諭」蘭德爾·法默同時還分享了他在與發展中的新興社區成員互動時的觀察。雖然棲息地是20世紀80年代末的一個項目,但是它的逸事報告在其對活躍的社會有機體的簡要描述方面依然引人入勝。
我們認為網路空間的決定性特徵是共享的虛擬環境,而不是用於將用戶傳輸到虛擬環境中的顯示技術。如果你能在沒有頭戴式顯示器和其他昂貴的圖形硬體的情況下生活的話,那麼這樣的網路空間在今天就是可行的。棲息地便是這一論點的證據。
許多物品都是可以隨身攜帶的,化身可以拿在手中或裝在口袋裡。其中包括各種容器、金錢、武器、工具和奇異的法器。這裏列出了最重要的一些物品類別和它們的功能。完整表單中的物品類型有數百個。部分物體列表如下:
在這些經歷的推動下,我們轉變了運作方式,讓玩家自行決定設計方向。事實證明這更有效。我們沒有試圖把社區推向我們認為應該去的方向,而是像放老鼠一樣,我們試圖觀察人們在做什麼,並幫助他們。我們成了推動者,就像我們是設計師和實施者一樣。這通常意味著以瘋狂的速度向系統添加新功能和新區域,但我們添加的幾乎所有內容都得到了使用和讚賞,因為它與人們的需求和願望相匹配。我們作為研究系統如何運行的專家,經常會建議人們嘗試新的活動,或者做一些人們可能想不到的事情。通過這種方式,我們能夠對系統的發展產生相當大的影響,儘管事實上我們並沒有真正握住方向盤——但這比我們在幻想操控一切的時候所做的事情更有影響力。
後端還維護著面向對象的世界。與前端一樣,後端對象具有可執行的行為和內存中的狀態信息。此外,由於後台維護著整個棲息地世界持續的全局狀態,因此對象也由資料庫記錄來表示,這些資料庫記錄可以在「不使用」的時候存儲在磁碟上。後端對象行為是由前端的消息調用的。這些後端行為的工作方式大致相同:後端從玩家的前端接收到了請求一些動作的消息,隨後採取行動並使世界的狀態產生變化;後端行為將響應消息發送回前端,通知它請求的結果,並將通知消息發送到同一地區其他玩家的前端,告訴他們發生了什麼事情。
認清現實。
幾個星期以來,棲息地的報紙《咆哮》上出現了一則廣告,宣布「恐懼二重奏」「死亡」「陰影」向所有人發起挑戰,挑戰者需要進入他們的巢穴。很快,在城鎮的外圍,一座地牢的入口出現了。入口前面是一個牌子,上面寫著:「危險!後果自負!」兩名系統操作員以「死亡」和「陰影」為名登錄,他們配備了可以一槍使人斃命的特製槍,而不是通常的十二槍。這兩個角色漫步在地牢里,向他們遇到的任何人射擊。他們還裝備了特殊的魔杖,可以治愈其他化身對他們的傷害,這樣他們就不會被殺死。更糟的是,這個地方到處都是死胡同,各個區域之間病態的聯繫,以及各種各樣令人討厭的、通常是致命的特徵。很明顯,在掌握地牢之前,任何一個探索者最好做好「死」幾次的準備。獎勵是相當豐厚的:最少1000代幣,並能訪問一個出售瞬移魔杖的特殊販賣機器人。此外,鑒於已經明確通知,玩家在進入之前要先清空自己的口袋將「被殺死」的代價降到最低。
棲息地的最初版本使用Commodore 64作為前端。我們被問得最多的問題是:「為什麼用Commodore 64?」不知怎的,許多人都認為這是一個技術決定,但真正的原因是商業,而非技術。棲息地最初是由盧卡斯影業用作量子通信(QuantumLink)的商業產品,量子通信是(當時)專門為Commodore 64的用戶開發的一個在線服務。當我們在1985年啟動項目的時候,Commodore 64是娛樂計算市場的中流砥柱。從那時起,它的商業和技術意義顯著下降。然而,當時我們沒有可選擇的平台。交易的本質是,用Commodore 64作為前端和現有的量子通信主機系統(兩個Stratus小型容錯計算機)作為後端都是給定的。
事實證明,這並不是第一次發生這樣的事情。在前一晚的混亂中,特製槍也同樣被偷走了。這次扮演「死亡」的人是普通系統操作人員,他們習慣於操作常規的科靈Q-Link服務,只是命令玩家把槍放回去。玩家認為他是在正常的遊戲過程中獲得了武器,並對此猶豫不決,於是,操作員就威脅他,如果不服從就註銷他的賬號,並把他踢出系統。玩家只好把槍給了他,但對整個事件都很不滿,因為玩家的許多朋友和同事都在這個系統上。他們的世界模型遭到了嚴重的侵犯。
此外,像棲息地這樣的虛擬世界需要擴大人口規模。對於兩萬名化身,我們需要兩萬間「房子」,它們連同相關的交通要道、購物區以及休閑區共同構成城鎮和城市。我們需要城鎮之間的荒野地區,這樣大家不會擠在同一個地方。最重要的是,我們需要兩萬多人做的事情。他們需要可以去的有趣的地方——因為他們不能同時都在同一個地方,因此需要很多有趣的地方——以及在這些地方做的事情。房子、城鎮、道路、商店、森林、劇院、競技場以及其他地方都是需要有人設計和創建的獨特實體。我們試圖扮演全知全能的中央規劃者的角色,但卻陷入了泥沼。
我們在上文提到了我們的主要原則:
通信帶寬是一種稀缺資源。
再舉一個在系統內部工作的例子,這一次是在社會意義上,下文對這次體驗進行了詳細的描述。棲息地中更受歡迎的活動之一發生在測試後期,這是一個較為活躍的參与者的想法,他最近成了量子通信的員工。這個活動被稱為「死亡地牢」。
最初,這項事業中的最大敵人是我們自己,我們工程師是危險的思維方式的受害者。這種思維方式的特點是,所有的事情都可以事先計劃好,然後根據計劃的詳細說明直接實施。對於那些以簡單、明確、易於理解為基礎原則設計和構建系統的人來說,這是一種自然的態度。此外,在進行大多數工程項目時,這是完全合適的。這是一種思維框架,它是優秀工程師的概念工具的基本組成部分。正如馬斯洛的主張「對於只有鎚子的人來說,整個世界看起來就像釘子」,這是一種很容易超越其適用範圍的工具。當一個系統超出複雜性的閾值時,人類的大腦就失去了維持完整和連貫模型的能力。
一天晚上,我們中的一個人有機會扮演「死亡」角色。當我們登錄時,我們發現他在一個死胡同里,還有其他四個被困在那裡的化身。我們開始射擊,他們也一樣。然而,最後九九藏書一個扮演「死亡」的操作人員並沒有使用他的特殊魔杖來治療累積的傷害,因此「死亡」角色在這次遭遇中突然意外「被殺」。就像我們之前提到的,當化身被殺時,他手中的所有物品都會掉落。此時,物品是特殊的「一擊斃命」槍,它立即被一名普通玩家撿起,然後用它來射擊。但這支槍並不是普通玩家應該擁有的。對此,我們該怎麼辦呢?

警告

結論

通信對象定義似乎是一個非常重要的問題,而我們實際上沒有機會在棲息地中解決這個問題。我們如果想要擁有一個動態系統,就必須解決這個問題。如果系統能夠發展,那麼隨著時間的推移添加新的對象類型的能力至關重要。
物品類別功能
ATM自動櫃員機;訪問化身的銀行賬戶
化身代表棲息地世界的玩家
袋子、盒子攜帶物品的容器
書籍供化身閱讀的文檔(如日報)
盒子中的官僚與系統操作員的通信
箱子、保險箱可存放物品的容器
棍棒、槍、刀各種武器
羅盤指向西方
從一個區域到另一個區域的通道;可以上鎖
藥物有不同類型;改變化身的身體狀態,例如療傷
電梯樓層間的運輸工具
手電筒黑暗處的照明工具
噴泉景區亮點;為系統設計人員提供通信
遊戲部分支持各種棋盤遊戲:西洋雙陸棋、跳棋、國際象棋等
垃圾桶處理不需要的物品
膠水系統構建工具;將物品連接在一起
地面、天空世界的基礎
化身的頭;有很多風格,可以定製
鑰匙打開門和其他容器
小擺設一般的無用物品;用於裝飾
魔杖各種類型;幾乎可以做任何事情
紙張寫筆記、製作地圖等;用於郵件系統
典當機贖回以前購買的物品
植物、岩石一般景物
區域現實的基礎
感測器各種類型;檢測世界上其他看不見的情況
標誌允許其他物品有文本附件
點擊槍非致命武器
瞬移亭快速長途運輸的方式;類似於電話亭
代幣棲息地的金錢
售貨機器人販賣機;販賣東西
福田和夫和他在富士通的同事把我們的願景帶到了日本,並將其作為自己的目標。我們在美國信息交換(AMiX)的老闆菲爾·薩林讓我們抽時間寫了這篇論文,甚至資助我們參加首次網路空間會議,儘管這在當時與他業務直接關聯似乎並不明顯。我們還要感謝邁克爾·本尼迪克特、唐·福塞爾和他們的同伴組織了這次會議,從而促使我們開始把我們的想法和經驗寫到文章中。最後,迪恩·特裡布爾、馬克·米勒和埃里克·德雷克斯勒都為我們提供了寶貴的見解,我們期待著這一切將會引領我們走向何方。

運行這個世界

屏幕的最大部分專門用於圖形顯示。這是關於玩家在棲息地世界的當前位置的動畫視圖。這個場景由屏幕上各種各樣的物體組成。玩家們被我們稱為「化身」的動畫人物所代表。化身通常是人形的,但並不絕對。
最後,我們開始相信,對網路空間開發人員來說,最重要的挑戰是解決世界的創建和管理問題。雖然我們只是第一次嘗試解決這些問題,但有一些事情已經變得很清楚了。其中最重要的一點是,管理一個網路空間世界並不像管理一個用戶應用程序,甚至也不像管理一個傳統的在線服務中的世界。相反,它更像是治理一個真正的國家。網路空間設計師將像從計算機科學中受益一樣,從社會學和經濟學原理的研究中受益。我們提倡對世界的構建採用一種進化的方式,而不是一種集中的、社會主義的方式。
可以在感知層面的框架內完成的事情應該盡量滿足一切可能。其結果是用戶社區的操作更加流暢、和諧。這一警告既適用於系統的技術方面,也適用於社會方面。
我們很清楚,面向對象的世界模型是實現一切網路空間的關鍵要素。我們覺得我們已經對這種系統的數據表示和通信需求有了一些見解。雖然我們認為現在開始為這些事情制定詳細的技術標準還為時過早,但現在是時候開始討論了,這會對未來的標準產生影響。
表現層和概念層不能(也不應該)彼此完全隔離。根據對象的配置和行為,而非它們的表現來定義虛擬環境使得我們能夠跨越系統中參与者之間海量的計算和顯示能力。這個範圍既向上又向下延伸。作為一個極端的例子,一個典型的風景對象,如樹,可以用一些參數值來表現。可以想象的事情的底端可能是一台古老的Altair 8800,它擁有300波特的ASCII簡易終端,此處,界面被簡化為文本片段,用戶將看到文字冒險遊戲玩家再熟悉不過的簡陋字元串:「這裡有一棵樹。」在頂端,你可能有一個強大的處理器,它通過增加分形模型並以高解析度在三個維度上進行渲染生成樹的圖像,實時繪製最細微的細節,在微風中飄揚的樹枝和風的聲音通過高保真數字立體聲耳機傳到你的耳中。兩個用戶可能會在同一個世界里的同一個地方看到同一棵樹,並相互交談。目前,這兩種情況都是令人難以置信的,首先是因為當更好的界面變得可用時,沒有人會繼續忍受這種粗糙的界面,其次是因為計算硬體還不存在。然而,問題的關鍵在於,這種方法涵蓋了已經過時的系統和那些在設計師眼中仍然閃爍著光芒的系統。它的兩個後果是顯著的。第一,我們今天可以建立有效的網路空間系統。棲息地的存在充分證明了這一原則。第二,你可以想象,只要有一點點的聰明和遠見,你就可以開始用今天的技術建立一個系統,它可以隨著未來的技術發展而順利發展。在現實世界中,增長途徑的可用性很重要,特別是如果網路空間要成為一種重要的通信媒介的話(正如我們所認為的那樣)。
從表面上來看,這種主張不太可能引起爭議,因為面向對象編程目前是軟體工程行家所精選的方法。然而,我們在這裏的意思是,你不僅應該採用面向對象的方法read.99csw.com,而且你構建系統的基本對象應該或多或少與虛擬世界的用戶概念模型中的對象相對應,即人員、地點和人工產品。當然,你可以使用面向對象的編程技術來構建基於多邊形的系統,但是這對於解決根本問題毫無幫助。
盧卡斯影業的棲息地是由盧卡斯影業遊戲(盧卡斯藝術娛樂公司的一個部門)與量子計算機服務公司聯合創建的。這可以說是創建大規模商業多用戶虛擬環境的首次嘗試。與許多基於複雜的介面硬體和每名專用計算機用戶數萬美元費用的實驗室大不相同的是,棲息地建立在普通的商業在線服務上,使用廉價的(有人說是「玩具」)家用計算機來支持用戶互動。儘管這有些平民化基礎,但是棲息地的目標雄心勃勃。我們開發的系統可以在一個共享網路空間中支持成千上萬名用戶。棲息地呈現給用戶的是實時動畫,將他們帶入到在線模擬世界中,在這裏,用戶可以交流、玩遊戲、冒險、戀愛、結婚、離婚、創業、發現宗教、發動戰爭、反抗戰爭、嘗試自治。
在設計一款軟體時,通常假定基礎設施層是用戶與被|操縱的底層數據(可能多個應用程序將使用相同的數據,但原理仍然相同)之間的唯一中間層。通常,用戶不需要知道數據是如何在應用程序內部編碼和構建的。實際上,一個好的應用程序的目的就是不讓用戶再受到醜陋的技術細節的影響。可以想象,雖然一個技術牛人願意投入時間和精力來破譯事物的內部結構,但這是一件不尋常的事情,因為幾乎沒有什麼優勢可以獲得。畢竟,應用程序本身的目的是讓訪問和操作數據相比于在比特和位元組的級別上進行挖掘更加容易,不過也有例外。例如,大多數遊戲程序故意在玩家的遊戲中設置障礙,以使遊戲具有挑戰性。通過對這樣一個程序的內部進行修補——轉存數據文件並研究它們,拆卸程序並做可能的修改——「欺騙」便可能產生。然而,這種欺騙有在紙牌遊戲中作弊的味道:後果只與作弊者自己有關。不同的是,拆卸遊戲程序是一種獨立的解謎練習,而紙牌遊戲中的作弊是沒有意義的,如果有的話,從中獲得的滿足感也完全屬於個人。
我們為棲息地規劃的第一個目標導向事件是一項相當複雜的尋寶活動,叫作「德納利斯島的冒險」。我們花了數個小時設計、數個星期構建(包括一百個區域的海島),又花了幾天來協調其中角色的行動。它的設計很像冒險遊戲中的謎題。我們以為它會讓我們的玩家玩上好幾天。事實上,這個謎題不到八個小時就解決了,有一個玩家在最初的十五分鐘里就找到了關鍵線索。許多玩家甚至沒有機會進入遊戲。結果是,一個人完成了一段奇妙的體驗,而許多人都不知所措,花費在設計和時間設置上的巨大投資眨眼間就消耗完了。我們原本期望棲息地的觀眾會有各種各樣的「冒險」技巧。直到後來才明白,大多數人都沒有享受到快樂時光,因為他們壓根兒就沒真正參与進去,除此之外沒有其他更合適的原因了。對於我們來說,經常做這樣的事情顯然愚蠢又不切實際。
為了使這種自動化的經濟更加有趣,每台販賣機器人里的物品都有自己的價格。這樣我們就可以了解當地的價格變化(例如,如果你在「傑克地方」買了一個小部件,而不是在商場里買的,那麼價格就會低一些)。原來,城鎮兩端的兩台販賣機器人中各有一件待售商品,我們無意中為它們設置的售價低於典當機典當它們的價格:娃娃(出售75代幣,典當100代幣),水晶球(出售18000代幣,典當30000代幣)。自然,有幾個人發現了這一點。一天晚上,他們拿著自己的全部財產,來到賣娃娃的販賣機器人旁,儘可能多地買娃娃,然後把它們帶到城裡典當。他們在賣娃娃的販賣機器人和典當機之間來回穿梭了好幾個小時,直到他們積累了足夠的資金來購買水晶球,於是他們用水晶球和幾個數量級的現金流來繼續這個過程。最終的結果是,至少有三個化身,每一個都擁有了幾十萬代幣。我們直到第二天早上才發現這一點,當時我們的每日資料庫狀況報告顯示,代幣供應量一夜之間就翻了五倍。
此外,雖然我們已經使直接的盜竊變得不可能,但人們仍然可以通過拾取地面上的物品或其他不受關注的東西來間接盜竊。而在荒野仍然可能發生的暴力事件繼續困擾著一些玩家。許多人認為這樣的罪行應該被阻止或至少受到某種方式的懲罰,但他們不知道如何做。他們習慣了總是由別人提供法律和正義的世界。最終有人提出應該有一個治安官。我們很快就找到了建立投票機制的方法,並召集了一些志願者來進行選舉。在鎮上的會議大廳里,一場公開的辯論受到大量關注,三個化身發表聲明和回答問題。選舉成功舉行,「大眾城邦」小鎮選出了一名治安官。
在線服務和通信網路的構建者在處理龐大的用戶群體方面具有豐富的經驗,但總體而言,他們並沒有創建複雜的環境。此外,在設計用於傳輸信息或通信服務的系統中,龐大的用戶只是一個負載問題,並不複雜。所有用戶得到的都是相同的信息或服務,上文關於重複體驗的評論同樣適用於此。沒有必要將信息空間的大小和複雜性與用戶數量相匹配。儘管可能的結果是服務可用的信息量是用戶數量的函數,但是這些信息通常可以被組織成一個系統的結構,仍然可以由少數人來維護。複雜性在於,它是用戶自己的產品,而不是系統設計人員的——系統的操作人員無須創建所有這些材料(這是解決我們問題的第一個線索)。
我們想要感謝幫助棲息地成為現實的許多人的貢獻。在盧卡斯影業,阿里克·威爾默寫了大部分的Commodore 64前端軟體;朗·吉爾伯特、查理·凱爾納、諾亞·法爾斯坦也提供了寶貴的編程和設計支持;加里·溫尼克和肯·麥克林負責了所有的藝術插畫;克里斯·格里格負責聲音;史提夫·阿諾德提供了出色的管理支持;喬治·盧卡斯給了我們開展這個項目的自由,儘管他知道這個項目既不切實際又非常瘋狂。在量子公司,珍妮特·亨特寫了後端的內核,肯·亨斯曼和邁克·費科在通信協議方面提供了寶貴的幫助。
可以創建自動化工具來幫助生成天生具有高度規律性和結構的區域,比如公寓大樓和道路網路。我們創造了許多這樣的工具,它們的精神後代無疑將在未來網路空間設計師的標準袋中找到。然而,讓這個世界上的某些地方適應這些技術的特性也使得世界上的那些相同的地方變得不再重要了。如果每一棟公寓樓看起來都像其他的一樣,那真的不是問題。但如果每片魔法森林都是一樣的,那就是一個大問題。那些價值在於其獨特性的地方,或者至少是與周圍不同的地方,這些都需要手工製作。這個過程所耗費的大量人力和時間,令人難以置信。此外,即使是極富想象力的人,他們的創造也會局限在一定範圍內,特別是如果他們在一個沒有受到其他設計師作品和反應影響的原始環境中工作。
鑒於上文的告誡,應該允許用戶掌握控制權,我們需要告訴他們注意事項,並給出我們的下一個主張:

世界中的建築

開始時,我們強加給這個世界的規則很少。對於棲息地社會應該採取的形式,參与者之間的爭議很大。爭論的核心是一個尚未解決的哲學問題:化身是人類的延伸(因此就像對待一個真實的人一樣),還是像吃豆人一樣註定要死上千次的可憐蟲,或是別的什麼東西?棲息地中的謀殺是犯罪嗎?所有武器都應該禁止嗎?還是所有的一切都「只是一場遊戲」?為了表明自己的觀點,一個玩家難道就能隨意射殺遊走在他身邊的人嗎?這場辯論充滿了活力,我們對玩家進行了系統的調查。結果模稜兩可:一半人說棲息地中的謀殺是犯罪,不應該成為這個世界的一部分;而另一半人則說這是其中的一大樂趣。
我們希望以一條警告作為結束,希望它不會有太大爭議:
然而,即使在一個技術更先進的網路中,帶寬仍然是稀缺的,用經濟學家的行話來說就是:可用的承載能力不是無限的。供求法則表明,無論有多少容量,你總是想要更多。當通信技術發展到每家每戶都鏈接了千兆波特光纖這種程度的時候,計算技術也會達到與之匹配的程度。我們的處理器對數據日益增長的需求意味著尋找https://read.99csw.com更複雜的數據壓縮技術仍然是一個熱門的研究領域(儘管到了那時,我們壓縮的可能是高解析度的體積時間序列,或者更深奧的東西)。
其實,大型系統所帶來的挑戰,已經促使埃里克·德雷克斯勒和馬克·米勒等研究人員質疑我們在這裏所評論的集中的、以規劃作為主導的態度,並提出基於進化和市場原則的替代方法。這些原則似乎適用於所有類型的複雜系統,而不僅僅是那些涉及人類交互的系統。
對於使工程師們陷入上述問題中的建構主義偏見,經濟學家和社會學家的研究成果比軟體工程界的要多。遊戲和模擬設計師在為個人和小組創建虛擬世界方面經驗豐富。然而,他們沒有理由去學習如何處理大量同時使用的用戶。由於每個用戶或小組都與其他用戶無關,所以可以重複使用同一個世界。如果你正在玩一場冒險遊戲,在(真實的)世界其他地方的成千上萬人也在玩一樣的遊戲,那麼這對你的體驗沒有任何影響。對於這個世界的創造者來說,為了用戶與世界交互的一個小時,花費幾十甚至上個百小時創建環境也是合情合理的。因為成千上萬的其他個人用戶都能享受到這一個小時的體驗。
前端由系統內核和對象集合組成。內核處理內存管理、顯示生成、磁碟輸入/輸出、移動通信,以及其他「操作系統」功能。對象實現了世界本身的語義。每種類型的棲息地對象都有一個由一組資源組成的定義,包括用於驅動顯示、音頻數據和可執行代碼的動畫。對象的可執行代碼實現了一系列標準行為,每個行為都由不同玩家的命令或系統事件調用。該模型與面向對象編程系統中的模型類似,如Smalltalk,分類、方法、消息都是如此。這些資源消耗了大量稀缺的前端內存,因此我們不能同時將它們全部保存在內核中。幸運的是,它們的定義是不變的,所以我們只需在需要的時候從磁碟中交換它們,丟棄最近使用的資源來騰出空間。
奇普·莫寧斯達、蘭德爾·法默
棲息地提出了兩種執行挑戰。第一個挑戰是開發一項技術——開發動畫引擎、面向對象的虛擬內存、傳輸消息的偽操作系統,並將它們全部壓縮到荒唐的Commodore 64中(後端系統也帶來了一些有趣的技術問題,但它的約束並沒有那麼嚴重)。第二個挑戰是棲息地世界本身的創造和管理。我們認為後一種挑戰的經驗對未來的網路空間設計師最為重要。

偉大的辯論

面向對象的數據表示是絕對必要的。
多用戶環境是網路空間概念的核心。

引言

例如,在控制玩家的情況下,棲息地的世界將會變得比以前更大、更多樣化,而我們自己不是一個技術「瓶頸」。所有新地區的生成和功能的實現都必須經過我們,因為沒有一種方法可以讓玩家自己創造世界的新區域。區域創造是一種深奧的專業技術,需要大量的模糊工具和對Commodore 64所施加的危險雷區限制具備較深刻的理解。它還需要大量的幕後活動,這可能會破壞許多人的幻想。下一代類棲息地系統的目標之一應該是允許參与者以更大的創造性進行參与,而不需要他們一躍成為做這些工作的成熟專家。
詳細的中央規劃是不可能的,甚至都不要去嘗試。
在世界的設計中也要小心謹慎。在我們的試用測試期間發生了一件事,一小群玩家在世界的資料庫中利用了一個漏洞,他們將其解釋為一個特性。首先介紹一些背景。化身在他們的銀行賬戶里有2000代幣,每天登錄的時候,他們會收到另外100代幣。化身可以通過參与商業活動、贏得比賽、發現埋藏的寶藏等來獲得額外的代幣。他們可以把自己的代幣花在其他東西上,比如購買名為「販賣機器人」的自動售貨機里出售的各種商品。這裏還有典當機器,可以把物品贖回(當然是折扣價)。

保持「現實」的一致性

如果我們正在構建的是一個多用戶環境,那麼自然而然地,某種通信能力必須是我們系統的基礎。然而,我們必須考慮到第二條原則:
對象行為是由內核在響應玩家輸入的信息時調用的。每個對象都響應一組標準動詞,這些標準動詞直接映射到玩家可用的命令。每個行為只是一個執行指定動作的子程序,為此,它可以調用其他對象的行為或向後端發送請求消息。除了標準的動詞行為之外,對象可能還有額外的行為,這些行為是由從後端非同步到達的消息所調用的。
我們對ISO模型主要有兩個爭議:首先,它以一種與網路空間系統需求不匹配的方式劃分了一般數據通信問題的方式;其次,也是更為重要的一點,我們認為這是混亂的放射源,因為它將系統設計者的注意力集中在一系列錯誤問題上,從而引導他們花時間去解決錯誤問題。我們之所以了解這些,是因為這件事在我們身上發生過。「表現」和「應用」只是網路空間通信協議的更高級別的錯誤抽象。「表現」協議假定顯示的特徵被嵌入到協議中。上面的討論應該能說明為什麼我們認為這樣的假設既不必要也不明智。「應用」協議假設消息環境有一定的預知能力,這與我們設想的動態演進的對象系統不兼容。
我們為棲息地中的化身製作的可用的物品包括槍支和其他各種各樣的武器。我們之所以把這些都包括進來,是因為我們覺得玩家對彼此的影響不應該只是通過簡單的對話,還要通過那些需要做出真正道德選擇的方式。我們認識到古老的故事講述者的格言:衝突是戲劇的本質。棲息地中的死亡當然不等於真實世界中的死亡!當一個化身被殺死時,他(她)被傳送回家裡,雙手抱頭(字面意思),口袋空空,手裡所有的東西都被扔在犯罪現場。當時的一切財產都會丟失。這更像是玩飛行棋時的一次挫折,而非真正的死亡。然而,死亡隱喻對人們的認知有著深刻的影響。委婉地講,這種潛在的謀殺、襲擊和其他破壞行為的可能性是有爭議的。這一爭議進一步加劇了犯罪的可能性。舉例來說,一個化身可以偷另一個化身的東西,只要從它的主人手裡拿下這個東西,然後跑掉即可。
我們通過改變系統來折中,只允許在城市外進行偷竊和槍戰。荒野將變得既野蠻又危險,而文明將會安全有序。然而,這並沒有解決這場爭論。反對暴力觀點的傑出支持者之一想要開啟第一座棲息地教堂。這將在本章後面討論。
更好的模型是替換一對不同的頂層:信息層,它定義了對象彼此定址的方法,以及封裝結構化數據和編碼低級數據類型(例如,數字)的標準方法;建立在信息層之上的定義層,它定義了對象定義的標準表示,以便對象分類可以在機器之間遷移。有人可能會說,這些只是用不同標籤的簡單表現和應用,但我們不認為這些差異可以輕易調和。特別是,我們認為ISO模式已經有意無意地系統性地讓該領域的工作人員的思考與許多我們關心的問題偏離。
棲息地受到了歷史悠久的「電腦黑客科幻小說」(尤其是弗諾·文奇的中篇小說《真名實姓》)的啟發,還從許多兒時的虛構遊戲、最近的角色扮演等遊戲中得到了靈感。其他的影響因素還有很多,就不在這裏一一列出了。
突破基礎設施層面和感知層面之間界限的衝動並不局限於玩家。系統運營商也會受到這種誘惑,儘管他們的動機是以權宜之計實現他們的合法目的,而不是獲得非法利益。然而,在可能的程度上,我們大力支持以下原則:
證據顯示,棲息地項目為如何營造一個嚴肅的、具有商業價值的網路空間環境提供了豐富的事實依據。我們開發棲息地系統及管理生成的虛擬世界的經驗,為未來的網路空間設計師提供了一些有趣而又重要的經驗教訓。本文的目的是討論其中的一些經驗教訓。我們希望下一代虛擬世界的建設者可以從我們的經歷和(尤其是)錯誤中受益。

現狀

當我們read.99csw.com討論通信標準的時候,我們想對開放系統互連的ISO參考模型(ISO Reference Model of Open System Interconnection)做一些評論。如今,這種多層模型已經成為大多數討論數據通信標準的核心內容。不幸的是,雖然這個模型的底部四層或五層提供了一個還算完善的框架來考慮數據傳輸問題,但是我們認為,在考慮空間數據通信時,模型的表現層和應用層並沒有太大的用處。
這兩種對普通操作問題截然不同的反應說明了我們的觀點。在參与者的世界模型中的操作產生了一個非常令人滿意的結果。另外,違反這一模型的權宜之計卻引發了不安和失望。在這種情況下,在系統內部工作顯然是首選。
如果所有玩家都有相同的目標、興趣、動機和行為類型,那麼這個世界設計問題可能仍然是容易處理的。然而,真人是千差萬別的。對於普通遊戲或模擬的設計者而言,人的多樣性並不是一個主要問題,因為他(她)要為參与者設定目標和動機,並指定他們所能利用的活動,以便將事件引導到最優方向。然而,棲息地是刻意開放和多元化的。我們這個世界背後的理念剛好是,它並沒有為它的居民設定一套固定的目標,而是提供了一種廣泛可能的活動,讓玩家可以根據自己的興趣來選擇。我們的目的是提供各種可能的體驗,從有既定規則和目標的事件(如尋寶遊戲),到由玩家的個人動機所推動的活動(創立公司、經營報刊),再到完全自由、純粹的生存活動(同朋友閑逛、談話)。然而,對我們來說,大部分活動都涉及一定程度的預先計劃和安排——我們就像遠洋航行中的巡航總監一樣,但我們仍然像遊戲設計師一樣思考。
我們假設,代幣的急劇增加是由於軟體中的某種缺陷。我們很困惑,沒有任何漏洞報告提交上來。通過四處閑逛,我們發現一些人突然獲得了巨額銀行存款。我們給兩位最富有的人發送了棲息地郵件,詢問他們如何一夜之間弄來了這麼多錢。他們的回答是:「這些錢是光明正大地得來的。我們不會告訴你錢是怎麼弄來的!」在我們的再三懇求下,他們最終告訴了我們,我們糾正了錯誤的定價。幸運的是,整個騙局的結果是好的,因為暴發戶化身用他們鼓鼓的腰包組織了一系列尋寶遊戲,這些遊戲是他們自己主動進行的,這在很大程度上讓系統上的其他玩家享受了很多樂趣。
我們深信,網路空間系統的一個決定性特徵是它代表了一個多用戶環境。這源於一個事實:(在我們看來)人們在這樣一個系統中尋求的是豐富性、複雜性和深度。沒有人知道如何製造出接近真正人類複雜性的自動機器,更不用說製造一個社會了。那麼,我們的方法甚至不是去嘗試它,而是使用計算媒介來增強真實人類之間的通信渠道。
計算機科學家往往是還原論者,他們喜歡用原始元素來組織系統,這些元素可以在簡單的正式模型的背景下輕鬆操縱。通常,你採用少量非常簡單的基元,然後大量使用這些基元。對於面向圖形的網路空間系統,其誘惑是建立在點陣圖或多邊形或其他圖形基元上的。然而,這些類型的表現會招致災難。它們源於對顯示技術不恰當的痴迷,而非系統的潛在用途。
這可能看起來像是和之前的許多觀點相矛盾,但事實並非如此。網路空間系統的設計者和操作者必須同時生活在虛擬世界的兩個層面上。第一個我們稱為「基礎設施層面」,也就是實施,即支配「現實」的規律的起源之處。第二個我們稱為「感知層面」,即用戶看到和體驗到的東西。重要的是,這兩層之間不存在「滲透」。第一個層面定義了這個世界的物理學。如果它的完整性被破壞了,其後果可能會從審美上的不愉快(觀眾看到了面具後面的腳手架),到精神上的破壞(有人做了一些「不可能的事」,從而違背了用戶的期望,破壞了他們的幻想),再到災難性的失敗(有人破壞了系統)。當我們勸你把控制權交給用戶時,我們指的是感知層面上的控制。當我們說不要相信任何人的時候,我們的意思是你不能讓他們隨意訪問基礎設施。棲息地中的一些故事就能說明這一點。
接下來我們闡述一下系統的工作原理:棲息地設定的是一個面向對象的世界模型。
一個技術上更先進的版本名叫富士通棲息地,最近開始在日本試點運營。這個版本最初的前端是富士通的新型個人計算機FM Towns,不過其他幾個流行的日本機器埠也很受期待。該系統的這一版本得益於新平台的額外計算能力和圖形功能,以及Towns內置的用於對象圖像和聲音的只讀光碟。然而,系統的虛擬性本質上沒有改變,富士通也沒有對用戶界面或任何潛在的概念進行重大的改動。
棲息地是一個「多玩家在線虛擬環境」(其目的是成為一個娛樂媒介,所以,用戶被稱為「玩家」)。每位玩家使用自己的家庭電腦作為前端,通過商用的分組交換數據網路與一個集中的後端系統進行通信。前端提供用戶界面,生成實時動畫顯示正在發生的事情,並將玩家輸入的信息轉化為請求發送到後端。後端維護世界模型,執行規則,並讓每個玩家的前端了解不斷變化的世界狀態。後端讓玩家不僅可以與世界互動,還可以與他人互動。
我們的目標是使機器之間的通信主要發生在行為層面(人們和事物正在做的事情),而不是表現層面(場景如何變化)。對虛擬世界中某個地方的描述應該是那裡有什麼,而不是看起來像什麼。對象之間的交互應該由功能模型而不是物理模型來描述。這些高級別表現和直接用戶交互所需要的低級別表現之間的轉換所需要的計算本質上是局部功能。在本地處理器中,顯示渲染技術可能是任意複雜的,物理模型也是任意複雜的。然而,這種計算所需的數據通道容量不需要也不應該被壓縮到本地處理器和遠程處理器之間可用的有限帶寬中。嘗試這樣做只會導致像北美表示級別協議語法(NAPLPS,一種發送數據的格式,用於可視圖文系統)這樣的災難。
人們經常聽到,當系統超出複雜的閾值時,會變得非常龐大。例如,太空梭和B-2轟炸機都是高於這一閾值的系統,需要格外複雜、煩瑣和耗時的程序來保證設計在控制之下——這些程序十分昂貴,而且成功的只有部分。在一定程度上,複雜的問題可以通過砸錢來解決。然而,這種資本密集型的管理技術對於大多數項目來說都是一種奢侈。此外,儘管對於大多數項目而言,這些不靠譜的複雜問題的「解決方案」是遙不可及的,但是複雜性閾值本身並非如此。較小的系統也可能會遇到同樣的問題。通過引入超出設計師控制範圍或理解範圍的混沌元素,在複雜性閾值上也可以推出更小、更簡單的系統。這些混沌元素中最重要的是自主計算代理(例如,其他計算機)。這就是為什麼即使是調試非常簡單的通信協議也經常困難重重。此外,一個特殊的人間地獄等待著系統的實施者,其中包括了所有的、交互的人類群體的最重要的自動計算代理。這直接導致我們的下一個(可能也是最有爭議的)主張:
然而,我們想要交流的最重要的部分是人的行為。幸運的是,如果我們採用一種相對抽象的高級描述,直接處理行為概念,那麼就可以很簡潔地表示這些內容。這就引出了我們的第三條原則:
當這件事發生在我們身上時,我們把整個事件都放在了「死亡」這個角色上。我們給那個持槍的化身發了一條信息,威脅說如果她不把槍歸還,就殺了她。她回答說,她所要做的就是待在城裡,「死亡」無法接觸到她(如果我們待在這個系統里的話,的確如此)。好吧,我們覺得她很聰明。我們通過談判達成了一項協議,「死亡」支付10000代幣贖回這把槍。我們做了一項精心安排,在城鎮中心見面進行交易,由一個中立的化身充當中間人,以確保雙方都不被欺騙。當然,消息傳開了,交流的時候有許多觀眾。我們最大限度地扮演了「死亡」的角色,有大量誇張做作的滑稽場面。這件事引發了轟動,第二天早上便上了報紙,成了城鎮上一連幾天的熱門話題。參与的化身留下了一個關於欺騙「死亡」的精彩故事,我們拿回了槍,每個人都高興地離開了。
一旦我們開始在概念層面上而不是在表現層面上工作,我們就會被以下的觀察所震驚: