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

教父的告白
一切都是紙老虎
posts - 82,  comments - 7,  trackbacks - 0
原文:http://hi.baidu.com/huangyunjun999/blog/item/7396b8c2378e4a3ce4dd3bda.html

接觸了一段時間的網(wǎng)游封包設(shè)計,有了一些初步的思路,想借這篇文章總結(jié)一下,同時也作個記錄,以利于以后更新自己的思路。
網(wǎng)絡(luò)游戲的技術(shù)研發(fā),分為三個主要的方面:服務(wù)器設(shè)計,客戶端設(shè)計,數(shù)據(jù)庫設(shè)計。而在服務(wù)器和客戶端之間實現(xiàn)游戲邏輯的中介則是游戲數(shù)據(jù)包,服務(wù)器和 客戶端通過交換游戲數(shù)據(jù)包并根據(jù)分析得到的數(shù)據(jù)包來驅(qū)動游戲邏輯。網(wǎng)絡(luò)游戲的實質(zhì)是互動,而互動的控制則由服務(wù)器和客戶端協(xié)同完成,協(xié)同就必然要依靠數(shù)據(jù) 來完成。
當(dāng)前網(wǎng)絡(luò)游戲中的封包,其定義形式是各種各樣的,但歸納起來,一般都具有如下要素:封包長度,封包類型,封包參數(shù),校驗碼等。
封包長度用于確定當(dāng)前游戲數(shù)據(jù)包的長度,之所以提供這個數(shù)據(jù),是因為在底層的TCP網(wǎng)絡(luò)傳輸中,出于傳輸效率的考慮,傳輸有時會把若干個小的數(shù)據(jù)包合 并成一個大的數(shù)據(jù)包發(fā)送出去,而在合并的過程中,并不是把每一個邏輯上完整的數(shù)據(jù)包全部合并到一起,有時可能因為這種合并而將一個在邏輯上具有完整意義的 游戲數(shù)據(jù)包分在了兩次發(fā)送過程中進(jìn)行發(fā)送,這樣,當(dāng)前一次的數(shù)據(jù)發(fā)送到接受方之后,其尾部的數(shù)據(jù)包必然造成了“斷尾”現(xiàn)象,為了判定這種斷尾的情況以及斷 尾的具體內(nèi)容,游戲數(shù)據(jù)包在設(shè)計時一般都會提供封包長度這個信息,根據(jù)這個信息接受方就知道收到的包是否有斷尾,如果有斷尾,則把斷尾的數(shù)據(jù)包與下次發(fā)過 來的數(shù)據(jù)包進(jìn)行拼接生成原本在邏輯意義上完整的數(shù)據(jù)包。
封包類型用于標(biāo)識當(dāng)前封包是何種類型的封包,表示的是什么含義。
封包參數(shù)則是對封包類型更具體的描述,它里面指定了這種類型封包說明里所必須的參數(shù)。比如說話封包,它的封包類型,可以用一個數(shù)值進(jìn)行表示,而具體的說話內(nèi)容和發(fā)言的人則作為封包參數(shù)。
校驗碼的作用是對前述封包內(nèi)容進(jìn)行校驗,以確保封包在傳遞過程中內(nèi)容不致被改變,同時根據(jù)校驗碼也可以確定這個封包在格式上是不是一個合法的封包。以 校驗碼作為提高封包安全性的方法,已經(jīng)是目前網(wǎng)游普遍采用的方式。封包設(shè)計,一般是先確定封包的總體結(jié)構(gòu),然后再來具體細(xì)分有哪些封包,每個封包中應(yīng)該含 有哪些內(nèi)容,最后再詳細(xì)寫出封包中各部分內(nèi)容具體占有的字節(jié)數(shù)及含義。
數(shù)據(jù)包的具體設(shè)計,一般來說是根據(jù)游戲功能進(jìn)行劃分和圈定的。比如游戲中有聊天功能,那么就得設(shè)計客戶端與服務(wù)器的聊天數(shù)據(jù)包,客戶端要有一個描述發(fā) 言內(nèi)容與發(fā)言人信息的數(shù)據(jù)包,而在服務(wù)器端要有一個包含用戶發(fā)言內(nèi)容及發(fā)言人信息的廣播數(shù)據(jù)包,通過它,服務(wù)器端可以向其他附近玩家廣播發(fā)送當(dāng)前玩家的發(fā) 言內(nèi)容。再比如游戲中要有交易功能,那么與這個功能相對應(yīng)的就可能會有以下數(shù)據(jù)包:申請交易包,申請交易的信息包,允許或拒絕交易包,允許或拒絕交易的信 息包,提交交易物品包,提交交易物品的信息包,確認(rèn)交易包,取消交易包,取消交易的信息包,交易成功或失敗的信息包。需要注意的是,在這些封包中,有的是 一方使用而另一方不使用的,而有的則是雙方都使用的包。比如申請交易包,只可能是一方使用,而另一方會得到一個申請交易的信息包;而確認(rèn)交易包和提交交易 物品這樣的數(shù)據(jù)包,都是雙方在確定要進(jìn)行交易時要同時使用的。封包的設(shè)計也遵從由上到下的設(shè)計原則,即先確定有哪些功能的封包,再確定封包中應(yīng)該含有的信 息,最后確定這些信息應(yīng)該占有的位置及長度。一層層的分析與定義,最終形成一個完善的封包定義方案。在實際的封包設(shè)計過程中,回溯的情況是經(jīng)常出現(xiàn)的。由 于初期設(shè)計時的考慮不周或其它原因,可能造成封包設(shè)計方案的修改或增刪,這時候一個重要的問題是要記得及時更新你的設(shè)計文檔。在我的封包設(shè)計中,我采用的 是以下的封包描述表格進(jìn)行描述:
封包編號   功能描述  對應(yīng)的類或結(jié)構(gòu)體名  類型命令字  命令參數(shù)結(jié)構(gòu)體及含義 
根據(jù)游戲的功能,我們可以大致圈定封包的大致結(jié)構(gòu)及所含的大致內(nèi)容。但是,封包設(shè)計還包含有其它更多的內(nèi)容,如何在保證封包邏輯簡潔的前提下縮短封包 的設(shè)計長度提高封包的傳輸速度和游戲的運行速度,這也是我們應(yīng)該考慮的一個重要問題。一般情況下,設(shè)計封包時,應(yīng)該盡量避免產(chǎn)生一百字節(jié)以上的封包,多數(shù) 封包的定義控制在100字節(jié)以內(nèi),甚至20-50字節(jié)以內(nèi)。在我所定義的封包中,多數(shù)在20字節(jié)以內(nèi),對于諸如傳遞服務(wù)器列表和用戶列表這樣的封包可能會 大一點。總之一句話,應(yīng)該用盡可能短的內(nèi)容盡可能簡潔清晰地描述封包功能和含義。
在封包結(jié)構(gòu)設(shè)計方面,我有另一種可擴(kuò)展的思路:對封包中各元素的位置進(jìn)行動態(tài)定義。這樣,當(dāng)換成其它游戲或想更換當(dāng)前游戲的封包結(jié)構(gòu)時,只要改變這些 元素的動態(tài)定義即可,而不需要完全重新設(shè)計封包結(jié)構(gòu)。比如我們對封包編號,封包類型,封包參數(shù),校驗碼這些信息的開始位置和長度進(jìn)行定義,這樣就可以形成 一個動態(tài)定義的封包結(jié)構(gòu),對以后的封包移植將會有很大幫助,一個可能動態(tài)改變封包結(jié)構(gòu)的游戲數(shù)據(jù)包,在相當(dāng)程度上增加了外掛分析封包結(jié)構(gòu)的難度。
在進(jìn)行封包設(shè)計時,最好根據(jù)封包客戶端和服務(wù)器端的不同來分類進(jìn)行設(shè)計。比如大廳與游戲服務(wù)器的封包及游戲服務(wù)器與游戲客戶端的封包分開來進(jìn)行設(shè)計,在包的編號上表示出他們的不同(以不同的開頭單詞表示),這樣在封包的總體結(jié)構(gòu)上就會更清晰。

posted on 2009-09-23 23:36 暗夜教父 閱讀(479) 評論(0)  編輯 收藏 引用 所屬分類: Game Development

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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网站| 亚洲激情啪啪| 免费在线看成人av| 久久成年人视频| 国产亚洲精品激情久久| 性欧美xxxx视频在线观看| 久久青草欧美一区二区三区| 欧美视频在线视频| 国产精品中文字幕欧美| 亚洲一区二区三区国产| 欧美黄色日本| 久久婷婷国产综合尤物精品| 国产视频欧美视频| 欧美一区二区在线视频| 亚洲性夜色噜噜噜7777| 国产精品夜色7777狼人| 亚洲综合导航| 亚洲一区在线观看免费观看电影高清 | 性欧美超级视频| 亚洲午夜在线视频| 国产精品日本一区二区 | 欧美国产视频在线| 欧美激情综合色| 亚洲视频免费看| 亚洲主播在线观看| 国产一区二区三区视频在线观看 | 亚洲一区二区高清| 国产欧美日韩免费看aⅴ视频| 久久精品国产99| 久久人人97超碰国产公开结果| 亚洲夫妻自拍| 99re成人精品视频| 国产欧美日韩精品在线| 美女任你摸久久| 欧美激情一区二区三级高清视频| 亚洲午夜激情网页| 久久国产乱子精品免费女| 亚洲国产欧美国产综合一区| 亚洲欧洲精品成人久久奇米网| 欧美精品久久久久a| 亚洲欧美中文在线视频| 性xx色xx综合久久久xx| 伊人色综合久久天天| 亚洲人成7777| 国产日韩精品在线播放| 亚洲高清在线| 国产精品羞羞答答| 免费成人高清| 国产乱码精品| 91久久久精品| 韩国一区二区在线观看| 亚洲激情影院| 狠狠色伊人亚洲综合网站色| 日韩视频在线观看国产| 国模叶桐国产精品一区| 亚洲精品影院在线观看| 国产一区日韩二区欧美三区| 亚洲国产毛片完整版| 国产一级久久| 正在播放亚洲一区| 亚洲精品乱码久久久久久| 午夜精品一区二区三区四区| 日韩亚洲视频在线| 免费观看不卡av| 亚洲专区免费| 亚洲韩日在线| 99re8这里有精品热视频免费| 国模私拍视频一区| 在线视频你懂得一区| 亚洲欧洲精品一区二区三区| 亚洲一区欧美二区| 夜夜嗨av一区二区三区中文字幕| 久久久久久夜| 久久久久国产精品一区二区| 国产精品久久久久久av下载红粉| 亚洲高清电影| 亚洲国产欧美久久| 久久免费国产精品| 巨乳诱惑日韩免费av| 国产午夜精品美女毛片视频| 中文国产一区| 亚洲欧美春色| 国产精品久久久一区二区| 日韩视频在线观看免费| 亚洲精品社区| 欧美成人高清视频| 欧美高清不卡| 亚洲国产精品悠悠久久琪琪| 久久成人亚洲| 蜜桃久久av| 亚洲激情视频在线观看| 男女视频一区二区| 亚洲黄色av一区| 日韩一级黄色av| 欧美精品三级日韩久久| 亚洲久久成人| 亚洲专区欧美专区| 国产欧美日韩91| 久久激情综合网| 欧美成人官网二区| 99成人在线| 国产精品一区二区在线观看网站 | 午夜精品久久久久| 久久精品视频一| 亚洲电影免费在线观看| 毛片一区二区| 亚洲精选国产| 午夜一级在线看亚洲| 国产三级精品三级| 久久久美女艺术照精彩视频福利播放| 美女图片一区二区| 亚洲日本黄色| 欧美小视频在线观看| 亚洲一区精品电影| 久久久噜噜噜久久人人看| 亚洲激情综合| 国产精品久久久久久亚洲调教| 午夜精品三级视频福利| 欧美成人免费视频| 亚洲一区免费网站| 狠狠综合久久av一区二区小说| 奶水喷射视频一区| 亚洲欧美日韩国产| 欧美福利在线观看| 香蕉久久夜色精品| 亚洲国产欧美在线| 国产精品一区二区在线观看网站| 久久亚洲捆绑美女| 国产精品99久久久久久久vr| 久久午夜精品| 亚洲小视频在线| 亚洲第一区在线| 国产精品欧美经典| 午夜影院日韩| 亚洲激情国产| 日韩午夜在线视频| 国产精品国产福利国产秒拍| 亚洲少妇在线| 麻豆免费精品视频| 一区二区三区成人精品| 国产麻豆视频精品| 欧美精品尤物在线| 欧美在线视频日韩| 一区二区三区久久| 欧美激情免费在线| 久久精品色图| 亚洲一二三区精品| 亚洲精品国产精品国自产在线| 国产欧美婷婷中文| 欧美日韩高清在线播放| 久久精品视频网| 亚洲小少妇裸体bbw| 亚洲国产精品va在看黑人| 久久久精彩视频| 欧美一区成人| 亚洲视频一区二区在线观看| 在线日本高清免费不卡| 国产欧美日韩免费| 国产精品久久中文| 欧美日韩一区二区精品| 欧美国产亚洲精品久久久8v| 性伦欧美刺激片在线观看| 一区二区毛片| 日韩视频一区二区| 亚洲精品永久免费| 亚洲国产日韩一级| 欧美mv日韩mv国产网站app| 久久精品综合| 久久久www| 久久久久高清| 久久久久久久久久码影片| 亚洲欧美日韩视频一区| 亚洲香蕉成视频在线观看| 一区二区三区成人| 中文av一区二区| 宅男在线国产精品| 亚洲一区二区三区中文字幕在线| 一本色道久久综合精品竹菊| 亚洲欧洲日韩女同| 日韩午夜在线电影| 亚洲网站视频福利| 亚洲女ⅴideoshd黑人| 亚洲自拍偷拍福利| 欧美在线1区| 久久乐国产精品| 免费看成人av| 亚洲国产视频a| 日韩小视频在线观看专区| 日韩午夜激情电影| 一区二区不卡在线视频 午夜欧美不卡' | 蜜桃av噜噜一区二区三区| 免费久久久一本精品久久区| 蜜桃久久av一区| 欧美伦理a级免费电影| 欧美午夜宅男影院在线观看| 国产精品一区二区黑丝| 久久精品99| 欧美福利视频在线|