MMORPG如何做地圖編輯器
MMORPG是非常經(jīng)典的一種游戲類型,也是游戲開發(fā)中綜合性最強的游戲類型,它是典型的聯(lián)網(wǎng)游戲,今天我們來分析一下MMORPG游戲的制作以及與單機游戲地圖制作的區(qū)別。
?
1: 為什么MMORPG需要在服務(wù)器上跑地圖
與單機游戲不同,MMORPG游戲需要在服務(wù)器上跑邏輯數(shù)據(jù),這樣做能讓成千上萬的玩家能在一起游戲,同時玩家的正確狀態(tài)都在服務(wù)器上,這樣大家就可以能同步和驗證。舉個例子,地圖服務(wù)器,服務(wù)器上一定會有一個”地圖”, 地圖上面有怪物,有角色, 有NPC, 有BOSS這些。每產(chǎn)生一個怪物等,就會把狀態(tài)同步到附近感興趣的客戶端,這樣客戶端負責(zé)顯示數(shù)據(jù)。同時客戶端發(fā)過來的操作,我們的服務(wù)器接收客戶端的操作,在服務(wù)器上跑數(shù)據(jù),跑數(shù)據(jù)的過程中,服務(wù)器計算,會得到結(jié)果,把結(jié)果發(fā)給客戶端,客戶端播放動畫,這樣各個玩家顯示的是服務(wù)器上的效果??蛻舳司妥兊煤唵?,及發(fā)送輸入給服務(wù)器,根據(jù)服務(wù)器演算結(jié)果客戶端播放動畫即可。這樣游戲不容易作弊,所有的判斷都以服務(wù)器的為準(zhǔn),所以這樣就要求服務(wù)器上必須要跑地圖,必須要有地形相關(guān)的信息,但與客戶端不同,服務(wù)器上的地形只要數(shù)據(jù),而不用模型紋理。
?
2 如何處理地圖的邏輯數(shù)據(jù)
地圖有兩種數(shù)據(jù),一種是圖像數(shù)據(jù)(美術(shù)建好的3D模型), 用來顯示地圖的外觀,一種是邏輯數(shù)據(jù),用來表示地圖哪些地方可以行走哪些地方不可以行走,某個位置有多高等。圖像數(shù)據(jù)我就不說了,程序員主要處理的是地圖的邏輯數(shù)據(jù),地圖的邏輯數(shù)據(jù)如何處理呢?其實非常簡單,就是把地圖分成一個一個的小塊,制作一個工具能夠編輯制定哪些小塊可以行走,哪些小塊不可以行走。最終就會變成一個bitmap, 然后使用尋路算法來做尋路即可。如下圖所示:

地圖的塊大小可以根據(jù)實際的情況來分, 塊的形狀可以是正方形,也可以是正六邊形。3D地圖如何處理呢?3D地圖我們有(x, y, z)三個維度, xoz表示地圖的水平面, y表示地圖的高度。對于一個3D地圖,xoz就是地圖的俯瞰平面圖,其實就是一個2D地圖,我們可以把xoz平面分成小塊(和2D一樣的方式),然后指定哪些小塊可以行走,哪些小塊不可以行走,生成xoz平面的地圖邏輯數(shù)據(jù),用來尋路。那么高度怎么辦呢?這個其實很好處理,因為做地形的時候,都可以把高度圖的數(shù)據(jù)導(dǎo)出來,給定(x, z)的坐標(biāo),我們可以從高度圖中讀取高度數(shù)據(jù)y, 這樣當(dāng)我們導(dǎo)航移動的時候,就可以根據(jù)尋路中的x, z 坐標(biāo)在高度圖中獲取y坐標(biāo),這樣就能控制角色在移動的高度了,可以實現(xiàn)角色的上坡下坡等。

服務(wù)器上的地圖不需要圖像數(shù)據(jù),所以服務(wù)器上2D地圖數(shù)據(jù)就是一個二維數(shù)組, 數(shù)組描述了x, y給定后,某個塊是否可行走。3D地圖數(shù)據(jù)是一個 xoz平面的二維數(shù)組,描述某個塊是否可行走,同時還有一個高度圖數(shù)據(jù)。
?
3 如何制作地圖工具編輯器
地圖編輯器是MMORPG游戲里面很重要的一個工具或插件,一般游戲引擎都有自己的地圖編輯器,所以導(dǎo)入地圖模型后,圖像地圖很快就能顯示出來,這個對于大家來說都沒有什么難度,就是導(dǎo)入一個圖像或模型即可。接下來就是要導(dǎo)出地圖的邏輯數(shù)據(jù),我們一般做MMORPG的時候要開發(fā)工具或插件,讓策劃非常方便的來編輯地圖的小塊。一般會把地圖分成小塊并把每個小塊顯示出來,可以像上圖一下,可視化的指定哪些塊是什么類型(是否可行走)等。如圖所示:

做好了編輯工具以后,就要把編輯好的數(shù)據(jù)導(dǎo)出成特定的數(shù)據(jù)格式,作為地圖的邏輯數(shù)據(jù),所以我們編輯好后,還要提供一個導(dǎo)出數(shù)據(jù)的工具,把剛才編輯好的數(shù)據(jù)導(dǎo)出出來生成地圖數(shù)據(jù),如下圖:

點擊保存以后可以保存成自己定義格式的邏輯數(shù)據(jù),這樣就可以給服務(wù)器客戶端使用了。
?
以上就是MMORPG地圖編輯工具的實現(xiàn)思路,歡迎大家一起討論
我的學(xué)習(xí)交流Q群425-908-678 ,里面有更多學(xué)習(xí)資料與素材源碼,歡迎進群領(lǐng)取