<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java究竟怎么玩?

      天地程序已定棋,人間大數待變局

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      (源碼依舊在Jar中)

       

       源碼下載地址:http://code.google.com/p/loon-simple/downloads/list

       

      老實說,延遲下載游戲資源及調用只是一種輔助手段,與游戲開發本身關系并不大,實質也無非只是文件下載及文件讀取的混用。但考慮到上周有網友問及此類問題,筆者覺得與其回郵件單獨解釋,倒不如寫篇博文看起來更具體清晰,還能令大家幫助筆者斧正刊誤,故成此文,僅供參考。 

      一般來講,我們之所以會需要通過下載方式加載游戲資源,無非是出于如下幾種目的:

       1、精簡游戲體積:


           假設我做了個100MB的游戲,卻非想把它宣傳成僅有1MB的精巧程序,這時我該怎么辦呢?

          去欺騙用戶,用大量復雜的技術名詞忽悠他們說1MB和100MB等值嗎?——用戶不是傻子,至少不都是傻子,無論你的話術多么巧妙,也很難讓絕大部分人都相信1MB和100MB是一樣的。但大話已然出口,始終要想辦法解決。

           其實呢,在現有技術體系下,要搞定他們好簡單的,只需將游戲初始界面混合下載器打包成1MB的文件發布,再“騙”他們下載執行,而后——就讓他們慢慢等待系統加載剩下那99MB吧!畢竟沒人說過這個游戲不需要額外的網絡資源同步嘛……

       2、網游資源的延遲加載需要:

           目前的網絡游戲——特別是網頁游戲,為了盡可能的減少不必要的資源損耗,提高運行效率,大多數時候并不會一口氣將所有資源都加載到游戲中,而是“大而化之,分而治之”,將游戲資源構建成一個個小小的資源包,僅僅在需要時,才或同步、或異步的加載到游戲中。這也正是我們在很多網游中所見到的,當角色過屏、讀取新地圖或遭遇新怪物時,畫面會出現稍候字樣或者部分馬賽克乃至停頓的原因。

           故此,通過網絡適時地去加載需要的資源,幾乎已成為網游開發中必不可少的技巧之一。     

       

      3、融入特殊的加密解密機制:

         我們都知道,但凡是人所做出的程序,就沒有人所不能破解掉的。但是——卻很可能發生一個人做出來的程序,另一個人數年之內無法破解的現象。而當數年之后,另一個人破解出來時,這段程序卻早已過氣,白送都沒人要了。

         因此,當你極端的不想自己游戲被反向工程——尤其是想保護Java這種極好反編譯的代碼時,通過網絡下載的另一種意義便顯現出來了。你可以將下載的jar或class乃至其它種種保存到一個不同于執行目錄的“隱秘”場所,并且無論密鑰也好,特殊結構也罷,總之變著方的將資源加密混淆,就算混淆到連你自己都不知道這是什么東西也無所謂——能解釋成字節碼就好,最大限度的增加反向難度。而當你執行完畢,再一刪了事——下次還可以再下嘛。這樣做的話,雖然不能徹底杜絕代碼被他人盜用,但,至少也可讓反向我代碼那哥們累掉層皮(^^)。

      4、本地程序及資源合法性驗證:

          在大多數網絡游戲中,為了保證用戶不做出一些諸如使用外掛的“犯規”行為,是會對系統環境乃至封包數據進行合法性驗證的,而一旦發現“非法”的東西存在,則會令“違法”玩家吊線或者干脆封號以示懲罰。

          但這些驗證,主要都只針對程序“外部”,即當“犯規”對象“不是我的游戲時”才能發揮功效,但萬一“犯規”者“來自游戲本身時”或者“驗證程序認為來自游戲本身時”,則變得無能為力,這也是為什么大多數網游都“內掛”泛濫的緣故。
                   
          幸運的是,Java程序由于其“天資所限”,是很難在虛擬機外部被攻破利用的,如果用Java制作網游,原則上大可不必擔心“內掛”問題——但,這也有個大前提,那就是在“內掛”運行于虛擬機之外時才行的通。

          而如果“內掛”運行在虛擬機之內呢? 如果我的“內掛”是一小段插入原始游戲中的代碼呢? 要知道,動態加載class,動態修改字節碼,早就不算什么事情了。   

          這時,就需要校驗Java程序的合法性。
           
          本來要驗證這種事情是比較耗費時間的,但如果我們善于利用每次下載資源(比較大的,比如過圖或者游戲更新),如果不單單“下載”,更同步“上行”,利用空檔同服務器校對本地Java程序的合法性及完整性,便能很大程度上避免這種無意義的校驗時間浪費。這時有缺少的文件便添加,有多余的——也就是出現不該存在的Jar或class乃至原始字節碼修改,便借機強行“咔”掉它,免得它“為禍人間”。    

      5、系統升級:

           通常來說,大多數的程序是不可能一個版本用到底的,游戲也不例外,無論是功能的增加或者Bug修正都離不開系統的更新。為了避免每次升級都令用戶面臨重裝的苦惱,通過網絡下載更新資源并自動更新系統也就變得非常必要。

        如何實現:


        下面我給出一個簡單的資源延遲下載Java實現示例,分別加載我以前博文中出現的兩個示例程序,并運行其中之一。(PS:由于本例加載的資源為Jar,所以進行了動態類加載操作,當我們下載其它資源類型,比如僅包含圖片的zip壓縮文件時,下載的步驟還是一致,只不過要將操作換成讀取壓縮文件及加載壓縮文件資源而已。)

       

       DownloadTool.java(這是一個簡單的下載工具類,內置有下載狀態顯示及下載條繪制)

       

       

      DownloadCanvas.java(下載條及背景顯示用畫布)

       

       

      Main.java(主類,用以啟動此下載示例)

       


       

        程序執行效果如下圖所示:

       

       00

       

       下載完畢后后將自動加載并執行下載的Java2.5D行走示例,畫面如下圖:

       

        01

       

        (源碼依舊在Jar中)

       

       源碼下載地址:http://code.google.com/p/loon-simple/downloads/list

      posted on 2009-04-29 19:16  cping  閱讀(291)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲人成人网站色www| 国产精品ⅴ无码大片在线看| 日韩人妻无码精品久久| 精品人妻蜜臀一区二区三区| WWW丫丫国产成人精品| 乱码中文字幕| 久久99亚洲网美利坚合众国| 日本国产精品第一页久久| 怀柔区| 日本欧美一区二区三区在线播放| 无套内谢少妇一二三四| 国产99青青成人A在线| 国产亚洲精品久久久久秋霞 | 国产精品视频一区不卡| 国产又黄又爽又不遮挡视频| 亚洲成aⅴ人在线电影| av深夜免费在线观看| 激情五月开心婷婷深爱| 又色又污又爽又黄的网站| 亚洲高清有码中文字| 欧美性69式xxxx护士| 开心五月婷婷综合网站| 欧美 变态 另类 人妖| 国产三级精品三级色噜噜| 中文字幕日韩有码av| 久久天天躁狠狠躁夜夜婷| 中文字幕精品亚洲字幕成| 精品人妻少妇一区二区三区| 高级艳妇交换俱乐部小说| 国产精品久久精品国产| 人妻丝袜AV中文系列先锋影音 | 亚洲嫩模喷白浆在线观看| 东京热一精品无码av| 成人无码午夜在线观看| 国产不卡的一区二区三区| 国产在线观看91精品亚瑟| 农村老熟女一区二区三区| 一区二区亚洲人妻精品| 欧美福利电影A在线播放| 色老99久久精品偷偷鲁| 性夜夜春夜夜爽夜夜免费视频 |