• <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>
            隨筆 - 505  文章 - 1034  trackbacks - 0
            <2008年4月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910


            子曾經曰過:編程無他,唯手熟爾!

            常用鏈接

            留言簿(94)

            隨筆分類(649)

            隨筆檔案(505)

            相冊

            BCB

            Crytek

            • crymod
            • Crytek's Offical Modding Portal

            Game Industry

            OGRE

            other

            Programmers

            Qt

            WOW Stuff

            搜索

            •  

            積分與排名

            • 積分 - 914445
            • 排名 - 14

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            MANGOS中的地圖管理 
            從蚊子叮blog上轉載的,但是這兒是老家。

            這里所說的地圖管理是指服務器端的地圖管理以及地圖上的對象管理。

            在魔獸中,一組服務器為一個世界,一個世界內同時存在著多個游戲場景,如東部王國,卡利姆多,監獄副本,戰場等。每個游戲場景都對應著一幅地圖,但一幅地圖卻并不一定能確定一個場景,這是因為有副本的存在。在一個場景地圖里,還會分區域,比如東部王國里會有艾爾文森林區域、西部荒野區域等。

            從wow客戶端的adt及wdt數據里可以大致了解到地圖相關數據。每張地圖最多有64*64個格子【重劍注:看了下朝哥的worldEditor,果然是左下角(0,0)右上角(63,63) 】,每個格式大小為533.33333*533.33333(即1600/3,為什么設定成這個數字?)除了東部王國和卡利姆多外,大部分的地圖都比較小,不會真正占用這么多個格子。每個格子用一個adt文件來描述其詳細信息,另外有一個wdt文件來指出該地圖中哪些編號的格子存在。

            再來看mangos中是如何表示這種結構的。一張地圖就是一個Map對象,對于可以創建出多個場景的副本地圖,多個副本也就對應著多個Map對象,里面記錄了當前管理的是哪個副本,另外再有一個MapInstanced組件來維護副本地圖列表。地圖內分成的64*64的格子,每個格子的信息包括區域標志、地形類型、水位層級和高度數據,用GridMap結構體來表示,由Map來維護這個GridMap二維數組。另外Map內還維護了該地圖內所有的WorldObject和GridObject列表,當然也是以Grid為單位來保存。

            由于一個Grid的實際大小為533*533,其范圍還是非常大的,一般玩家也不需要關注這么大范圍內的所有對象,所以mangos又將一個Grid分為了8*8個Cell,每個對象都同時關注當前所在Cell及周圍的八個Cell內的對象。這種劃分格子來管理地圖區域的方法在以前基于TILE的2D游戲中差不多為最通用的方法。

            現在的服務器地圖有些也引入了客戶端場景管理的方法,使用四叉樹、八叉樹的方式,云風與地圖管理有關的兩篇文章可以看一下:

            http://blog.codingnow.com/2006/10/quadtree.html

            http://blog.codingnow.com/2006/12/collision.html

            posted on 2009-05-05 15:01 七星重劍 閱讀(1998) 評論(5)  編輯 收藏 引用 所屬分類: Game Engine

            FeedBack:
            # re: MANGOS中的地圖管理 2009-05-06 23:29 Davy.xu
            每每看到感興趣的內容大部分都是在重劍的空間,感慨感慨

            最近剛看mangos,希望和貴兄一道分析  回復  更多評論
              
            # re: MANGOS中的地圖管理 2009-05-08 17:56 七星重劍
            @Davy.xu
            臭味相投啊 ^_^  回復  更多評論
              
            # re: MANGOS中的地圖管理 2009-06-02 22:27 xoyojank
            搞服務器去了么-_-  回復  更多評論
              
            # re: MANGOS中的地圖管理 2009-06-04 14:19 七星重劍
            @xoyojank
            非也非也  回復  更多評論
              
            # re: MANGOS中的地圖管理 2009-10-16 10:16 getmangos
            " 每個格子用一個adt文件來描述其詳細信息,另外有一個wdt文件來指出該地圖中哪些編號的格子存在。"


            你說的是客戶端吧,mangos里的地圖都是 .map文件
              回復  更多評論
              
            久久99热这里只有精品66| 国产亚洲精久久久久久无码| 久久精品无码一区二区三区免费 | 久久久亚洲AV波多野结衣| 久久99热这里只有精品国产| 精品久久人妻av中文字幕| 国产午夜精品久久久久九九| 久久精品国产AV一区二区三区 | 久久99精品九九九久久婷婷| 久久久久亚洲AV无码专区首JN| 久久久久中文字幕| 思思久久99热只有频精品66| 亚洲国产精品久久久久| 婷婷五月深深久久精品| 日韩美女18网站久久精品| 国产精品毛片久久久久久久| 久久人妻AV中文字幕| 久久激情亚洲精品无码?V| 久久狠狠高潮亚洲精品| 欧美激情一区二区久久久| 国产精品熟女福利久久AV| 久久综合久久自在自线精品自| 精品一久久香蕉国产线看播放| 99久久99久久久精品齐齐| 久久人人爽人人爽人人爽| 久久久久亚洲AV成人网人人网站 | 国产精品一久久香蕉产线看| 久久免费的精品国产V∧| 伊人 久久 精品| 亚洲伊人久久综合影院| 久久国产精品偷99| 国内精品久久久久影院网站| 精品久久久久久| 久久亚洲精品中文字幕三区| 97精品国产91久久久久久| 久久久久无码精品国产| 久久久噜噜噜久久熟女AA片| 国产精品免费福利久久| 国产精品美女久久久m| 久久国产乱子伦精品免费强| 国产精品久久久久影院嫩草|