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

            飯中淹的避難所~~~~~

            偶爾來避難的地方~

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              94 隨筆 :: 0 文章 :: 257 評(píng)論 :: 0 Trackbacks

            (1)- 歷史
                  六年前,我剛剛踏入網(wǎng)絡(luò)游戲開發(fā)這個(gè)新奇的領(lǐng)域,在完全沒有經(jīng)驗(yàn)的情況下,產(chǎn)生了不少亂七八糟的想法。寫下這些隨筆,只是為了保存下這份記憶。這些方法有些幼稚不堪,有些很無厘頭,雖然用處不大,不過寫出來,可能會(huì)對(duì)有些人有點(diǎn)作用吧。

            (2)- 要解決的問題
                  因?yàn)槭蔷W(wǎng)絡(luò)MMORPG游戲,所以需要將一個(gè)角色的動(dòng)作告訴周圍他看到的,也是能看到他其他角色知道。這個(gè)方法,就是用來解決將動(dòng)作告訴其他角色知道這個(gè)問題的。

            (3)- 工作原理
                  這個(gè)想法的工作原理,包括以下幾個(gè)要點(diǎn):
                  A,每個(gè)角色從他站得位置開始,螺旋形的遍歷所有格子,直到遍歷夠 M x N 大小的網(wǎng)格,或者找到滿 X  個(gè)可視角色之后,將這 X 個(gè)可視角色的信息(一般是對(duì)象指針,或者ID)緩存到這個(gè)角色的服務(wù)器對(duì)象中。
                  B,當(dāng)一個(gè)動(dòng)作產(chǎn)生的時(shí)候,遍歷這 X 個(gè)其他可視角色的緩存,把這個(gè)動(dòng)作告訴他們(發(fā)送網(wǎng)絡(luò)封包給他們對(duì)應(yīng)的客戶端)。
                  C,每過一段時(shí)間,重復(fù)執(zhí)行下A操作,并向從原來的緩存中清理出去的角色發(fā)送自己消失的動(dòng)作,向新加入到緩存中的角色發(fā)送自己出現(xiàn)的動(dòng)作。

                   對(duì)螺旋形的遍歷不太明白的朋友,可以參考下面的圖示

                  
                  角色站在1號(hào)位置,沿著數(shù)字依次遍歷周圍的格子。這樣做是為了保證越靠近角色本身的可視物件擁有越高的優(yōu)先級(jí)。

            (4)- 優(yōu)點(diǎn)和缺點(diǎn)
                  這個(gè)方法的優(yōu)點(diǎn)還是有的,我總結(jié)了下,有以下幾點(diǎn):
                  A,穩(wěn)定性高,搜索的范圍固定,而且最大可視數(shù)量固定,所以基本保證穩(wěn)定,不會(huì)出現(xiàn)太大的跳躍。
                  B,自動(dòng)化程度高(^_^),算法自動(dòng)對(duì)周圍人多的情況進(jìn)行了處理,自動(dòng)縮小范圍,既不會(huì)丟失靠近自己的人的重要信息,也不會(huì)因?yàn)槿硕喽绊懶?。(看起來有點(diǎn)象3D渲染上用霧遮擋來減少繪制的多變形數(shù)量)并且自動(dòng)進(jìn)行了動(dòng)作LOD,因?yàn)槭敲窟^一段時(shí)間進(jìn)行一次遍歷,所以在這段時(shí)間內(nèi)如果有其他角色頻繁在遍歷邊緣做進(jìn)出的動(dòng)作,都不會(huì)向角色發(fā)送任何信息。

                  缺點(diǎn)也不少:
                  A,遍歷的時(shí)機(jī)無法控制,不能在有角色進(jìn)入視野的時(shí)候主動(dòng)去遍歷,缺少主動(dòng)性。
                  B,需要一定的空間來存儲(chǔ)周圍角色的信息(指針,ID等)。
                  C,當(dāng)周圍可視角色比較多時(shí),可視范圍就小了,會(huì)導(dǎo)致一些重要信息無法及時(shí)獲知。

            (5)- 后記
                  這個(gè)方法作一些優(yōu)化和修改,還是很實(shí)用的方法。最后給它命個(gè)名吧,就叫 螺旋網(wǎng)格 吧。

            posted on 2008-04-20 02:14 飯中淹 閱讀(1465) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: 塵封的卷軸(1) - 早期的基于格子的MMORPG服務(wù)器角色間可見性處理的想法 2008-10-14 16:54 路人
            不錯(cuò)~  回復(fù)  更多評(píng)論
              


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久国产一片免费观看| 久久超乳爆乳中文字幕| 欧美午夜A∨大片久久| 亚洲国产精品无码久久青草| 久久天天躁狠狠躁夜夜2020一| 亚洲精品蜜桃久久久久久| 丰满少妇人妻久久久久久| 精品熟女少妇aⅴ免费久久| 亚洲欧美一级久久精品| 国产精品久久午夜夜伦鲁鲁| 精品久久人人爽天天玩人人妻| 99久久这里只精品国产免费| 久久99热国产这有精品| 一级A毛片免费观看久久精品| 久久99热狠狠色精品一区| 久久丫忘忧草产品| 久久久精品日本一区二区三区| 三上悠亚久久精品| 久久精品国产亚洲av瑜伽| 成人妇女免费播放久久久| 久久综合久久鬼色| 欧美日韩中文字幕久久伊人| 狠狠综合久久综合88亚洲| 久久亚洲2019中文字幕| 777久久精品一区二区三区无码| 久久人做人爽一区二区三区| 蜜臀久久99精品久久久久久| 国产69精品久久久久99| 精品久久久久久中文字幕人妻最新 | 欧美精品一区二区久久| 香蕉久久夜色精品国产小说| 99麻豆久久久国产精品免费| 国产亚洲精品久久久久秋霞| 国产精品乱码久久久久久软件| 久久丝袜精品中文字幕| 久久免费观看视频| 亚州日韩精品专区久久久| 久久久精品国产| 中文字幕久久波多野结衣av| 7777精品久久久大香线蕉| 色综合久久久久久久久五月|