• <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>

            colorful

            zc qq:1337220912

             

            游戲服務(wù)器架構(gòu)設(shè)計(jì)中的一些思考

            http://www.shnenglu.com/jaxe/archive/2010/04/22/113255.html

             

            1、 游戲世界由很多個(gè)游戲?qū)ο蠼M成(游戲角色、物品、NPC、技能等);

             

            2、 一個(gè)游戲?qū)ο蟮挠行?shù)據(jù)主要存放在客戶端、游戲服務(wù)器和持久性數(shù)據(jù)庫(kù)中;

             

            3、 游戲?qū)ο蟮奶幚砜蓜澐譃榕c位置有關(guān)的和與位置無(wú)關(guān)的,如公會(huì)處理、物品處理等主要行為可以看作是與位置無(wú)關(guān)的處理,而NPC(AI)、戰(zhàn)斗、移動(dòng)這類的主要行為可以看成是與位置有關(guān)的。

             

            4、 從客戶端的角度來(lái)看,游戲行為可分為四類動(dòng)作:

            a)         來(lái)自服務(wù)器端的動(dòng)作,如另外一個(gè)玩家跳起來(lái)。

            b)        本地動(dòng)作。僅僅發(fā)生在本地客戶端的動(dòng)作,不需要與服務(wù)器端或其他客戶端通訊。

            c)         先執(zhí)行后驗(yàn)證的可撤銷的動(dòng)作。客戶端先執(zhí)行,再提交服務(wù)器端驗(yàn)證,驗(yàn)證不成功通知客戶端將執(zhí)行的動(dòng)作撤銷。比如玩家控制的游戲角色執(zhí)行移動(dòng)處理。

            d)        嚴(yán)格服務(wù)器端驗(yàn)證的動(dòng)作。客戶端執(zhí)行動(dòng)作前必須經(jīng)過(guò)服務(wù)器端驗(yàn)證后才能執(zhí)行。如交易行為、攻擊其他玩家/NPC。

             

            5、 客戶端和服務(wù)器,服務(wù)器進(jìn)程之間的相互的通信從邏輯上看就是就是向RemoteObject 發(fā)起的遠(yuǎn)程過(guò)程調(diào)用(RPC),RPC主要有兩種類型:

            a)         通知(Notify)。只通知對(duì)方,而不關(guān)心和需要對(duì)方返回結(jié)果。

            b)        請(qǐng)求(Request)。向?qū)Ψ桨l(fā)起請(qǐng)求,對(duì)方處理請(qǐng)求后返回結(jié)果,發(fā)起請(qǐng)求和返回結(jié)果這個(gè)過(guò)程可以是同步或異步。游戲服務(wù)器中絕大部分RPC請(qǐng)求都是異步的。

             

            6、 響應(yīng)延遲主要是由于網(wǎng)絡(luò)帶寬和服務(wù)器處理效率引起的。應(yīng)盡可能的通過(guò)一些技巧來(lái)隱藏和減少玩家的響應(yīng)延遲。但不是所有的最新消息都能立刻發(fā)送出去(或接收處理到),因此,要在服務(wù)器端采用優(yōu)先隊(duì)列來(lái)減少重要消息的響應(yīng)時(shí)間。延遲也會(huì)由客戶端產(chǎn)生,如收到消息后的對(duì)消息的處理速度。

             

             

            7、 服務(wù)器負(fù)載,除了升級(jí)硬件設(shè)備外,可以通過(guò)一些方式來(lái)提高服務(wù)器負(fù)載。

             

            a)         保證足夠的網(wǎng)絡(luò)帶寬。

            b)        分布式運(yùn)算,合理的集群式架構(gòu)。

            c)         游戲策劃從游戲內(nèi)容上避免設(shè)計(jì)高并發(fā),高消耗的游戲行為。

             

             

             

            8、 從服務(wù)器的可伸縮性,穩(wěn)定性和高效率方面來(lái)考慮,要試著避免所有事情都在一個(gè)地方處理,盡量讓系統(tǒng)分布式運(yùn)行,但是過(guò)多的劃分功能到不同的進(jìn)程/機(jī)器上運(yùn)行,又會(huì)帶來(lái)數(shù)據(jù)的大量同步的問(wèn)題。因此可以將游戲?qū)ο蟮奶幚碇饕獎(jiǎng)澐譃榕c位置無(wú)關(guān)和有關(guān)兩種。像公會(huì),玩家信息,物品信息,組隊(duì),拍賣等等這類與位置無(wú)關(guān)的但是占用CPU資源較少的處理可以盡可能的放在一個(gè)進(jìn)程中,避免進(jìn)程間對(duì)象同步,而像NPC,尋路,AOI運(yùn)算,戰(zhàn)斗處理等與位置有關(guān)的,處理過(guò)程中特別關(guān)心對(duì)象坐標(biāo)位置的、運(yùn)算量特別大的,但是進(jìn)程間對(duì)象同步較少的,都可以單獨(dú)劃分成多個(gè)進(jìn)程。

             

            每類進(jìn)程服務(wù)的功能盡量單一。負(fù)責(zé)路由的就盡量只負(fù)責(zé)網(wǎng)絡(luò)包轉(zhuǎn)發(fā),而不再承擔(dān)其他繁重的任務(wù),負(fù)責(zé)游戲處理的就盡量讓網(wǎng)絡(luò)包流向簡(jiǎn)單。


            大規(guī)模應(yīng)用服務(wù)器(不只包含游戲服務(wù)器)是否成功主要看架構(gòu)師對(duì)問(wèn)題的解構(gòu)能力。
            問(wèn)題是什么?
            問(wèn)題的邊界在哪里?
            功能粒度劃分多細(xì)?
            解決這些問(wèn)題都需要經(jīng)驗(yàn)。

            posted on 2012-07-12 16:06 多彩人生 閱讀(161) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲国产二区三区久久| 久久精品无码一区二区三区免费| 久久亚洲国产成人影院网站 | 99久久777色| 久久久久中文字幕| 一本久久a久久精品综合香蕉| 亚洲色欲久久久综合网东京热| 久久影院综合精品| 久久久久亚洲AV成人网| 久久久久久国产精品美女 | 伊人久久大香线蕉av不变影院| 少妇人妻88久久中文字幕| 嫩草影院久久99| 嫩草伊人久久精品少妇AV| 精品久久久久中文字幕一区| 国内高清久久久久久| 久久久久婷婷| 99久久精品免费| a高清免费毛片久久| 一本色道久久99一综合| 久久99精品久久久久久不卡| 久久丫精品国产亚洲av不卡| 久久久99精品成人片中文字幕| 久久精品国产亚洲AV香蕉| 亚洲va久久久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 99精品国产免费久久久久久下载| 69国产成人综合久久精品| 久久久久久久97| 久久青青草视频| 综合久久精品色| 亚洲美日韩Av中文字幕无码久久久妻妇| 丰满少妇高潮惨叫久久久| 伊人久久大香线蕉av不变影院| 久久夜色精品国产亚洲| 午夜精品久久影院蜜桃| 九九久久精品无码专区| 久久久久人妻一区精品| 日批日出水久久亚洲精品tv| 国产免费福利体检区久久| 国产精品亚洲综合专区片高清久久久|