• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Creative Commons License
            本Blog采用 知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            MMORPG中游戲世界的構(gòu)建

            Posted on 2007-12-16 05:24 Fox 閱讀(3170) 評論(7)  編輯 收藏 引用 所屬分類: G游戲編程

            Author: Fox

            一個
            MMORPGMassively Multiplayer Online Role Playing Game)的架構(gòu)包含客戶端和服務(wù)器兩部分。客戶端主要涉及計算機圖形學(xué)、物理學(xué)、多媒體技術(shù)等,服務(wù)器主要涉及網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫技術(shù),而人工智能、操作系統(tǒng)等計算機基礎(chǔ)學(xué)科知識的應(yīng)用體現(xiàn)在MMORPG開發(fā)過程中的方方面面。

            一、游戲世界的劃分

            理想狀態(tài)的游戲世界僅由一個完整的場景組成,在《魔獸爭霸 III 》、《 CS 》這樣的單機游戲中,所有玩家位于該場景中,在理論上,位于該場景中的任意玩家都可以看到游戲中所有玩家并與之交互,出于公平性和游戲性(而不是技術(shù)上)的考慮,游戲中并不會這樣做。

            然而,目前的 MMORPG 中,幾乎沒有任何一款可以做到整個游戲世界只包含一個場景,因為在一款 MMORPG 中,同時在線的玩家數(shù)量成百上千,甚至是數(shù)萬人同時在一個游戲世界中交互。以現(xiàn)在的網(wǎng)絡(luò)技術(shù)和計算機系統(tǒng),還無法為這么多玩家的交互提供即時處理。因此, MMORPG 的游戲世界被劃分為大小不等、數(shù)量眾多的場景,游戲服務(wù)器對于這些場景的處理分為分區(qū)和無縫兩種。

            在分區(qū)式服務(wù)器中,一個場景中的玩家無法看到另一個場景中的玩家,當玩家從一個場景到另外一個場景跨越時,都有一個數(shù)據(jù)轉(zhuǎn)移和加載的過程(尤其是從一個分區(qū)服務(wù)器跨越到另外一個服務(wù)器時),玩家都有一個等待的時間,在這段時間內(nèi),服務(wù)器的主要工作是實現(xiàn)跨越玩家數(shù)據(jù)的轉(zhuǎn)移和加載以及后一個場景中玩家、 NPC 等數(shù)據(jù)的傳輸,客戶端的主要工作是實現(xiàn)新場景資源的加載和服務(wù)器通信。主要時間的長短主要取決于后一個場景中資源數(shù)據(jù)的大小。分區(qū)式服務(wù)器的優(yōu)點主要是各分區(qū)服務(wù)器保持相對獨立,缺點是游戲空間不夠大,而且,一旦某個分區(qū)服務(wù)器中止服務(wù),位于該服務(wù)器上的所有玩家將失去連接。

            所謂無縫服務(wù)器,玩家?guī)缀醪煊X不到場景之間的這種切換,在場景間沒有物理上的屏障,對于玩家而言,眾多場景構(gòu)成了一個巨大的游戲世界。場景之間,甚至服務(wù)器之間“沒有了”明確的界線。因此,無縫服務(wù)器為玩家提供了更大的游戲空間和更友好的交互,實現(xiàn)了動態(tài)邊界的無縫服務(wù)器甚至可以在某個服務(wù)器中止服務(wù)時,按一定策略將負載動態(tài)分散到其他服務(wù)器。因此,無縫服務(wù)器在技術(shù)上要比分區(qū)服務(wù)器更加復(fù)雜。

            目前國內(nèi)上市的 MMORPG ,大多采用分區(qū)式服務(wù)器,做到無縫世界的主要有《完美世界》和《天下貳》等,國外的 MMORPG 中,像《魔獸世界》、《 EVE 》等,都實現(xiàn)了無縫世界。

            無縫服務(wù)器與分區(qū)式服務(wù)器在技術(shù)上的主要區(qū)別是,當位于場景 S1 中的玩家 P1 處于兩個(甚至更多)場景 S1 S2 的邊界區(qū)域內(nèi)時,要保證 P1 能夠看到場景 S2 中建筑、玩家、 NPC 等可感知對象。而且邊界區(qū)域的大小要大于等于 P1 可感知的范圍,否則就可能發(fā)生 S2 中的可感知對象突然閃現(xiàn)在 P1 視野中的異常。

            無疑,無縫世界為玩家提供了更人性化和更具魅力的用戶體驗。

            二、無縫世界游戲服務(wù)器的整體架構(gòu)

            MMORPG 的服務(wù)器架構(gòu)從功能上主要劃分為三種:

            1、 登錄服務(wù)器( Login Server

            登錄服務(wù)器用于玩家驗證登錄,并根據(jù)系統(tǒng)記錄玩家信息得到其所在節(jié)點服務(wù)器,并通過世界服務(wù)器為登錄玩家和對應(yīng)節(jié)點服務(wù)器建立連接。

            2、 世界服務(wù)器( World Server

            世界服務(wù)器將整個游戲世界劃分成不同場景,將所有場景按一定策略分配給節(jié)點服務(wù)器,并對節(jié)點服務(wù)器進行管理。世界服務(wù)器的另一功能是與登錄服務(wù)器交互。因此,世界服務(wù)器是登錄服務(wù)器、節(jié)點服務(wù)器的溝通橋梁,當然,一旦玩家登錄成功,世界服務(wù)器將主要處理節(jié)點服務(wù)器間的通信。因此,世界服務(wù)器對于玩家是透明的。

            3、 節(jié)點服務(wù)器( Node Server

            節(jié)點服務(wù)器負責(zé)管理位于該節(jié)點的所有玩家、 NPC 的所有交互,在無縫世界游戲中,由于邊界區(qū)域的存在,一個節(jié)點服務(wù)器甚至要處理相鄰節(jié)點上位于邊界區(qū)域的玩家和 NPC 的信息。

            在具體實現(xiàn)上,不同的 MMORPG 為了便于管理,可能還會具有 AI 服務(wù)器、日志服務(wù)器、數(shù)據(jù)庫緩存服務(wù)器、代理服務(wù)器等。

            三、 無縫世界游戲服務(wù)器的主要技術(shù)需求

            1、 編程語言( C/C++ SQL Lua Python

            2、 圖形庫( Direct 3D OpenGL

            3、 網(wǎng)絡(luò)通信( WinSock BSD Socket ,或者 ACE

            4、 消息、事件、多線程、 GUI

            5、 OS

            三、無縫世界游戲服務(wù)器需要解決的主要問題

            1、 資源管理

            無論是服務(wù)器還是客戶端,都涉及到大量資源:玩家數(shù)據(jù)、 NPC 數(shù)據(jù)、戰(zhàn)斗公式、模型資源、通信資源等。當這些資源達到一定規(guī)模,其管理的難度不可忽視。而且,資源管理的好壞,直接關(guān)系到游戲的安全和生命。

            2、 網(wǎng)絡(luò)安全

            安全永遠是第一位的,我們無法指望所有的玩家及其所持的客戶端永遠是友好的。事實上,威脅到游戲的公平性和安全性的大多數(shù)問題,歸根結(jié)底,都是由于網(wǎng)絡(luò)通信中存在的欺騙和攻擊造成的,這些問題包含但不限于交易欺騙、物品復(fù)制。

            3、 邏輯安全

            邏輯安全按理說應(yīng)該是游戲中最基本的考慮,覆蓋的范圍也最廣最雜。隨機數(shù)系統(tǒng)是一個非常值得重視的問題,隨機數(shù)不僅僅用于玩家可見的一些任務(wù)系統(tǒng)、戰(zhàn)斗公式、人工智能、物品得失等,還可用于網(wǎng)絡(luò)報文加密等。因此,隨機數(shù)系統(tǒng)本身的安全不容忽視。另外一個常見的邏輯安全是玩家的移動,最主要的就是防止加速齒輪這樣的變態(tài)操作。

            4、 負載均衡

            MMORPG 中的負載均衡包括客戶端及服務(wù)器資源管理和邏輯處理的負載均衡,其中最難預(yù)知的是網(wǎng)絡(luò)通信的負載均衡,正常情況下的網(wǎng)絡(luò)通信數(shù)量是可以在游戲設(shè)計時做出評估的,但因惡意攻擊造成的網(wǎng)絡(luò)負載是無法預(yù)測的。因此,負載均衡所要處理的主要是實時動態(tài)負載均衡和災(zāi)難恢復(fù)。負載均衡需要解決的問題包括負載監(jiān)控、負載分析、負載分發(fā)和災(zāi)難恢復(fù)。

            5、 錄像系統(tǒng)

            錄像系統(tǒng)的構(gòu)建,主要用于重現(xiàn)關(guān)鍵數(shù)據(jù)的輸入輸出,如玩家交易、玩家充值,或者當 bug 出現(xiàn)后,為邏輯服務(wù)器(泛指上文提到的所有類型服務(wù)器,主要是節(jié)點服務(wù)器)相應(yīng)部分啟動錄像系統(tǒng)。待收集到足夠數(shù)據(jù)后,通過錄像系統(tǒng)重現(xiàn) bug 。為了使邏輯服務(wù)器不受自身時間(如中斷調(diào)試等)的影響,還可以專門設(shè)計心跳服務(wù)器來控制數(shù)據(jù)傳輸。

            四、總結(jié)

            MMORPG 中,真正的 bug 永遠存在于將來。從這一點出發(fā),關(guān)于 MMORPG 中游戲世界的構(gòu)建,怎樣苛刻的思考都不為過。

            參考資料:

            1、 [美] Kim Pallister編, 孟憲武 等譯. 游戲編程精粹5, P467-474, P516. 人民郵電出版社, 2007年9月. 北京.
            2、 [美] Thor Alexander編, 史曉明 譯. 大型多人在線游戲開發(fā), P174-185. 人民郵電出版社, 2006年12月. 北京.
            3、 [美] Dante Treglia編, 張磊 譯. 游戲編程精粹3, P117-122. 人民郵電出版社, 2003年7月. 北京.
            4、 [美] Mark DeLoura編, 王淑禮 等譯. 游戲編程精粹1, P90-93. 人民郵電出版社, 2004年10月. 北京.
            5、 [美] Douglas 等著, 於春景 譯. C++網(wǎng)絡(luò)編程 卷1. 中國電力出版社, 2004年11月. 北京.
            6、 [美] Stephen D. Huston 等著, 馬維達 譯. ACE程序員指南. 中國電力出版社, 2004年11月. 北京.
            7、 [美] Erich Gamma等著, 李英軍 等譯. 設(shè)計模式. 機械工業(yè)出版社, 2000年6月. 北京.
            8、 游戲引擎全剖析. http://bbs.gameres.com/showthread.asp?threadid=101293.
            9、 服務(wù)器結(jié)構(gòu)探討:登錄服的負載均衡. http://gamedev.csdn.net/page/351491d0-05ad-48a4-85e1-77870bc1eef3.
            10、服務(wù)器結(jié)構(gòu)探討:最終的結(jié)構(gòu). http://gamedev.csdn.net/page/28695655-974c-4291-8ac4-2589c4e770d3.
            11、談?wù)劸W(wǎng)絡(luò)游戲服務(wù)器解決方案. http://www.beareyes.com.cn/2/lib/200411/08/20041108102.htm.
            12、負載均衡——大型在線系統(tǒng)實現(xiàn)的關(guān)鍵(下篇)(服務(wù)器集群架構(gòu)的設(shè)計與選擇). http://blog.csdn.net/sodme/archive/2005/06/15/394576.aspx.
            13、云風(fēng)的BLOG. http://blog.codingnow.com/

            /*****************************************************************************
            ? 從0:00到5:00,在寫這篇隨筆的過程中,我翻找、點擊著上面的這些資料,其實還有更
            ? 多的資料,沒有記在上面,算是為開題做的準備。現(xiàn)在依然是睡意全無。越寫越覺得
            ? 不夠,越想越覺得還有更多東西寫不出來……
            ? PS:這些資料大都不是第一次翻,以前看這些資料大多只是單純的看,現(xiàn)在有目的的
            ? 看,才覺得都寫得很有味道。不管是不是同意所有觀點,都不是本文討論的重點。
            *****************************************************************************/

            Feedback

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-16 12:00 by 海邊沫沫
            又有一個超級高手橫空出現(xiàn)在cppblog了。

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-16 13:57 by mengcaizhulin
            高手就在身邊,隨時隨地都要向其學(xué)習(xí)!

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-16 14:31 by 秦歌
            碩士開題?寫的不錯,以后多交流,我的博客http://www.shnenglu.com/xczhang

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-16 22:41 by 夢在天涯
            能寫出這個來,高手,以后多交流!

            來個游戲系列的,超級受歡迎~

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-18 18:41 by 微塵
            樓主真是淵博啊!

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2007-12-21 17:49 by Xerxes
            五個小時 樓主辛苦了....大家學(xué)習(xí)了

            # re: MMORPG中游戲世界的構(gòu)建  回復(fù)  更多評論   

            2008-08-19 09:49 by 魔鬼螳螂
            有空多多交流!學(xué)習(xí)到了!
            亚洲AV无码久久| 人妻精品久久久久中文字幕一冢本| 午夜精品久久久久久久无码| 国产L精品国产亚洲区久久| 亚洲AV乱码久久精品蜜桃| 亚洲国产精品成人久久| 亚洲中文字幕久久精品无码喷水| 色欲久久久天天天综合网| 国产A级毛片久久久精品毛片| 久久强奷乱码老熟女网站| 久久久www免费人成精品| 亚洲伊人久久成综合人影院| 伊人久久大香线蕉综合网站| 中文成人无码精品久久久不卡| 久久久精品人妻一区二区三区蜜桃| 色欲综合久久中文字幕网| 久久午夜羞羞影院免费观看| 久久99精品久久久久久| 久久人搡人人玩人妻精品首页| 2021国产精品午夜久久| 一本色道久久88精品综合| 久久99精品国产99久久| 国产午夜精品久久久久九九电影 | 久久A级毛片免费观看| 蜜臀av性久久久久蜜臀aⅴ| 国内精品久久久久久久亚洲| 亚洲伊人久久成综合人影院| 99re这里只有精品热久久| 久久黄视频| 久久777国产线看观看精品| 亚洲欧美精品一区久久中文字幕| 久久亚洲AV成人无码国产| 久久强奷乱码老熟女| 亚洲第一极品精品无码久久| 麻豆久久| 国产精品无码久久久久久| 久久综合九色综合久99| jizzjizz国产精品久久| 一本久久a久久精品综合香蕉| 国产无套内射久久久国产| 久久狠狠爱亚洲综合影院|