我正在设计一个RPG的过程中,我遇到了一个小障碍。我不确定为我的世界地图使用什么。我在过去一周看过不同的格式,并确定没有任何地图(我可以找到...)适合室外环境。我发现.bsp地图(地震4或厄运3)对室内环境很好,但对于户外环境来说不是很好,因为他们已经完成了。各种游戏地图格式(室内和室外)
我试图找到一些东西,可以让我制作巨大的户外地图,非常像遗忘或明天。当然,我可能不会将地图用到这个极端,如果我需要它,只需要有扩展空间。
感谢, 罗比
我正在设计一个RPG的过程中,我遇到了一个小障碍。我不确定为我的世界地图使用什么。我在过去一周看过不同的格式,并确定没有任何地图(我可以找到...)适合室外环境。我发现.bsp地图(地震4或厄运3)对室内环境很好,但对于户外环境来说不是很好,因为他们已经完成了。各种游戏地图格式(室内和室外)
我试图找到一些东西,可以让我制作巨大的户外地图,非常像遗忘或明天。当然,我可能不会将地图用到这个极端,如果我需要它,只需要有扩展空间。
感谢, 罗比
This article介绍了地形存储,我相信常用的使用quadtrees。基本上,它们就像Quake中使用的BSP树,但更适合存储高度贴图。
我唯一不能得到的是如何将图形信息与四叉树相关联。假设我有一个16x16的bmp文件,我将它用作地图,最小的节点为1x1平方。我将如何去用四叉树绘制地图?或者我不会这样做,还有另一种方式来做到这一点? – Robbie 2009-10-02 15:37:47
@Robbie:我认为当你想存储实际的3D顶点数据,从高度图生成使用四叉树,用于存储高度图的点更明显。然后使用四叉树来分层组织数据。例如,请参阅http://www.gamedev.net/community/forums/topic.asp?topic_id=410611以获取更多详细信息。 – unwind 2009-10-02 16:57:38
现在链接已经死了:( – Kjellski 2012-11-24 14:02:29
室外环境中使用地形高度贴图典型的做法。它基本上是一个巨大的网格,每个单元格都有高度信息。每个单元格还包含有关要使用的纹理的信息。
您可以使用分形和培林基于噪音地形发电机
有实现游戏世界的地图很多方面这些地图。
无论如何,对于庞大的地图检查Spatial indexes,并专门Quadtrees.
我认为他正在寻找一种方法来保存和加载文件中的地图,而不是将它们存储在内存中。 (或者,也许我误解了?)
恕我直言,有四个路径来处理这个问题。
极值:创建您自己的格式
您可以创建你自己的文件格式。最简单的方法是选择广泛使用和可扩展的文件格式(如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编写导出脚本,它将为您自己的格式生成文件。
只是一些更多的提示,如果我误解了,你正在寻找你的地图的记忆存储。 (如果只是问,我会完成我的答案:))
不是说我们在这里没用,但是您可能会得到更有针对性的回复@ http://gamedev.net的论坛。 – ryeguy 2009-10-02 13:49:08
我试过了,没有人回复。这里的响应时间比gamedev要好得多。至少对于我的问题...... Idk,也许他们不喜欢我,因为我有时会问简单的noob问题。哦... – Robbie 2009-10-02 13:51:04
@Robbie:我每天都去检查Gamedev.net,我不记得看到过这样的问题。你在哪里发布它? – Kylotan 2009-10-05 10:02:05