2009-10-02 22 views
5

我正在設計一個RPG的過程中,我遇到了一個小障礙。我不確定爲我的世界地圖使用什麼。我在過去一週看過不同的格式,並確定沒有任何地圖(我可以找到...)適合室外環境。我發現.bsp地圖(地震4或厄運3)對室內環境很好,但對於戶外環境來說不是很好,因爲他們已經完成了。各種遊戲地圖格式(室內和室外)

我試圖找到一些東西,可以讓我製作巨大的戶外地圖,非常像遺忘或明天。當然,我可能不會將地圖用到這個極端,如果我需要它,只需要有擴展空間。

感謝, 羅比

+1

不是說我們在這裏沒用,但是您可能會得到更有針對性的回覆@ http://gamedev.net的論壇。 – ryeguy 2009-10-02 13:49:08

+0

我試過了,沒有人回覆。這裏的響應時間比gamedev要好得多。至少對於我的問題...... Idk,也許他們不喜歡我,因爲我有時會問簡單的noob問題。哦... – Robbie 2009-10-02 13:51:04

+0

@Robbie:我每天都去檢查Gamedev.net,我不記得看到過這樣的問題。你在哪裏發佈它? – Kylotan 2009-10-05 10:02:05

回答

3

This article介紹了地形存儲,我相信常用的使用quadtrees。基本上,它們就像Quake中使用的BSP樹,但更適合存儲高度貼圖。

+0

我唯一不能得到的是如何將圖形信息與四叉樹相關聯。假設我有一個16x16的bmp文件,我將它用作地圖,最小的節點爲1x1平方。我將如何去用四叉樹繪製地圖?或者我不會這樣做,還有另一種方式來做到這一點? – Robbie 2009-10-02 15:37:47

+0

@Robbie:我認爲當你想存儲實際的3D頂點數據,從高度圖生成使用四叉樹,用於存儲高度圖的點更明顯。然後使用四叉樹來分層組織數據。例如,請參閱http://www.gamedev.net/community/forums/topic.asp?topic_id=410611以獲取更多詳細信息。 – unwind 2009-10-02 16:57:38

+0

現在鏈接已經死了:( – Kjellski 2012-11-24 14:02:29

6

室外環境中使用地形高度貼圖典型的做法。它基本上是一個巨大的網格,每個單元格都有高度信息。每個單元格還包含有關要使用的紋理的信息。

您可以使用分形和培林基於噪音地形發電機

+0

好的。我從來沒有想過這樣做。我一直認爲他們是在攪拌機或其他3D建模程序中完成的,然後加載到遊戲中。現在,你會如何在地圖上放置諸如房子或樹木之類的東西?只需分別製作模型,加載它們,然後將它們放置在任何地方的地圖上? – Robbie 2009-10-02 13:49:46

+0

很多,是的。 – 2009-10-02 13:51:36

+0

呃......這太酷了。 – Robbie 2009-10-02 13:53:13

1

有實現遊戲世界的地圖很多方面這些地圖。
無論如何,對於龐大的地圖檢查Spatial indexes,並專門Quadtrees.

2

我認爲他正在尋找一種方法來保存和加載文件中的地圖,而不是將它們存儲在內存中。 (或者,也許我誤解了?)

恕我直言,有四個路徑來處理這個問題。


極值:創建您自己的格式

您可以創建你自己的文件格式。最簡單的方法是選擇廣泛使用和可擴展的文件格式(如XML),因爲您可以在互聯網上免費找到大量解析器。 (前往applied-mathematics.net,獲取簡單而完整的XML解析器)。

這裏的問題是你必須創建你自己的地圖編輯器。 毫無疑問,如果你想學習大量的東西,並且有一個乾淨的格式,這是「最好的」方式。但是你也必須考慮你需要花費時間來創建所有這些工具。

極值:使用其他遊戲/工具的格式

您也可以選擇使用現有遊戲的文件格式,復古工程師它(或簡單地使用一個開源的遊戲格式如Quake)。

這裏的問題是,你將繼承你選擇的格式的限制。 但開發時間相當短,您只需要找到加載這些格式的方法。

權衡1:從元數據

您也可以選擇接你從現有的格式所需要的東西去耦幾何形狀,並在其他地方存儲您的元數據。

例如,你可以使用創建看起來像一個格式:

<?xml version="1.0" encoding="UTF-8"?> 
<map> 
    <name>MyMap</map> 
    <geometry type="bsp">my_map.bsp</geometry> 
    <spawn id="1"> 
    <monster type="1" spread="5" /> 
    </spawn> 
</map> 

這裏有來自兩個世界最好的。 您可以設計您在任何.bsp編輯器(3DSmax,Blender)中的地圖,並以XML格式存儲您需要的數據。

中2:適應其他的格式,以您的需求

這裏的想法是剛剛創建自己的統一格式,併爲廣泛使用的編輯出口商。例如,您可以爲Blender編寫導出腳本,它將爲您自己的格式生成文件。


只是一些更多的提示,如果我誤解了,你正在尋找你的地圖的記憶存儲。 (如果只是問,我會完成我的答案:))

  • 尋找四/八分之一。這是一種將你的地圖切割成四邊形/立方體的方法。然後,你就可以實現這些結構快速搜索,所以只顯示地圖,LOD,等可視部位..
  • 法爾勝地圖加載中通過選擇接近你的地圖的內存佈局的文件格式。
  • 合併多個地圖存儲範例。對於大戶外地圖來說,高度圖很好,但是非常有限(特別是對於多級地圖)。您可以使用地圖的高度地圖,並且存儲岩石/花朵是四分樹等。