大型多玩家在線游戲,第 1 部分: 一種基于性能的基礎結構規模評估方法

發表于:2007-09-29來源:作者:點擊數: 標簽:游戲
大型多玩家在線游戲(Massively multiplayer online game,MMOG)是當今正在 開發 的最復雜的軟件系統之一,常常需要數十位開發人員、數百位美術師以及真正大型的基礎結構。本文是系列文章的第一篇,這個系列將介紹運行 MMOG 所需的系統、存儲設施和 網絡 。
大型多玩家在線游戲(Massively multiplayer online game,MMOG)是當今正在開發的最復雜的軟件系統之一,常常需要數十位開發人員、數百位美術師以及真正大型的基礎結構。本文是系列文章的第一篇,這個系列將介紹運行 MMOG 所需的系統、存儲設施和網絡。將介紹 MMOG 并演示一種估計游戲基礎結構規模的方法。學習如何判斷需要多大的基礎結構,以及如何運營 MMOG。

事實證明,MMOG 是開發人員當前正在面對的最復雜的技術挑戰之一。每個游戲的每個實例都是一個復雜的模擬體,由數百萬行代碼和數十億圖形元素組成,這些模擬體都在最新型計算機、存儲設施和網絡設備的大集群上執行。這種技術運行人造世界的模擬體,并管理數百萬并發玩家之間的交互。游戲開發人員必須關注游戲中的每個創造性和技術性細節。開發人員團隊必須決定在開發游戲時采用哪些技術,并決定使用哪些技術以多大的規模支持游戲。如果您是剛剛接觸游戲行業和它的術語,那么下一節將幫助您了解基礎知識。如果您熟悉游戲行業和它的術語,那么請跳到 評估游戲的規模 一節。

關鍵的行業術語(行話)

在電影業中,電影分成多種類型,比如動作和冒險片、藝術片、傳奇片、恐怖片和喜劇片。游戲也分成許多類型,包括第一人稱射擊游戲、解謎游戲、休閑游戲、聚會游戲、角色扮演游戲、比賽游戲和模擬游戲。但是與電影不同,游戲行業還在分類法中增加了一個新的維,即區分玩游戲的方式以及游戲是否可以由多個玩家同時參與。

單一玩家游戲

大家最熟悉的電子游戲類型是單一玩家游戲。這種游戲是在玩家和計算機之間進行的。從企業的角度來看,創建這種類型的游戲與創建任何其他消費產品相似,在交付產品之后,企業不需要承擔任何產品開發或運營費用。只需要對銷售、市場營銷和發行進行管理的基礎結構。

多用戶地下城、多用戶維、多用戶域

多用戶地下城、維或域(Multiuser dungeon, dimension, or domain,MUD)游戲通常是基于文本的多用戶角色扮演游戲。這種游戲允許多個玩家登錄一個中心服務器,并參與一般基于文本的冒險活動。這些游戲的歷史可以追溯到串行控制臺、大型機和小型機時代。MUD 的出現不但早于 PC 游戲,甚至早于 PC 機本身的出現。據關于 MUD 的一篇 Wikipedia 文章所說,第一個 MUD 游戲出現于 1977 年(參見 參考資料)。從基礎結構的角度來說,與其他在線游戲類型(比如多玩家在線游戲和 MMOG)相比,MUD 的需求非常簡單。

多玩家在線游戲

多玩家在線游戲涵蓋許多游戲,它們支持來自任何地方的數十位玩家。在這些比較休閑的游戲中,玩家最多為 32 人。多玩家在線游戲的范圍很廣,從基于文本的第一人稱射擊游戲(比如 Half Life 和 Unreal Tournament),到傳統社交游戲的在線版本(比如撲克牌、國際象棋和西洋跳棋)。與大型多玩家在線游戲相比,這些游戲需要的基礎結構不太復雜。

大型多玩家在線游戲

MMOG 包括一些著名的游戲,比如 EverQuest、World of Warcraft、EVE Online、Guild Wars 和 Lineage II。這些游戲在全球部署,支持數百萬玩家。這種游戲需要最復雜的基礎結構,這些結構被復制并部署在世界各地的數據中心中。開發社區常常將 MMOG 稱為永恒的世界(persistent world)。從基礎結構的角度來說,它們是相同的。

永恒的世界

永恒的世界是一種無論是否有玩家登錄,都一直保持運行的模擬環境。永恒的世界與 MMOG 之間的主要差異是受眾。永恒的世界主要面對比較小的受眾群,具有非傳統的客戶集或業務模型。來自 Linden Lab 的 Second Life 是永恒世界的典范,這個游戲不被認為是 MMOG。對于在娛樂業之外使用的模擬和游戲技術,永恒的世界常常是合適的分類,比如天氣預報、戰場模擬、全球氣候模型和海洋學模擬。

大型社會性游戲

玩 MMOG 的最大好處之一是,可以在各種協作和競爭場景中與大量的真人進行交互。這個特性將來自各個地方、具有不同社會背景的人們吸引到在線游戲中。因為真人在游戲中由一個化身來表示,所有玩家在社會身份、地理位置和經濟地位方面都是平等的(至少在剛開始時是平等的),所以游戲在玩家之間提供了一種民主的效果。在現實世界中,人們往往由于地理距離或其他許多因素而無法進行交互,游戲中的民主效果克服了這些障礙。MMOG 出現了一個新的子類別,大型社會性游戲(massively social game),這種游戲利用游戲的功能建立全球性的社區。玩家實際上組成社交網絡,他們可以使用游戲設施進行交流,比如通過移動的動畫形象在桌面之間傳遞消息,或者在虛擬的 3D 世界中聊天。這些游戲玩家可以決定自己的化身的外觀,決定他們的行為,控制對他們的世界的訪問,這些在現實世界中是做不到的。

平臺

游戲平臺就是最終用戶用來訪問游戲的設備,在技術上也稱為客戶端(client side)。主要的游戲平臺包括游戲機、PC、手持設備和移動設備。另一種常常被忽視的平臺是街機(arcade)。在美國,街機在 20 世紀 70 年代晚期和 80 年代早期達到一個高峰,之后就衰退了。但是在日本和亞洲的其他許多地方,街機仍然很流行。近來,手持設備和移動設備正在成為重要的游戲平臺。這些平臺在亞洲和歐洲非常流行,最終引起了大公司的注意,因此最近出現了許多針對這些設備的游戲。但是,本文主要關注兩種最流行的游戲平臺:游戲機和 PC。

游戲機

目前許多人都非常熟悉這種電視機附件,尤其是在過去 25 年度過童年的人。在 20 世紀 80 年代早期,有 Atari 和 Intellivision。80 年代的后幾年出現了 Nintendo 和 Sega?,F在,有 Sony® PLAYSTATION®、Microsoft® Xbox 和 Nintendo。

游戲機游戲系統在美國、日本和歐洲的部分地區占據很大的游戲市場份額。隨著市場的發展,當前和下一代的所有游戲機都能夠通過寬帶連接在一起。因此,游戲機市場仍然具有經濟潛力。

自從 Nintendo Entertainment System 在 20 年前進入游戲市場以來,許多人就不斷地預言 PC 游戲將走向消亡。但是,這些人忽視了編寫軟件的經濟動力。只要 PC 還是日常用品,就存在為它們編寫游戲的經濟動力。

“Gaming”

您可能聽說過 Nevada Gaming Commission(內華達州賭博委員會),或許會質疑它與韓國游戲 Lineage II 的關系。簡單地說,它們沒關系?!癎aming” 只是賭博業采用的委婉說法之一,它指的其實就是賭博。

PC

每年都有文章預言 PC 游戲即將走向消亡。按照本人的看法,PC 游戲不會很快消失,理由非常多。例如,PC 游戲對開發人員的要求最低。PC 還是全亞洲最流行的游戲平臺。另外,PC 上的連網游戲曾經非常流行。PC 的開放性質讓各個公司都能夠研發創新的新硬件和軟件。因為 PC 具有玩游戲之外的其他功用,所以 PC 的裝機量總是非常大的,這就產生了很大的市場。為 PC 開發的技術似乎總能夠在 PC 游戲中找到用武之地,比如鼠標、彩色圖像、3D 加速、多聲道音頻、連網支持、基于 Web 的技術、音頻輸入、實時文本和語音聊天以及多線程。喜歡冒險的 PC 游戲開發人員采用所有這些技術來改進游戲體驗。沒有跡象表明這種動力會很快消失,所以在可以預見的時期內 PC 還會是所有游戲類型的流行平臺。

從基礎結構的角度來說,過去可以構建一個通用的在線游戲服務器基礎結構,支持任何能夠連網的客戶機平臺。由于最近出現的游戲機平臺,情況似乎有所變化。這個新的趨勢給游戲開發人員造成了新的復雜性,這超出了本文的范圍。





回頁首

對全球性在線游戲進行劃分

為了控制在線運營的復雜性,游戲行業使用一些合同條款和一種標準方法將全球劃分為便于管理的區域。

全球

為了解決日益增長的全球需求,多玩家在線游戲公司往往在他們認為有足夠大市場的地理位置建立站點,從而保證能夠收回投資。每個全球性玩家社區都由幾個按照戰略布局的數據中心提供服務。每個數據中心可能為一個地區或國家服務。

站點

多玩家在線游戲常常有許多游戲站點,甚至有許可機制,個人或公司(比如寬帶運營商)在簽定許可協議之后就可以運營游戲的實例。每個站點支持一個地理區域中的玩家社區。當然,各個游戲的玩家社區的規模和地理劃分有很大差異。

管理游戲世界規模的模式

對于多玩家在線游戲和 MMOG,使用兩種不同的 “模式” 來提供多玩家體驗。這兩種模式都對整個玩家社區進行劃分。一般情況下,玩家社區劃分進一個游戲世界的多個拷貝,即戰場、賽道等的實例。在人類歷史上,還沒有別的娛樂形式能夠讓數千甚至數百萬人同時參與一項活動。當前,在 1000 萬人參與時,游戲體驗就不太好了。

對于 MMOG,要根據技術和市場兩個因素決定游戲世界的規模。也就是說,游戲設計者要根據娛樂性和經濟因素決定一個游戲世界容納的玩家數量。游戲開發人員很難讓這個數量最大化,從而降低基礎結構的復雜性。

對于多玩家在線游戲,一個游戲實例中的并發玩家數量主要取決于引擎中使用的技術。為運動、第一人稱射擊和比賽游戲設計的大多數多玩家在線游戲引擎足以處理 16、32 或 64 個并發玩家。

全新的(單實例)世界

一些著名的公司(比如 EVE Online 的開發商 CCP)創建了單實例 MMOG 游戲,并證明了他們的嘗試是有積極效果的。這些公司率先嘗試用單實例 MMOG 來解決可玩性和技術問題。在這些問題之中,必須解決單實例 MMOG 的內容創建問題。允許玩家創建內容可能是一個解決方案。玩家創建的內容不是在線游戲中的新概念,但是玩家擴展游戲世界的能力會消除實現單一世界在線游戲的最大障礙。但是,允許玩家在游戲中添加內容會導致許多問題,包括游戲管理問題。盡管如此,游戲行業內外的實踐都反復地證明,積極參與游戲的社區可以大大加強游戲的吸引力,并延長游戲的生存期。

單實例世界的其他可玩性問題是可以解決的。(尋寶的)資源缺乏問題可以通過創造性的游戲方法來解決,比如尋寶系統可以根據尋找資源的玩家數量來管理尋寶資源。交易區域過分擁擠的問題是單實例世界固有的另一個概念性問題。這可以通過創造性的交易方式來避免?!疤摂M” 賣家和由非玩家角色(NPC)進行寄售是兩個例子。

困擾單世界游戲的技術問題也是可以解決的。一些技術使軟件系統能夠動態地擴展和收縮,比如優化的網格應用程序(參見 參考資料)。這些技術使支持單游戲實例所需的技術基礎結構可以擴展,而不會破壞現有的游戲。最后一個技術障礙是延遲,也就是玩家的物理位置對游戲效果的影響。幸運的是,依賴全球實時系統的其他行業對這個問題已經有解決方案了。在地理上分布的金融交易系統就是這樣的系統,能夠實時地對全球的用戶交互做出響應。

單實例在線游戲對于開發人員的好處是,大大降低了開發、部署和運營的成本。對于玩家的好處是大大增加了可玩性。





回頁首

評估游戲的規模

因為 MMOG 是在全球范圍部署數十或數百個拷貝的應用程序,支持數百萬用戶,所以評估所需的技術規模是一項艱巨的任務。與任何復雜的系統一樣,首先需要將系統分割成比較小的容易處理的問題。但是,即使在比較容易理解的層次上,MMOG 涉及的各種問題也讓人覺得不知道從哪里下手。

有一條公理:“最好從用戶界面開始”。在游戲中,用戶界面由許多東西組成,比如復雜的 3D 圖形、2D 菜單、六聲道的動態觸發的音樂、可調音量的聲音效果、3D 定位和移動以及 2D 導航。盡管界面如此豐富,但是在客戶機上只有兩個技術指標對游戲的服務器基礎結構有影響:網絡吞吐量和延遲需求。因此,在了解構建 MMOG 所需的物理基礎結構的規模時,首先要了解這些問題。

吞吐量就是系統在任何給定的時間間隔內可以處理的事務數量,比如每秒一百萬個事務。延遲或性能是系統完成任何給定的事務所花費的時間(例如,40 毫秒)。

一定要注意,吞吐量和性能是兩個不同的概念。每秒執行一百萬個事務并不意味著每個事務都可以在一百萬分之一秒內執行完。每分鐘執行一百萬個事務可能意味著可以同時處理一百萬個耗時一分鐘的事務。事務仍然需要一分鐘才能完成。每秒事務數(TPS)不是衡量應用程序的 “實時性” 的合適指標,對于在線游戲也是如此。

因此,衡量任何游戲玩起來是否流暢的主要指標是響應時間。您可能會問,“合理的響應時間是多少?” 對于國際象棋這樣的游戲,時間可以比較長,因為玩家考慮的時間很長。通過游戲機訪問的多玩家在線游戲具有嚴格且快速的性能規則,這是因為顯示設備具有固定的刷新速率。具體地說,整個游戲必須在下一次刷新顯示之前更新。對于電視機,每秒有 24 次掃描。對于 PC(多玩家在線游戲當前的主要平臺),要求更高。目前,大多數 PC 游戲玩家將顯示器設置為每秒 60 幀以上。

對于游戲,必須對用戶輸入進行取樣,從而計算它對環境的影響;取樣之后必須將更新發送到服務器,從而根據游戲中的其他所有變化調整這些更新。最后,服務器將結果發送回客戶機;客戶機接收結果之后,就可以用圖形顯示更新 —— 所有這些步驟要在 60 分之一秒內完成。幸運的是,在現代的普通處理器上,這些操作只需幾微秒就能計算出用戶操作的影響。





回頁首

兩個世界(類型)的情況

既然我們已經了解了當前兩種主要在線游戲類型(通常稱為多玩家在線游戲和大型多玩家在線游戲)之間的差異,就一定要了解它們對玩家體驗和游戲類型的影響,以及它們對所需的基礎結構的重要影響。對于喜歡計算機科學的人來說,多玩家在線游戲和 MMOG 代表的體系結構模式會導致完全不同的操作模型。到編寫本文時,交互式娛樂業還沒有為多玩家在線游戲和 MMOG 體系結構創建標準的名稱,所以我們將它們分別稱為 “勻質的(homogeneous)” 和 “分層的(tiered)”?,F在,我將解釋這些游戲所需的基礎結構是什么樣的。

多玩家在線游戲基礎結構層

對于勻質型的體系結構,服務器執行的功能并不分層。在許多情況下,簡單在線游戲的幾個實例運行在一個服務器上,它們甚至不必相互通信。在略微復雜一點兒的情況中,服務器平等地相互通信來支持多玩家在線游戲。在這種體系結構中,每個服務器的作用相同。當游戲增長時,只需增加更多的服務器。如果實現的方式合適的話,游戲將會自動地開始使用新的服務器。

MMOG 基礎結構層

與勻質型的體系結構相反,在分層型或分片型體系結構中,玩家連接到一個服務器層。這個層與另一個執行特定功能的服務器層進行通信,那個服務器層又與另一個執行另一功能的服務器層進行通信。網絡負責將這些連接在一起。另外,當需要擴大游戲容量時,在每一層中都可以增加服務器。

分層型或分片型 MMOG 使用游戲世界的數十甚至數百個拷貝來支持數量龐大的玩家?!捌╯hard)” 這個詞通常用來描述圍繞一種傳統應用程序模式設計的各個服務器。這種模式是多層的 Model-View-Controller(MVC)。MMOG 中的每個片劃分成三個主要的層。數據庫層在最下面。數據庫層上面的一層常常稱為游戲引擎(或游戲服務器)。在這一層上面的一層常常稱為前端。這個前端層常常進一步劃分為幾個子層,比如登錄、邊界和負載平衡。最后,所有 MMOG 都需要游戲防火墻和到互聯網的連接。

性能因素

有許多因素會顯著影響 MMOG 的性能,比如:

每個玩家每秒傳輸的平均數據量:這對于了解網絡和前端基礎結構很重要。 玩家的目標總數量:必須精確地估計將玩這個游戲的玩家數量。 并發玩家的目標總數量:在所有注冊的玩家中,要計算出同時在線的玩家數量。 每個地理區域玩家的目標總數量:地理區域的劃分應該與世界不同地區中玩這個游戲的玩家數量相匹配(例如,上海、北京、首爾、東京、悉尼、洛杉磯、西雅圖、奧斯汀、紐約、倫敦、巴黎、慕尼黑等等)。 每個地理區域并發玩家的目標數量:根據游戲的情況劃分地理區域之后,要判斷每個地理區域中同時在線的玩家數量。 每個實例并發玩家的目標數量:要計算每個游戲實例可以支持的玩家數量,但是這常常難以判斷。 “世界數據” 的大?。哼@個指標是可控制的,但是變化范圍很大,它是指數據庫中將存儲的信息量。 與玩家相關的數據的大小范圍:這是指一個玩家在玩游戲期間將生成的持久數據量。

對這些因素進行評估

一般來說,在估計 MMOG 的規模時,首先要估計游戲的全球目標用戶社區會有多大。接下來,需要判斷每個地理區域的目標用戶社區。決定了每個地理區域的站點數量之后,就得到了每個站點支持的用戶數量。然后,將這些信息與游戲世界的每個實例可以支持的用戶數量相結合,就可以得出使用傳統體系結構方法評估 MMOG 基礎結構規模所需的大多數基本信息。





回頁首

MMOG 中的各個層

為了支持 MMOG 中的大量用戶,游戲的服務器端是由數十或數百臺服務器組成的復雜配置,各個服務器執行不同的功能。這個基礎結構常常劃分為層。每層執行與其相關的一組功能。通常情況下,MMOG 采用的體系結構模式籠統地稱為 “n 層體系結構”。按照最基本的形式,這個體系結構可以分為三層:前端層、中間層和數據庫層。

評估前端層規模

在線游戲是網絡攻擊的主要目標之一。它們對那些喜歡搞破壞的個人和團體似乎很有吸引力。因此在線游戲一定要防御網絡攻擊。防御的最前沿是高性能的網絡硬件和良好的安全設施以及防火墻層,從而防御拒絕服務攻擊、包碎片攻擊和其他典型的強力互聯網攻擊。

評估中間層規模

中間層的規模取決于游戲引擎本身的體系結構。這一層是放置游戲引擎的地方。這一層的規模幾乎完全取決于游戲引擎的實現。一般來說,大多數 MMOG 引擎在每個服務器上可以處理 200 到 600 個玩家;在使用現代處理器的情況下,許多公司都宣稱每個游戲引擎服務器可以支持 600 個用戶。一些設計新穎的游戲引擎甚至可以支持這個數量的 10 倍。

評估數據庫層規模

數據庫層必須盡可能沒有延遲地處理環境中的事務。玩家的每次移動以及每個物體和怪物的變化,都必須記錄在游戲的數據庫中。但是,即使是最大的游戲世界,它的數據庫也不能與大公司的數據倉庫相提并論。游戲的模式也相當簡單。這些因素使多玩家在線游戲引擎可以利用并行數據庫技術,比如對稱多處理器,以及其他大內存系統。只需稍加處理,多玩家在線游戲的大多數工作集就可以放在一個大系統的主內存中。

關于游戲數據庫的注意事項

當一個用戶退出 MMOG 時,游戲的永恒世界仍然繼續運行。必須保存這個玩家所做的操作的所有信息、玩家退出時的位置以及玩家擁有的物品(關于 MMOG 設計的持久化機制的更多信息,請參見 參考資料 部分)。

在 MMOG 中,數據庫活動的性質非常特殊。事務負載主要是大量簡單的更新和讀取。例如,玩家的每次移動、物品屬性和人物屬性常常需要記錄在數據庫中。因此,每當玩家移動他的游戲人物時,都要在數據庫中更新位置數據。在 MMOG 中,會有成百上千的玩家不斷地進行這些更新。

一般情況下,MMOG 使用與銀行、金融公司、交易所和醫療記錄系統相同的數據庫技術。但是,與傳統的業務系統不同,MMOG 中的數據模式非常簡單,而且在數據庫表上執行的事務都是簡單的更新和讀取。不幸的是,MMOG 的規模已經接近了傳統數據庫的體系結構極限。游戲業正在對非傳統數據庫引擎進行許多研究,希望實現更好的性能和更低的延遲。經驗表明,內存數據庫可以提供出色的性能和很低的延遲。有一些出色的數據庫引擎技術能夠為延遲關鍵型應用程序提供 ACID(原子性、一致性、隔離性和持久性)事務(關于 ACID 的更多信息參見 參考資料)。這些技術常常將數據分布在幾個服務器上,因此會跨這些系統分發查詢,這使數據集完全駐留在內存中,而且幾個系統可以并行執行查詢。





回頁首

規模評估的簡單方法

了解了與 MMOG 規模評估相關的大多數因素,并大致了解了對各個層進行規模評估的方法之后,主要關注點就可以轉到 MMOG 規模評估的兩個最重要的因素上:網絡吞吐量和延遲需求。

對大型基礎結構進行規模評估本身就是一門科學。有意思的是,對新的高速公路系統進行規模評估所用的技術也可以應用于 MMOG。簡單地說,這種技術要尋找關鍵的容量因素和關鍵的性能因素。換句話說,要尋找關鍵的瓶頸。找到關鍵瓶頸的好處是,只要針對這個瓶頸增加資源,就能得到立桿見影的效果。在理想情況下,針對關鍵瓶頸增加資源,就能夠成正比地提高整個系統的性能。如果找到了一些瓶頸,但是克服瓶頸的措施只使性能提高了百分之五或百分之十,那么就說明應該將精力花在別的地方了。如果克服瓶頸帶來的改進很小,就很難證明值得這么做。如果找到了關鍵的瓶頸,性能可以得到很大改進,那么增加資源就是很值得的。

因此,關鍵的瓶頸就是對容量(“多少”)和速度(“多快”)限制最大的瓶頸。關鍵瓶頸通常用這兩個指標來衡量。找到指標之后,就可以用它來評估整個 MMOG 基礎結構的規模。

對于 MMOG 來說,關鍵瓶頸很明確 —— 游戲服務器與客戶機之間的鏈路??梢苑判牡丶僭O CPU、內存和硬盤的速度比網絡快得多。知道了瓶頸之后,就要評估這個瓶頸的影響。換句話說,識別出瓶頸之后,就可以判斷對基礎結構規模評估最重要的性能指標 —— 速度和容量。

速度因素涉及每個客戶機需要的每秒比特速率。不幸的是,由于存在許多復雜的因素,常常會發現很難查明客戶機和服務器之間需要的帶寬,除非能夠進行實際的度量。這意味著,需要構建完整的客戶機和服務器,然后才能判斷所需的帶寬。

MMOG 的容量因素甚至更復雜。這個問題涉及到有多少用戶同時玩這個游戲,而這個數字很難準確地估計。這個條件可以由游戲設計或業務模型來決定。無論通過哪種方式,必須確定一個數字,而且這個數字必須基本準確。

設計人員可能犯兩種錯誤:

如果過高地估計每個實例的玩家數量,就很可能將投資浪費在不必要的設備上。 如果低估了玩家數量,設備就可能不足以支持游戲的運營,玩家會覺得游戲不流暢,因此放棄這個游戲。

沒有什么方法能夠精確地估計游戲會有多少玩家。只需進行比較準確的估計,以免浪費投資。經驗表明,高估要比低估好一些。

在決定了要支持的并發玩家數量之后,就可以將注意力轉移到計算 MMOG 的關鍵因素。只需將并發玩家數量與每個玩家所需的帶寬相乘,得出基礎結構的前端必須提供的總帶寬。在判斷并發連接數量以及每個前端服務器每秒可以處理的字節數時,網絡經驗是很重要的。

下一層的規模評估很復雜,因為它在很大程度上取決于實現游戲引擎的方式。對于游戲引擎層,可以可靠地假設瓶頸在內存/CPU 帶寬上,而不是通信。如果是這種情況,那么就可以計算具有特定 CPU 和內存配置的一臺雙向服務器可以支持多少個并發用戶。有一條經驗規則:對于大多數游戲,每臺前端服務器可以讓至少四個游戲引擎服務器達到飽和。在游戲開發的早期階段,可以使用這條經驗規則決定大致的游戲引擎服務器數量。

與前兩層的情況相反,數據庫層的規模評估相當容易。答案是兩臺數據庫服務器,因為過去幾十年人們一直在設計和改進關系數據庫技術?,F代的關系數據庫具有驚人的容量,在多 CPU 系統上執行效果非常好。在估計出并發玩家數量之后,就可以估計每秒事務量。得到結果之后,只需訪問一個關系數據庫性能基準站點,查找能夠滿足需要的系統。找到了能夠滿足事務需求的 CPU 和內存配置之后,只需購買兩臺這樣的服務器,并將它們配置為 active-active 集群。在理想情況下,一臺數據庫服務器就能夠處理游戲的全部負載,但是使用兩臺可以在成本和風險之間取得合理的平衡。與別的組件相比,數據庫和數據庫服務器不容易崩潰。選擇 active-active 集群的原因是,現代的數據庫集群技術很成熟,光纖連接的存儲系統也相當便宜,所以實際上沒有理由不采用這種方案。

每個游戲開發人員都希望將整個游戲數據庫放在內存中。在這種情況下,性能會非常出色,完成事務的時間可以接近一次函數調用的時間。但是,這也意味著系統必須有非常大的物理內存。有什么現實的解決方案嗎?有一種稱為 “distributed shared nothing(分布式非共享)” 的數據庫類型,它有可能提供將整個數據庫放在內存中的能力。到編寫本文時,在系統中安裝 4GB 內存是比較經濟的方案。shared nothing 數據庫系統可以在一個系統陣列上分派數據和查詢。例如,如果將 12 個 4GB 系統集合在一起,它們就能夠為整個 40GB 的數據庫提供足夠的 RAM,同時還能運行操作系統和其他任務。

注意:游戲事務與業務事務有很大差異。在游戲運行期間,會對數據庫進行大量非常小的讀取和更新。游戲引擎不需要對星型模式做大量聯結。游戲與決策支持系統(DSS)和在線事務處理(OLTP)系統完全不一樣。游戲的負載更接近于 Lightweight Directory Aclearcase/" target="_blank" >ccess Protocol(LDAP)或電話簿查詢:對簡單的表執行大量的小事務。

關于延遲的考慮因素

到目前為止,本文一直回避了影響多玩家在線游戲和 MMOG 的可玩性的最重要的因素:延遲。描述延遲的相關因素及其評估方法的最佳方式是用交通進行類比??梢詫⒃诰€游戲中的延遲與您開車從家里到商店并返回的時間進行對比。開車來回的時間受到以下因素的影響:開車去商店的速度,在商店里購物的效率,將物品裝上車的效率,返回時的速度。汽車的馬力不足,商店的組織混亂(比如收銀臺設計不合理),商店里排長隊,交通擁擠,這些都會對往返時間產生顯著的影響。

如果希望降低延遲,就需要增強所有這些方面的能力。還用交通來類比:可以將小貨車換成馬力強勁、容量更大而且速度更快的大貨車。還可以選擇更寬、車道更多的公路,以此避免交通擁擠。還可以提前打電話給商店訂貨。商店可以將貨物準備好,放在大箱子里,等您的大貨車一到就可以裝貨了。貨車可以開進商店的自動裝貨通道,裝貨系統自動地將箱子放進貨車車廂。大貨車甚至可以走高速公路上專用的大容量汽車車道。

這種類比聽起來可能有點兒可笑,但是它說明了要點。這個場景中的所有元素都代表網絡技術中的某個組件;如果要降低延遲,可以修改所有這些組件,從特別設計的數據包(比如利用 jumbo 數據包這樣的 IPv6 擴展)到 Quality of Service 協議(使用 IP 中的 QoS 選項)。如果在客戶機和服務器之間傳輸的數據的設計不合理(就像是速度緩慢的笨重的汽車),游戲服務器的效率低下(就像是老式的家庭商店),那么數據包的往返時間就好不了。反之,如果對客戶機和服務器之間傳輸的數據進行適當的設計,讓服務器像新型跑車那樣高效率,那么往返時間就可以降低。

這里的要點是,延遲會受到游戲引擎和客戶機通信系統方面的設計決策的影響。一些出色的技術可以幫助優化數據包、減少數據包的數量并減少傳輸時間。緩存、預獲取數據、隊列優化、亂序傳輸和接收、連接池、提示和并行連接都是相當好的技術,可以在任何多玩家在線游戲中利用它們降低延遲。

當然,我們還是沒有提到對 MMOG 中的延遲影響最大的因素 —— 互聯網的速度。無論您是否相信,我們能夠對這個問題采取一些措施。首先,一定要選擇多個適當的站點駐留設施,它們一定要具有寬帶提供商提供的低延遲連接,可以為特定的市場提供充足的服務。降低互聯網延遲的最佳方式是將站點駐留在寬帶服務提供商的基礎結構中。提供商希望通過多玩家在線游戲給他們的網絡增加價值,因此這種方式越來越可行了。對于在線第一人稱射擊游戲、比賽游戲、運動游戲和休閑游戲,這是更可行的方式;因為在這些游戲中永恒世界數據不是游戲的中心,而且玩家往往按照地理位置分組。

后勤基礎結構的規模評估

對于整個 MMOG 的規模評估來說,完成游戲引擎基礎結構的規模評估只是完成了一半兒的工作。計費和帳號管理系統同樣復雜,而且對于 MMOG 的成功也同樣重要,尤其是因為在玩家登錄期間要使用這些系統。對于計費系統的規模評估,要考慮用戶的數量和付費方法。

在不同的地理區域之間,付費方法差異很大。令人吃驚的是,MMOG 是首批真正全球性的在線服務之一,也就是一個服務供所有地區的人們使用。這給游戲業帶來了一些獨特的難題。例如,在北美,信用卡/借記卡系統是最普遍的付費方法,只有少量的預付費卡。在歐盟,預付費卡的使用量比在北美多一些。在亞太地區,尤其是中國,信用卡系統還沒有普及,預付費卡系統是主要的付費方法。在所有這些地區中,無論采用哪種付費方法,付費處理和計費通常是一項外包的業務。通常,在每個地區,有幾個公司專門從事游戲在本地區的收費。華盛頓州 Bellevue 的 InfoSpace 和北京的 YeePay(易寶)就是這樣的公司。

付費系統本身是一種很成熟的后勤基礎結構組件。許多業務咨詢公司為電信公司或服務部門提供過咨詢,他們可以幫助游戲公司以最小的代價建立付費系統??紤]構建 MMOG 的任何公司都應該認真考慮雇傭一家在付費系統方面有經驗的咨詢公司。無論從短期效果還是長期效果來看,這樣做都是有利的。從業務的角度來看,MMOG 開發商和發行商對互聯網服務的收入進行分成。按照這種模式,許多公司成功地構建了能夠集成進游戲中的付費系統。

如您所知,規模評估并非一項簡單的任務。好在它也不是完全沒有規律的;而且通過做出幾個合理的預測,就可以避免許多風險,避免浪費資金。有經驗的運營商會讓游戲更受歡迎,不應該低估他們的作用;在選擇運營商時應該把期望值定得高些。有能力的運營商可以理解您的環境,能夠更好地評估每個基礎結構層的規模。





回頁首

結束語

規模評估是 MMOG 項目中最具風險而且對成本影響很大的部分,您已經學習了如何處理這個問題。接下來,還有另一個重要的問題需要注意。您已經投入大量時間和資金開發出最新、最出色的游戲,那么將它們放在哪里呢?游戲的駐留并非一項簡單的任務,應該認真考慮。駐留的經濟影響很難評估。錯誤的決定會給游戲公司帶來很大的損失。本系列的第 2 部分將從基礎結構的規模評估轉移到在實際駐留和運營 MMOG 時必須考慮的經濟因素。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97