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

教父的告白
一切都是紙老虎
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>
            亚洲一区二区在线免费观看视频| 99国产精品视频免费观看| 欧美在线观看一区二区| 99精品国产在热久久下载| 欧美国产欧美亚洲国产日韩mv天天看完整| 精品白丝av| 欧美黄色影院| 欧美区国产区| 亚洲欧洲av一区二区三区久久| 午夜欧美精品| 尤物在线精品| av成人黄色| 亚洲高清一二三区| 亚洲黄色大片| 国产精品v欧美精品v日本精品动漫| 午夜精品视频在线| 老色鬼精品视频在线观看播放| 西西人体一区二区| 野花国产精品入口| 久久久av毛片精品| 欧美夜福利tv在线| 欧美91视频| 午夜日韩视频| 国产精品久久久久国产精品日日| 欧美成年人网站| 国内不卡一区二区三区| 一区二区三区**美女毛片| 亚洲国产成人91精品 | 亚洲精品网站在线播放gif| 亚洲制服少妇| 亚洲香蕉网站| 欧美日韩一区二区三区在线 | 久久久91精品国产一区二区精品| 亚洲欧美另类在线观看| 亚洲三级色网| 欧美成人国产| 免费在线国产精品| 老鸭窝亚洲一区二区三区| 欧美日韩在线不卡一区| 欧美国产日本| 久久久久88色偷偷免费| 日韩视频专区| 在线日韩av片| 久久精精品视频| 欧美在线啊v一区| 国产亚洲成av人片在线观看桃| 夜夜爽夜夜爽精品视频| 中文亚洲字幕| 国产精品a久久久久久| 91久久精品国产91久久| 亚洲韩国日本中文字幕| 亚洲欧美视频在线观看视频| 欧美激情一区二区三区在线| 亚洲精品资源| 亚洲欧美日韩一区| 亚洲欧美在线观看| 国产精品一区一区| 欧美日韩另类字幕中文| 久久综合九色| 久久精品国产免费观看| 亚洲欧美国产精品va在线观看| 欧美激情bt| 欧美一区综合| 中文久久精品| 一区二区三区四区五区精品| 黄色成人片子| 激情综合网址| 国产一区二区三区奇米久涩 | 午夜视频在线观看一区二区| 亚洲国产精品久久久久婷婷老年| 国产日韩欧美一区| 国产精品一页| 精品成人a区在线观看| 欧美亚洲一区| 久久久久高清| 日韩午夜免费视频| 久久久综合视频| 国产美女精品视频免费观看| 亚洲精选视频免费看| 99亚洲视频| 欧美影院久久久| 欧美福利一区| 一区二区三区四区国产| 亚洲伊人一本大道中文字幕| 亚洲天堂成人| 久久精品中文| 欧美肥婆bbw| 国产噜噜噜噜噜久久久久久久久 | 欧美激情五月| 欧美精品一区二区三区一线天视频| 老司机一区二区三区| 欧美视频在线观看视频极品 | 亚洲欧洲视频在线| 久久久久国产一区二区| 欧美va天堂va视频va在线| 日韩视频三区| 免费日韩成人| 激情成人av在线| 亚洲午夜91| 你懂的成人av| 西瓜成人精品人成网站| 欧美—级在线免费片| 国产女人精品视频| 亚洲精品永久免费精品| 久久欧美中文字幕| 午夜精彩视频在线观看不卡| 欧美日韩不卡一区| 最新亚洲一区| 欧美高清成人| 男男成人高潮片免费网站| 国产一区欧美| 久久免费精品日本久久中文字幕| 在线视频亚洲| 国产毛片一区二区| 久久久蜜桃精品| 久久精品91久久久久久再现| 国产精品日日摸夜夜添夜夜av| 欧美一区二区国产| 久久精品成人| 99精品热6080yy久久| 亚洲一级网站| 亚洲精品一区二区三区不| 亚洲一区二区视频在线观看| 红桃视频国产精品| 99精品视频免费在线观看| 久久视频免费观看| 久久精品99国产精品日本| 国产啪精品视频| 久久午夜精品| 久久综合久久综合久久综合| 在线精品视频免费观看| 在线精品视频一区二区| 欧美va天堂| 欧美成人精品一区二区三区| 亚洲视频在线观看视频| 欧美在线一区二区| 亚洲精品免费在线播放| 亚洲国产天堂久久国产91| 欧美日韩免费视频| 久久亚洲国产成人| 欧美日韩少妇| 久久久爽爽爽美女图片| 国产精品99一区二区| 你懂的视频一区二区| 国产精品国色综合久久| 欧美成人综合一区| 国产字幕视频一区二区| 亚洲久色影视| 亚洲人成毛片在线播放| 亚洲女人天堂成人av在线| av成人手机在线| 欧美激情在线有限公司| 欧美激情国产高清| 在线看成人片| 浪潮色综合久久天堂| 久久亚洲精品中文字幕冲田杏梨| 国产精品欧美在线| 亚洲无线观看| 香蕉乱码成人久久天堂爱免费| 欧美理论电影网| av成人毛片| 久久久国产精品亚洲一区| 久久久97精品| 国内精品久久久久伊人av| 久久精品男女| 欧美黄色免费网站| 一区在线观看| 久久高清免费观看| 小辣椒精品导航| 国产精品免费网站| 亚洲视频在线观看网站| 亚洲尤物影院| 一区二区三区无毛| 亚洲精品欧美精品| 亚洲伊人网站| 国产亚洲一区在线播放| 欧美激情第9页| 香蕉尹人综合在线观看| 欧美激情免费在线| 国产精品日韩在线一区| 久久精品夜色噜噜亚洲aⅴ| 亚洲高清免费| 亚洲午夜久久久久久久久电影院| 国产精品嫩草99a| 久久夜色精品| 亚洲午夜视频在线| 欧美成人精品影院| 午夜欧美精品| 亚洲人永久免费| 国产精品丝袜xxxxxxx| 免费人成精品欧美精品| 欧美一级久久久久久久大片| 亚洲精品一区二区三区蜜桃久| 久久国产欧美精品| 亚洲欧美国产精品桃花| 亚洲欧洲一区二区天堂久久| 黑人巨大精品欧美黑白配亚洲 | 夜夜精品视频| 欧美a级片网| 欧美a级在线|