青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

教父的告白
一切都是紙老虎
posts - 82,  comments - 7,  trackbacks - 0

我們一開始的游戲邏輯層是基于網(wǎng)絡(luò)包驅(qū)動(dòng)的,也就是將 client 消息定義好結(jié)構(gòu)打包發(fā)送出去,然后再 server 解析這些數(shù)據(jù)包,做相應(yīng)的處理。

寫了一段時(shí)間后,覺得這種方案雜亂不利于復(fù)雜的項(xiàng)目。跟同事商量以后,改成了非阻塞的 RPC 模式。

首先由處理邏輯的 server 調(diào)用 client 的遠(yuǎn)程方法在 client 創(chuàng)建出只用于顯示表現(xiàn)的影子對(duì)象;然后 server 對(duì)邏輯對(duì)象的需要client 做出相應(yīng)表現(xiàn)的操作,變成調(diào)用 client 端影子對(duì)象的遠(yuǎn)程方法來實(shí)現(xiàn)。

這使得游戲邏輯編寫變的清晰了很多,基本可以無視網(wǎng)絡(luò)層的存在,和單機(jī)游戲的編寫一樣簡單。

本質(zhì)上,這樣一個(gè)系統(tǒng)跟網(wǎng)絡(luò)包驅(qū)動(dòng)的方式?jīng)]有區(qū)別;但是從編碼表現(xiàn)形式上要自然很多。正如 C 語言也可以實(shí)現(xiàn)面向?qū)ο螅珔s沒有 C++ 實(shí)現(xiàn)的自然一樣。在這個(gè)系統(tǒng)中,引擎封裝了對(duì)象管理的部分,使得邏輯編寫的時(shí)候不再需要處理討厭的對(duì)象數(shù)字 id ;還隱藏了消息發(fā)送或廣播的問題。

我把玩家控制的角色,和服務(wù)器上你的角色分做兩個(gè)東西。即,你控制的你,和服務(wù)器認(rèn)為的你就分開了。服務(wù)器認(rèn)為的你,你看見的服務(wù)器上的其他人是一類東西。操作自己的角色行動(dòng)時(shí),你通過 client 上的控制器的遠(yuǎn)程方法向服務(wù)器發(fā)送指令;而服務(wù)器通過遠(yuǎn)程調(diào)用每個(gè)角色的遠(yuǎn)程方法讓 client 可以收到感興趣的所有角色的行為。

這樣,client 永遠(yuǎn)都是通過一個(gè)控制器調(diào)用其遠(yuǎn)程方法來告訴服務(wù)器"我要干什么",而服務(wù)器的邏輯層則通過調(diào)用其上所有邏輯對(duì)象的遠(yuǎn)程方法來改變每個(gè)對(duì)象的狀態(tài)。而引擎就根據(jù)每個(gè)鏈接的需要,廣播這些消息,使得每個(gè) client 上對(duì)應(yīng)的影子對(duì)象可以收到狀態(tài)改變的消息。

這些,就是半個(gè)月來我跟同事一起做的工作。當(dāng)然,由于我們用腳本編寫邏輯層,這樣,腳本接口可以比 C 接口實(shí)現(xiàn)的漂亮的多。

首先是自定義格式的接口描述文件,用自編寫的工具自動(dòng)編譯成對(duì)應(yīng)腳本代碼。我們只需要在腳本中編寫對(duì)應(yīng)的類,就可以自動(dòng)響應(yīng)遠(yuǎn)端調(diào)用的方法了。而調(diào)用遠(yuǎn)程方法,也跟本地方法保持同樣的形式,寫起來跟本地函數(shù)調(diào)用沒有區(qū)別。這在以前用 C/C++ 編寫邏輯的時(shí)候是很難做到的。

其次,引擎內(nèi)部做好對(duì)象的管理工作,負(fù)責(zé)把通訊協(xié)議上的 id 轉(zhuǎn)換成邏輯層中的對(duì)象傳遞給邏輯層使用。

再次,enum 這樣的類型再也不需要用一些數(shù)字的常數(shù)了,也不需要在腳本額外的定義出來。可以在接口文件中定義好,經(jīng)過引擎的處理后,邏輯層可以直接用更為友好的字符串代替,而不失去效率。

編寫邏輯的程序員不再需要關(guān)心網(wǎng)絡(luò)的問題后,就可以把心思放在細(xì)節(jié)上。

最后,對(duì)于實(shí)現(xiàn)行為預(yù)測(cè)來補(bǔ)償網(wǎng)絡(luò)延遲的特性上。在先前的版本中,我們?yōu)榱藢?shí)現(xiàn)這個(gè),花了不少的氣力。主要是將時(shí)間戳信息放在基礎(chǔ)通訊協(xié)議中來輔助實(shí)現(xiàn)。具體的消息包收到后,再計(jì)算延遲時(shí)間來推算當(dāng)前的狀態(tài)。現(xiàn)在,可以把時(shí)間信息封裝到 RPC 中,讓每個(gè)遠(yuǎn)程方法自動(dòng)帶有延遲時(shí)間,方便計(jì)算。按模擬程序的實(shí)際效果上看,單單位置同步的預(yù)測(cè)策略,可以讓延遲在 8 秒之內(nèi)的玩家可以忍受;而延遲小于 1 秒的時(shí)候,幾乎不會(huì)受到滯后的影響了。

關(guān)于每個(gè)鏈接感興趣的信息的問題,決定了每個(gè)邏輯對(duì)象的狀態(tài)改變要通知哪些人。目前的想法是獨(dú)立到單獨(dú)進(jìn)程去處理,我們?cè)谔幚磉B接的服務(wù)器和處理邏輯的服務(wù)器之間設(shè)置單獨(dú)的服務(wù)器來管理每個(gè)鏈接感興趣的對(duì)象,這個(gè)任務(wù)相對(duì)單一且責(zé)任重大,獨(dú)立出來可以大大減輕邏輯服務(wù)器的復(fù)雜度。

posted on 2009-09-09 10:42 暗夜教父 閱讀(892) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Game Development

FeedBack:
# re: 目前我們的游戲服務(wù)器邏輯層設(shè)計(jì)草案(轉(zhuǎn)帖于:云風(fēng)的BLOG)
2009-12-26 05:56 | 浩毛
bigworld的設(shè)計(jì)思想  回復(fù)  更多評(píng)論
  

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一区二区av电影| 亚洲国产导航| 国产精品你懂得| 久久综合精品国产一区二区三区| 亚洲精品视频啊美女在线直播| 女人天堂亚洲aⅴ在线观看| 亚洲伊人观看| 欧美在线亚洲| 久久久噜噜噜久久| 久久综合激情| 亚洲大胆女人| 日韩午夜激情电影| 亚洲天堂第二页| 久久精品国产综合精品| 美女脱光内衣内裤视频久久影院| 欧美在线电影| 欧美日韩国产一中文字不卡| 国产香蕉久久精品综合网| 伊人久久亚洲热| 日韩亚洲欧美精品| 欧美一级片在线播放| 亚洲高清不卡一区| 亚洲在线网站| 亚洲第一黄色网| 亚洲综合视频在线| 欧美精品一区二区蜜臀亚洲| 国产精品igao视频网网址不卡日韩| 国产视频在线观看一区| 99re这里只有精品6| 久久久久久久综合| 欧美日韩亚洲综合一区| 在线播放视频一区| 久久aⅴ国产欧美74aaa| 亚洲人成网站777色婷婷| 欧美伊人久久久久久午夜久久久久| 欧美乱妇高清无乱码| 亚洲精品一区二区三| 亚洲日本电影在线| 美女视频黄a大片欧美| 亚洲国产色一区| 欧美激情91| 欧美日本免费| 一本大道av伊人久久综合| 欧美成人综合一区| 欧美成人精品1314www| 亚洲精品在线三区| 亚洲激情视频在线| 欧美精品一区二区三区在线看午夜 | 久久精品国产精品亚洲综合| 国产精品乱码一区二区三区| 亚洲欧美日韩高清| 久久久久国产精品一区三寸 | 欧美成人在线网站| 一区二区三区不卡视频在线观看 | 亚洲一区二区三区四区中文| 日韩亚洲欧美高清| 国产日本欧洲亚洲| 欧美大片在线看| 国产精品99免费看| 久久青草久久| 久久免费视频网站| 欧美人牲a欧美精品| 亚洲欧美日韩中文播放| 美女久久一区| 久久综合亚州| 国产欧美二区| 亚洲一区二区三区777| 99精品福利视频| 久久夜精品va视频免费观看| 欧美一区成人| 国产九九精品| 午夜精品视频在线| 亚洲一区二区日本| 欧美日韩国产欧| 亚洲乱码精品一二三四区日韩在线 | 久久久亚洲欧洲日产国码αv | 一区三区视频| 欧美在线视频观看| 久久gogo国模啪啪人体图| 国产精品亚洲综合色区韩国| 亚洲特级毛片| 久久久久久久综合| 在线看无码的免费网站| 久久全球大尺度高清视频| 免费成人高清| 一区二区三区视频在线观看| 国产精品高清网站| 欧美在线视频在线播放完整版免费观看 | 国产亚洲精品福利| 久久精品五月| 日韩午夜电影在线观看| 久久野战av| 一区二区三区高清不卡| 国产女主播在线一区二区| 久久夜色精品国产欧美乱| 亚洲韩国青草视频| 香蕉成人伊视频在线观看| 亚洲大片一区二区三区| 欧美日韩一视频区二区| 久久久久久久久久久成人| 99riav国产精品| 欧美阿v一级看视频| 欧美一区二区三区视频在线| 亚洲黄色性网站| 狠狠综合久久| 国内精品久久久久影院优| 欧美视频在线一区二区三区| 久久综合影音| 久久久欧美一区二区| 欧美一区二区三区四区视频| 一区二区三区|亚洲午夜| 亚洲第一精品在线| 久久一区二区精品| 久久久国产精品亚洲一区| 亚洲欧洲av一区二区| 亚洲天堂av在线免费| 99视频精品全国免费| 亚洲三级色网| 99综合在线| 欧美亚洲三区| 老鸭窝91久久精品色噜噜导演| 欧美在线播放视频| 久久久夜色精品亚洲| 久久在线免费观看视频| 韩日在线一区| 国产精品一区二区在线观看| 亚洲欧洲精品一区二区精品久久久| 久久综合图片| 亚洲欧洲综合| 亚洲女人天堂av| 久久久精品一区二区三区| 久久久综合免费视频| 欧美区在线观看| 国产精品视频免费在线观看| 国语自产精品视频在线看抢先版结局| 激情视频一区二区| 亚洲无线一线二线三线区别av| 欧美一区二区视频97| 亚洲国产日韩欧美在线99| 日韩视频在线免费| 久久天天狠狠| 国产精品午夜在线| 99re热精品| 农村妇女精品| 久久久国际精品| 国产精品色在线| 一区二区三区久久久| 美日韩免费视频| 久久久之久亚州精品露出| 国产精品中文字幕欧美| 亚洲欧美国产精品桃花| 亚洲破处大片| 欧美三级韩国三级日本三斤| 91久久久久久国产精品| 免费看av成人| 久久综合一区二区| 日韩午夜黄色| 一区二区免费在线播放| 欧美日本三区| 欧美有码在线视频| 久久久久亚洲综合| 亚洲三级影院| 日韩视频在线一区| 国产九区一区在线| 久久精品伊人| 欧美国产免费| 免费成人激情视频| 亚洲高清不卡在线| 中国日韩欧美久久久久久久久| 国产精品红桃| 美女视频一区免费观看| 欧美国产日韩一二三区| 亚洲一区免费看| 狂野欧美一区| 亚洲男女毛片无遮挡| 久久女同精品一区二区| 亚洲欧美综合精品久久成人 | 亚洲成色精品| 国产精品成av人在线视午夜片| 欧美在线|欧美| 国产精品v日韩精品| 欧美www视频| 激情久久五月| 欧美制服丝袜| 久久国产精品色婷婷| 欧美视频在线观看一区| 亚洲人成网站色ww在线| 亚洲大片av| 久久久蜜桃精品| 麻豆久久婷婷| 在线日韩中文| 久久久久综合一区二区三区| 久久综合电影| 亚洲国产二区| 欧美精品一卡| 一区二区三区四区五区精品视频| 日韩午夜三级在线| 欧美三级小说| 欧美一区日韩一区| 久久米奇亚洲|