栖息地:來自一個在線社區的報告
關燈
小
中
大
盧卡斯影業“栖息地”項目的教訓
奇普·莫甯斯達、蘭德爾·法默
廣大公衆把互聯網視為各種各樣的東西:商業機會、交流手段、公告牌……有時則是一個社區。
但是在一般公衆意識到互聯網之前,在線社區就已經出現了,最有趣的早期實驗之一是由盧卡斯影業贊助的“栖息地”(Habitat)。
作為栖息地的共同創造者,奇普·莫甯斯達和蘭德爾·法默提供了他們對在設計和實施這個迷人有趣的項目時發現的問題和解決方案的業内看法。
這個項目的“神谕”蘭德爾·法默同時還分享了他在與發展中的新興社區成員互動時的觀察。
雖然栖息地是20世紀80年代末的一個項目,但是它的逸事報告在其對活躍的社會有機體的簡要描述方面依然引人入勝。
《真名實姓》的故事背景是“網絡空間”(盡管《真名實姓》出版時,“網絡空間”這個詞尚未誕生),但這是一部虛構作品。
栖息地是一個虛拟社區,使用了《真名實姓》中的一些比喻,并讓它們成為現實。
前兩篇文章發表于20世紀90年代初,最後一篇在20世紀90年代中期發表于互聯網上。
引言 盧卡斯影業的栖息地是由盧卡斯影業遊戲(盧卡斯藝術娛樂公司的一個部門)與量子計算機服務公司聯合創建的。
這可以說是創建大規模商業多用戶虛拟環境的首次嘗試。
與許多基于複雜的接口硬件和每名專用計算機用戶數萬美元費用的實驗室大不相同的是,栖息地建立在普通的商業在線服務上,使用廉價的(有人說是“玩具”)家用計算機來支持用戶互動。
盡管這有些平民化基礎,但是栖息地的目标雄心勃勃。
我們開發的系統可以在一個共享網絡空間中支持成千上萬名用戶。
栖息地呈現給用戶的是實時動畫,将他們帶入到在線模拟世界中,在這裡,用戶可以交流、玩遊戲、冒險、戀愛、結婚、離婚、創業、發現宗教、發動戰争、反抗戰争、嘗試自治。
證據顯示,栖息地項目為如何營造一個嚴肅的、具有商業價值的網絡空間環境提供了豐富的事實依據。
我們開發栖息地系統及管理生成的虛拟世界的經驗,為未來的網絡空間設計師提供了一些有趣而又重要的經驗教訓。
本文的目的是讨論其中的一些經驗教訓。
我們希望下一代虛拟世界的建設者可以從我們的經曆和(尤其是)錯誤中受益。
我們從栖息地的經驗中提煉出的重要教訓是:網絡空間更多是由參與者之間的互動來定義的,而不是由實現它的技術來定義的。
雖然我們發現,目前正在竭盡全力完成的接口技術方面的工作——數據手套[67]、頭戴式顯示器、專用渲染引擎等——既令人激動又前途無限,但是目前圍繞這一切硬件的近乎神秘的狂喜,在我們看來既過分又有點錯位。
我們不禁有一種不安的感覺,擔心它會分散我們在真正緊迫問題上的注意力。
我們願景的内核是網絡空間必然是一個多參與者的環境。
在我們看來,對于這種環境中的居民而言,重要的是他們能得到的能力,他們在那裡遇到的其他人的特點,這些不同的參與者相互影響的方式。
除了基本的通信能力外,用于向參與者呈現這種環境的技術,雖然迷人而有趣,但卻是一個次要問題。
栖息地是什麼? 栖息地是一個“多玩家在線虛拟環境”(其目的是成為一個娛樂媒介,所以,用戶被稱為“玩家”)。
每位玩家使用自己的家庭電腦作為前端,通過商用的分組交換數據網絡與一個集中的後端系統進行通信。
前端提供用戶界面,生成實時動畫顯示正在發生的事情,并将玩家輸入的信息轉化為請求發送到後端。
後端維護世界模型,執行規則,并讓每個玩家的前端了解不斷變化的世界狀态。
後端讓玩家不僅可以與世界互動,還可以與他人互動。
栖息地受到了曆史悠久的“電腦黑客科幻小說”(尤其是弗諾·文奇的中篇小說《真名實姓》)的啟發,還從許多兒時的虛構遊戲、最近的角色扮演等遊戲中得到了靈感。
其他的影響因素還有很多,就不在這裡一一列出了。
栖息地的最初版本使用Commodore64[68]作為前端。
我們被問得最多的問題是:“為什麼用Commodore64?”不知怎的,許多人都認為這是一個技術決定,但真正的原因是商業,而非技術。
栖息地最初是由盧卡斯影業用作量子通信(QuantumLink)的商業産品,量子通信是(當時)專門為Commodore64的用戶開發的一個在線服務。
當我們在1985年啟動項目的時候,Commodore64是娛樂計算市場的中流砥柱。
從那時起,它的商業和技術意義顯著下降。
然而,當時我們沒有可選擇的平台。
交易的本質是,用Commodore64作為前端和現有的量子通信主機系統(兩個Stratus小型容錯計算機)作為後端都是給定的。
屏幕的最大部分專門用于圖形顯示。
這是關于玩家在栖息地世界的當前位置的動畫視圖。
這個場景由屏幕上各種各樣的物體組成。
玩家們被我們稱為“化身”的動畫人物所代表。
化身通常是人形的,但并不絕對。
化身可以移動,拾取、放下、操縱物體,相互交談,打手勢,每一個化身都在一名玩家的控制之下。
控制是通過操縱杆,使玩家可以指向事物并發出指令。
談話是通過在鍵盤上打字來完成。
玩家輸入的文本出現在化身頭頂上卡通風格的“文字氣球”中。
栖息地世界由我們稱之為“區域”的大量離散點組成。
在鼎盛時期,原型栖息地世界大約由兩萬人組成。
每個區域都毗連其他四個區域,隻需将你的化身移動到屏幕的某一邊緣即可完成區域的轉移。
門道和其他通道可以鍊接到額外的區域。
每個區域都包含一組物品,這些對象定義了化身可以做的事情,以及玩家在電腦屏幕上看到的場景。
有些物體是結構,如地面和天空。
許多隻是風景,如樹和郵筒。
然而,大多數物體都有其功能。
例如,門可以将化身從一個區域傳送到另一個區域,并且可以打開、關閉、上鎖、解鎖。
自動櫃員機可以訪問化身的銀行賬戶。
自動售貨機出售商品以換取栖息地的金錢。
栖息地有成熟的經濟體制,包括貨币、銀行等。
栖息地的貨币單位是代币,因為它是一個代币經濟體,并且承認了代币和計算機遊戲之間長期可靠的聯系。
許多物品都是可以随身攜帶的,化身可以拿在手中或裝在口袋裡。
其中包括各種容器、金錢、武器、工具和奇異的法器。
這裡列出了最重要的一些物品類别和它們的功能。
完整表單中的物品類型有數百個。
部分物體列表如下: 物品類别 功能 ATM 自動櫃員機;訪問化身的銀行賬戶 化身 代表栖息地世界的玩家 袋子、盒子 攜帶物品的容器 書籍 供化身閱讀的文檔(如日報) 盒子中的官僚 與系統操作員的通信 箱子、保險箱 可存放物品的容器 棍棒、槍、刀 各種武器 羅盤 指向西方 門 從一個區域到另一個區域的通道;可以上鎖 藥物 有不同類型;改變化身的身體狀态,例如療傷 電梯 樓層間的運輸工具 手電筒 黑暗處的照明工具 噴泉 景區亮點;為系統設計人員提供通信 遊戲部分 支持各種棋盤遊戲:西洋雙陸棋、跳棋、國際象棋等 垃圾桶 處理不需要的物品 膠水 系統構建工具;将物品連接在一起 地面、天空 世界的基礎 頭 化身的頭;有很多風格,可以定制 鑰匙 打開門和其他容器 小擺設 一般的無用物品;用于裝飾 魔杖 各種類型;幾乎可以做任何事情 紙張 寫筆記、制作地圖等;用于郵件系統 典當機 贖回以前購買的物品 植物、岩石 一般景物 區域 現實的基礎 傳感器 各種類型;檢測世界上其他看不見的情況 标志 允許其他物品有文本附件 點擊槍 非緻命武器 瞬移亭 快速長途運輸的方式;類似于電話亭 代币 栖息地的金錢 售貨機器人 販賣機;販賣東西 實現 接下來我們闡述一下系統的工作原理:栖息地設定的是一個面向對象的世界模型。
前端由系統内核和對象集合組成。
内核處理内存管理、顯示生成、磁盤輸入/輸出、移動通信,以及其他“操作系統”功能。
對象實現了世界本身的語義。
每種類型的栖息地對象都有一個由一組資源組成的定義,包括用于驅動顯示、音頻數據和可執行代碼的動畫。
對象的可執行代碼實現了一系列标準行為,每個行為都由不同玩家的命令或系統事件調用。
該模型與面向對象編程系統中的模型類似,如Smalltalk[69],分類、方法、消息都是如此。
這些資源消耗了大量稀缺的前端内存,因此我們不能同時将它們全部保存在内核中。
幸運的是,它們的定義是不變的,所以我們隻需在需要的時候從磁盤中交換它們,丢棄最近使用的資源來騰出空間。
當一個對象被實例化時,我們分配一個内存塊來包含對象的狀态。
對象狀态信息的前幾個字節在所有對象中都采用相同的形式,包括對象的屏幕位置和顯示屬性等内容。
當系統内核生成顯示并管理運行時的環境時,該标準信息将被内核解釋。
狀态信息的其餘部分随對象類型而變化,隻能通過對象的行為代碼訪問。
對象行為是由内核在響應玩家輸入的信息時調用的。
每個對象都響應一組标準動詞,這些标準動詞直接映射到玩家可用的命令。
每個行為隻是一個執行指定動作的子程序,為此,它可以調用其他對象的行為或向後端發送請求消息。
除了标準的動詞行為之外,對象可能還有額外的行為,這些行為是由從後端異步到達的消息所調用的。
後端還維護着面向對象的世界。
與前端一樣,後端對象具有可執行的行為和内存中的狀态信息。
此外,由于後台維護着整個栖息地世界持續的全局狀态,因此對象也由數據庫記錄來表示,這些數據庫記錄可以在“不使用”的時候存儲在磁盤上。
後端對象行為是由前端的消息調用的。
這些後端行為的工作方式大緻相同:後端從玩家的前端接收到了請求一些動作的消息,随後采取行動并使世界的狀态産生變化;後端行為将響應消息發送回前端,通知它請求的結果,并将通知消息發送到同一地區其他玩家的前端,告訴他們發生了什麼事情。
經驗教訓 為了在有限的篇幅裡盡可能多地叙述,我們将通過一系列的原則和主張來描述我們自認為學到的東西,這些原則和主張圍繞着推理和事例展開。
我們在上文提到了我們的主要原則: 多用戶環境是網絡空間概念的核心。
我們深信,網絡空間系統的一個決定性特征是它代表了一個多用戶環境。
這源于一個事實:(在我們看來)人們在這樣一個系統中尋求的是豐富性、複雜性和深度。
沒有人知道如何制造出接近真正人類複雜性的自動機器,更不用說制造一個社會了。
那麼,我們的方法甚至不是去嘗試它,而是使用計算媒介來增強真實人類之間的通信渠道。
如果我們正在構建的是一個多用戶環境,那麼自然而然地,某種通信能力必須是我們系統的基礎。
然而,我們必須考慮到第二條原則: 通信帶寬是一種稀缺資源。
我們明白這一點是因為栖息地外部強加的一個糟糕設計限制,即玩家通過一個300波特串行電話鍊接就可以得到滿意的體驗(此外,一個人還可以通過商業分組交換網絡路由,它對每個數據包傳輸施加了100—5000毫秒額外的、不可控的延遲)。
然而,即使在一個技術更先進的網絡中,帶寬仍然是稀缺的,用經濟學家的行話來說就是:可用的承載能力不是無限的。
供求法則表明,無論有多少容量,你總是想要更多。
當通信技術發展到每家每戶都鍊接了千兆波特光纖這種程度的時候,計算技術也會達到與之匹配的程度。
我們的處理器對數據日益增長的需求意味着尋找更複雜的數據壓縮技術仍然是一個熱門的研究領域(盡管到了那時,我們壓縮的可能是高分辨率的體積時間序列,或者更深奧的東西)。
計算機科學家往往是還原論者,他們喜歡用原始元素來組織系統,這些元素可以在簡單的正式模型的背景下輕松操縱。
通常,你采用少量非常簡單的基元,然後大量使用這些基元。
對于面向圖形的網絡空間系統,其誘惑是建立在位圖或多邊形或其他圖形基元上的。
然而,這些類型的表現會招緻災難。
它們源于對顯示技術不恰當的癡迷,而非系統的潛在用途。
然而,我們想要交流的最重要的部分是人的行為。
幸運的是,如果我們采用一種相對抽象的高級描述,直接處理行為概念,那麼就可以很簡潔地表示這些内容。
這就引出了我們的第三條原則: 面向對象的數據表示是絕對必要的。
從表面上來看,這種主張不太可能引起争議,因為面向對象編程目前是軟件工程行家所精選的方法。
然而,我們在這裡的意思是,你不僅應該采用面向對象的方法,而且你構建系統的基本對象應該或多或少與虛拟世界的用戶概念模型中的對象相對應,即人員、地點和人工産品。
當然,你可以使用面向對象的編程技術來構建基于多邊形的系統,但是這對于解決根本問題毫無幫助。
我們的目标是使機器之間的通信主要發生在行為層面(人們和事物正在做的事情),而不是表現層面(場景如何變化)。
對虛拟世界中某個地方的描述應該是那裡有什麼,而不是看起來像
但是在一般公衆意識到互聯網之前,在線社區就已經出現了,最有趣的早期實驗之一是由盧卡斯影業贊助的“栖息地”(Habitat)。
作為栖息地的共同創造者,奇普·莫甯斯達和蘭德爾·法默提供了他們對在設計和實施這個迷人有趣的項目時發現的問題和解決方案的業内看法。
這個項目的“神谕”蘭德爾·法默同時還分享了他在與發展中的新興社區成員互動時的觀察。
雖然栖息地是20世紀80年代末的一個項目,但是它的逸事報告在其對活躍的社會有機體的簡要描述方面依然引人入勝。
《真名實姓》的故事背景是“網絡空間”(盡管《真名實姓》出版時,“網絡空間”這個詞尚未誕生),但這是一部虛構作品。
栖息地是一個虛拟社區,使用了《真名實姓》中的一些比喻,并讓它們成為現實。
前兩篇文章發表于20世紀90年代初,最後一篇在20世紀90年代中期發表于互聯網上。
引言 盧卡斯影業的栖息地是由盧卡斯影業遊戲(盧卡斯藝術娛樂公司的一個部門)與量子計算機服務公司聯合創建的。
這可以說是創建大規模商業多用戶虛拟環境的首次嘗試。
與許多基于複雜的接口硬件和每名專用計算機用戶數萬美元費用的實驗室大不相同的是,栖息地建立在普通的商業在線服務上,使用廉價的(有人說是“玩具”)家用計算機來支持用戶互動。
盡管這有些平民化基礎,但是栖息地的目标雄心勃勃。
我們開發的系統可以在一個共享網絡空間中支持成千上萬名用戶。
栖息地呈現給用戶的是實時動畫,将他們帶入到在線模拟世界中,在這裡,用戶可以交流、玩遊戲、冒險、戀愛、結婚、離婚、創業、發現宗教、發動戰争、反抗戰争、嘗試自治。
證據顯示,栖息地項目為如何營造一個嚴肅的、具有商業價值的網絡空間環境提供了豐富的事實依據。
我們開發栖息地系統及管理生成的虛拟世界的經驗,為未來的網絡空間設計師提供了一些有趣而又重要的經驗教訓。
本文的目的是讨論其中的一些經驗教訓。
我們希望下一代虛拟世界的建設者可以從我們的經曆和(尤其是)錯誤中受益。
我們從栖息地的經驗中提煉出的重要教訓是:網絡空間更多是由參與者之間的互動來定義的,而不是由實現它的技術來定義的。
雖然我們發現,目前正在竭盡全力完成的接口技術方面的工作——數據手套[67]、頭戴式顯示器、專用渲染引擎等——既令人激動又前途無限,但是目前圍繞這一切硬件的近乎神秘的狂喜,在我們看來既過分又有點錯位。
我們不禁有一種不安的感覺,擔心它會分散我們在真正緊迫問題上的注意力。
我們願景的内核是網絡空間必然是一個多參與者的環境。
在我們看來,對于這種環境中的居民而言,重要的是他們能得到的能力,他們在那裡遇到的其他人的特點,這些不同的參與者相互影響的方式。
除了基本的通信能力外,用于向參與者呈現這種環境的技術,雖然迷人而有趣,但卻是一個次要問題。
栖息地是什麼? 栖息地是一個“多玩家在線虛拟環境”(其目的是成為一個娛樂媒介,所以,用戶被稱為“玩家”)。
每位玩家使用自己的家庭電腦作為前端,通過商用的分組交換數據網絡與一個集中的後端系統進行通信。
前端提供用戶界面,生成實時動畫顯示正在發生的事情,并将玩家輸入的信息轉化為請求發送到後端。
後端維護世界模型,執行規則,并讓每個玩家的前端了解不斷變化的世界狀态。
後端讓玩家不僅可以與世界互動,還可以與他人互動。
栖息地受到了曆史悠久的“電腦黑客科幻小說”(尤其是弗諾·文奇的中篇小說《真名實姓》)的啟發,還從許多兒時的虛構遊戲、最近的角色扮演等遊戲中得到了靈感。
其他的影響因素還有很多,就不在這裡一一列出了。
栖息地的最初版本使用Commodore64[68]作為前端。
我們被問得最多的問題是:“為什麼用Commodore64?”不知怎的,許多人都認為這是一個技術決定,但真正的原因是商業,而非技術。
栖息地最初是由盧卡斯影業用作量子通信(QuantumLink)的商業産品,量子通信是(當時)專門為Commodore64的用戶開發的一個在線服務。
當我們在1985年啟動項目的時候,Commodore64是娛樂計算市場的中流砥柱。
從那時起,它的商業和技術意義顯著下降。
然而,當時我們沒有可選擇的平台。
交易的本質是,用Commodore64作為前端和現有的量子通信主機系統(兩個Stratus小型容錯計算機)作為後端都是給定的。
屏幕的最大部分專門用于圖形顯示。
這是關于玩家在栖息地世界的當前位置的動畫視圖。
這個場景由屏幕上各種各樣的物體組成。
玩家們被我們稱為“化身”的動畫人物所代表。
化身通常是人形的,但并不絕對。
化身可以移動,拾取、放下、操縱物體,相互交談,打手勢,每一個化身都在一名玩家的控制之下。
控制是通過操縱杆,使玩家可以指向事物并發出指令。
談話是通過在鍵盤上打字來完成。
玩家輸入的文本出現在化身頭頂上卡通風格的“文字氣球”中。
栖息地世界由我們稱之為“區域”的大量離散點組成。
在鼎盛時期,原型栖息地世界大約由兩萬人組成。
每個區域都毗連其他四個區域,隻需将你的化身移動到屏幕的某一邊緣即可完成區域的轉移。
門道和其他通道可以鍊接到額外的區域。
每個區域都包含一組物品,這些對象定義了化身可以做的事情,以及玩家在電腦屏幕上看到的場景。
有些物體是結構,如地面和天空。
許多隻是風景,如樹和郵筒。
然而,大多數物體都有其功能。
例如,門可以将化身從一個區域傳送到另一個區域,并且可以打開、關閉、上鎖、解鎖。
自動櫃員機可以訪問化身的銀行賬戶。
自動售貨機出售商品以換取栖息地的金錢。
栖息地有成熟的經濟體制,包括貨币、銀行等。
栖息地的貨币單位是代币,因為它是一個代币經濟體,并且承認了代币和計算機遊戲之間長期可靠的聯系。
許多物品都是可以随身攜帶的,化身可以拿在手中或裝在口袋裡。
其中包括各種容器、金錢、武器、工具和奇異的法器。
這裡列出了最重要的一些物品類别和它們的功能。
完整表單中的物品類型有數百個。
部分物體列表如下: 物品類别 功能 ATM 自動櫃員機;訪問化身的銀行賬戶 化身 代表栖息地世界的玩家 袋子、盒子 攜帶物品的容器 書籍 供化身閱讀的文檔(如日報) 盒子中的官僚 與系統操作員的通信 箱子、保險箱 可存放物品的容器 棍棒、槍、刀 各種武器 羅盤 指向西方 門 從一個區域到另一個區域的通道;可以上鎖 藥物 有不同類型;改變化身的身體狀态,例如療傷 電梯 樓層間的運輸工具 手電筒 黑暗處的照明工具 噴泉 景區亮點;為系統設計人員提供通信 遊戲部分 支持各種棋盤遊戲:西洋雙陸棋、跳棋、國際象棋等 垃圾桶 處理不需要的物品 膠水 系統構建工具;将物品連接在一起 地面、天空 世界的基礎 頭 化身的頭;有很多風格,可以定制 鑰匙 打開門和其他容器 小擺設 一般的無用物品;用于裝飾 魔杖 各種類型;幾乎可以做任何事情 紙張 寫筆記、制作地圖等;用于郵件系統 典當機 贖回以前購買的物品 植物、岩石 一般景物 區域 現實的基礎 傳感器 各種類型;檢測世界上其他看不見的情況 标志 允許其他物品有文本附件 點擊槍 非緻命武器 瞬移亭 快速長途運輸的方式;類似于電話亭 代币 栖息地的金錢 售貨機器人 販賣機;販賣東西 實現 接下來我們闡述一下系統的工作原理:栖息地設定的是一個面向對象的世界模型。
前端由系統内核和對象集合組成。
内核處理内存管理、顯示生成、磁盤輸入/輸出、移動通信,以及其他“操作系統”功能。
對象實現了世界本身的語義。
每種類型的栖息地對象都有一個由一組資源組成的定義,包括用于驅動顯示、音頻數據和可執行代碼的動畫。
對象的可執行代碼實現了一系列标準行為,每個行為都由不同玩家的命令或系統事件調用。
該模型與面向對象編程系統中的模型類似,如Smalltalk[69],分類、方法、消息都是如此。
這些資源消耗了大量稀缺的前端内存,因此我們不能同時将它們全部保存在内核中。
幸運的是,它們的定義是不變的,所以我們隻需在需要的時候從磁盤中交換它們,丢棄最近使用的資源來騰出空間。
當一個對象被實例化時,我們分配一個内存塊來包含對象的狀态。
對象狀态信息的前幾個字節在所有對象中都采用相同的形式,包括對象的屏幕位置和顯示屬性等内容。
當系統内核生成顯示并管理運行時的環境時,該标準信息将被内核解釋。
狀态信息的其餘部分随對象類型而變化,隻能通過對象的行為代碼訪問。
對象行為是由内核在響應玩家輸入的信息時調用的。
每個對象都響應一組标準動詞,這些标準動詞直接映射到玩家可用的命令。
每個行為隻是一個執行指定動作的子程序,為此,它可以調用其他對象的行為或向後端發送請求消息。
除了标準的動詞行為之外,對象可能還有額外的行為,這些行為是由從後端異步到達的消息所調用的。
後端還維護着面向對象的世界。
與前端一樣,後端對象具有可執行的行為和内存中的狀态信息。
此外,由于後台維護着整個栖息地世界持續的全局狀态,因此對象也由數據庫記錄來表示,這些數據庫記錄可以在“不使用”的時候存儲在磁盤上。
後端對象行為是由前端的消息調用的。
這些後端行為的工作方式大緻相同:後端從玩家的前端接收到了請求一些動作的消息,随後采取行動并使世界的狀态産生變化;後端行為将響應消息發送回前端,通知它請求的結果,并将通知消息發送到同一地區其他玩家的前端,告訴他們發生了什麼事情。
經驗教訓 為了在有限的篇幅裡盡可能多地叙述,我們将通過一系列的原則和主張來描述我們自認為學到的東西,這些原則和主張圍繞着推理和事例展開。
我們在上文提到了我們的主要原則: 多用戶環境是網絡空間概念的核心。
我們深信,網絡空間系統的一個決定性特征是它代表了一個多用戶環境。
這源于一個事實:(在我們看來)人們在這樣一個系統中尋求的是豐富性、複雜性和深度。
沒有人知道如何制造出接近真正人類複雜性的自動機器,更不用說制造一個社會了。
那麼,我們的方法甚至不是去嘗試它,而是使用計算媒介來增強真實人類之間的通信渠道。
如果我們正在構建的是一個多用戶環境,那麼自然而然地,某種通信能力必須是我們系統的基礎。
然而,我們必須考慮到第二條原則: 通信帶寬是一種稀缺資源。
我們明白這一點是因為栖息地外部強加的一個糟糕設計限制,即玩家通過一個300波特串行電話鍊接就可以得到滿意的體驗(此外,一個人還可以通過商業分組交換網絡路由,它對每個數據包傳輸施加了100—5000毫秒額外的、不可控的延遲)。
然而,即使在一個技術更先進的網絡中,帶寬仍然是稀缺的,用經濟學家的行話來說就是:可用的承載能力不是無限的。
供求法則表明,無論有多少容量,你總是想要更多。
當通信技術發展到每家每戶都鍊接了千兆波特光纖這種程度的時候,計算技術也會達到與之匹配的程度。
我們的處理器對數據日益增長的需求意味着尋找更複雜的數據壓縮技術仍然是一個熱門的研究領域(盡管到了那時,我們壓縮的可能是高分辨率的體積時間序列,或者更深奧的東西)。
計算機科學家往往是還原論者,他們喜歡用原始元素來組織系統,這些元素可以在簡單的正式模型的背景下輕松操縱。
通常,你采用少量非常簡單的基元,然後大量使用這些基元。
對于面向圖形的網絡空間系統,其誘惑是建立在位圖或多邊形或其他圖形基元上的。
然而,這些類型的表現會招緻災難。
它們源于對顯示技術不恰當的癡迷,而非系統的潛在用途。
然而,我們想要交流的最重要的部分是人的行為。
幸運的是,如果我們采用一種相對抽象的高級描述,直接處理行為概念,那麼就可以很簡潔地表示這些内容。
這就引出了我們的第三條原則: 面向對象的數據表示是絕對必要的。
從表面上來看,這種主張不太可能引起争議,因為面向對象編程目前是軟件工程行家所精選的方法。
然而,我們在這裡的意思是,你不僅應該采用面向對象的方法,而且你構建系統的基本對象應該或多或少與虛拟世界的用戶概念模型中的對象相對應,即人員、地點和人工産品。
當然,你可以使用面向對象的編程技術來構建基于多邊形的系統,但是這對于解決根本問題毫無幫助。
我們的目标是使機器之間的通信主要發生在行為層面(人們和事物正在做的事情),而不是表現層面(場景如何變化)。
對虛拟世界中某個地方的描述應該是那裡有什麼,而不是看起來像