2009-10-02 20 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,等可视部位..
  • 法尔胜地图加载中通过选择接近你的地图的内存布局的文件格式。
  • 合并多个地图存储范例。对于大户外地图来说,高度图很好,但是非常有限(特别是对于多级地图)。您可以使用地图的高度地图,并且存储岩石/花朵是四分树等。