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

            3d Game Walkman

            3d圖形渲染,網(wǎng)絡(luò)引擎 — tonykee's Blog
            隨筆 - 45, 文章 - 0, 評(píng)論 - 309, 引用 - 0
            數(shù)據(jù)加載中……

            游戲資源在線更新的思路

            總的來(lái)說(shuō),和JIT即時(shí)編譯機(jī)制有相通之處,就是一個(gè)創(chuàng)建時(shí)間的比較

             

            首先要明白:客戶端的文件如果是最新的,那么創(chuàng)建時(shí)間肯定晚于服務(wù)器上文件的創(chuàng)建時(shí)間,反之客戶端的文件就是舊的需要更新了,但是為了提高更新效率,并不是一個(gè)個(gè)和服務(wù)器上的文件做對(duì)比

            而是建立一個(gè)文件列表索引文件,里面記錄服務(wù)器上的“最新版”所有文件的創(chuàng)建時(shí)間,首先更新本地的索引文件,如果更新了,說(shuō)明服務(wù)器上的文件列表有更新,然后和本地做對(duì)比,整理一份需要更新或新建的文件列表清單,然后主動(dòng)連接服務(wù)器進(jìn)行下載,全部完成以后,在索引文件進(jìn)行記錄,更新完一個(gè)就記錄一個(gè)ok,這樣方便“斷點(diǎn)續(xù)傳”,所有都更新完成,全部是ok了,就證明本地都是最新的了,不過(guò)這里面有個(gè)小問(wèn)題是值得注意的,本地文件的創(chuàng)建時(shí)間不能是本地計(jì)算機(jī)的時(shí)間,應(yīng)該下載完以后,修改成服務(wù)器的當(dāng)前時(shí)間,(比如如果本地時(shí)間設(shè)置到了一年以前)那本地的列表可能永遠(yuǎn)都是舊的,每次都要更新,這是可怕的。

            通過(guò)這個(gè)文件列表索引,能大大提高更新效率,而且也能做好版本的控制。

            另外,更新服務(wù)器一般和游戲服務(wù)器分離,大致思路就是這樣

            打包和網(wǎng)絡(luò)傳輸方面,自己封裝一套序列化和反序列化的IO流協(xié)議就可以了,游戲里面這些都必須是最基本的功能了

            當(dāng)然,這套思路還有一些不完善的地方,比如更新正在運(yùn)行的exe或一些內(nèi)存保護(hù)的DLL,是比較麻煩的事情,需要盡量避免

            posted on 2009-05-08 23:27 李侃 閱讀(2392) 評(píng)論(9)  編輯 收藏 引用 所屬分類(lèi): 網(wǎng)絡(luò)模塊

            評(píng)論

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            本人的思路,不用比較創(chuàng)建的時(shí)間,用版本號(hào)來(lái)比較不是危險(xiǎn)性低一些么。每個(gè)文件都有一個(gè)版本號(hào),更新一次版本號(hào)add下。本地一份文件列表(包含文件版本號(hào)),更新的時(shí)候如你所說(shuō),下載一份文件列表(同樣是有版本號(hào)的)比較版本來(lái)更新。本人的看法,還請(qǐng)斟酌.
            2009-05-09 14:03 | miwei

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            那DLL里面的版本號(hào)呢?功能模塊的DLL都是編譯器生成的,你要在每個(gè)DLL里面再附加資源信息嗎?我覺(jué)得有點(diǎn)繁瑣了。何況如果每個(gè)文件都去解析里面的版本號(hào)的數(shù)據(jù),速度是會(huì)很慢的,不僅繁瑣,而且更難控制。
            不過(guò)一些版本控制軟件的卻是加了版本號(hào)的,但也是有版本索引文件去記錄這些版本,但絕對(duì)沒(méi)有要求一定要在源文件中去加版本號(hào)。所以時(shí)間要素控制版本是高效便宜的做法
            2009-05-09 22:42 | 李侃

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            有點(diǎn)問(wèn)題:
            如果按照樓主的做法,那么每次更新都需要檢查。目前客戶端資源都是上G的,那么這個(gè)操作就會(huì)非常耗時(shí)。
            而且這么做服務(wù)器的資源必須零散存放。
            但目前資源基本都是打包出現(xiàn)的。

            樓主的這個(gè)操作是需要的,只是在客戶端出現(xiàn)資源不完整時(shí)候才需要這么做。一般值需要比較版本,下載壓縮包,更新就可以了。
            2009-05-10 13:19 | chib

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            這種方法有點(diǎn)麻煩。。
            倒不如生成一個(gè)XML里面寫(xiě)入各個(gè)文件的名稱(chēng)和md5碼。。
            這樣在讀取下載XML后對(duì)比客戶端的XML文件里的MD5就行了。。
            2009-05-10 15:10 | 笨笨狼

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            用客戶機(jī)本地的時(shí)間是非常不安全的,用戶有可能因?yàn)槟撤N原因修改時(shí)間。
            笨笨狼同學(xué)的辦法是現(xiàn)在網(wǎng)游大多采用的一種方法。不過(guò)需要注意網(wǎng)絡(luò)的緩存問(wèn)題,最好用FTP服務(wù)器來(lái)存放XML文件。
            2009-05-11 09:34 | kevin.c

            # re: 游戲資源在線更新的思路[未登錄](méi)  回復(fù)  更多評(píng)論   

            我們的做法:
            做一個(gè)更新服務(wù)器,用來(lái)匹配資源版本號(hào)。
            客戶端每次登陸前都先連接更新服務(wù)器,如果發(fā)現(xiàn)有新的版本,則去文件服務(wù)器(http,ftp服務(wù)器)下載更新包。之后客戶端本地解壓打包就完成了更新。
            2009-05-20 08:39 | christanxw

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            既然客戶端那么大,可以嘗試用P2P 。
            2009-05-22 16:26 | wangok

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            你在樣不太好的。 因?yàn)槲覀円郧斑@樣做過(guò),當(dāng)時(shí)打過(guò)包后。一個(gè)GUI.xx就是40MB 假如想更新一個(gè)圖片就要更新40m的包 ,如果詳細(xì)劃分包里面的文件。
            那文件列表就會(huì)很大。所以這并不太完美。 最后我也是和 christanxw 的做法一樣了,。
            2009-10-13 17:14 | Johnson

            # re: 游戲資源在線更新的思路  回復(fù)  更多評(píng)論   

            如何獲得服務(wù)器上文件的創(chuàng)建時(shí)間捏?
            2014-04-29 16:23 | jcjc
            久久夜色tv网站| 亚洲国产精品无码久久一区二区 | 色综合久久综合网观看| 国内精品欧美久久精品| 青青热久久国产久精品| 99久久精品免费看国产一区二区三区| 亚洲精品美女久久777777| 99久久国产主播综合精品| 午夜不卡久久精品无码免费| 亚洲国产精品久久66| 无码国内精品久久人妻| 精品国产综合区久久久久久| 亚洲欧美日韩久久精品第一区 | 午夜精品久久久久久影视777| 蜜臀av性久久久久蜜臀aⅴ| 久久精品成人欧美大片| 国产精品久久久久久福利漫画| 伊人情人综合成人久久网小说| 久久香蕉国产线看观看乱码| 男女久久久国产一区二区三区| 亚洲国产精品综合久久一线| 久久本道久久综合伊人| 久久精品国产免费| 国产成人久久精品一区二区三区| 久久亚洲精品无码aⅴ大香| 久久久久亚洲AV综合波多野结衣| 久久免费高清视频| 一级做a爱片久久毛片| a高清免费毛片久久| 久久av无码专区亚洲av桃花岛| 久久久久久免费视频| 欧美精品丝袜久久久中文字幕| 久久se精品一区精品二区国产| 一本一道久久精品综合| 一级做a爰片久久毛片16| 国产成人久久777777| 国产精品日韩欧美久久综合| 久久久久婷婷| 久久免费看黄a级毛片| 99久久99久久精品国产片果冻| 亚洲午夜久久久久久噜噜噜|