【问题标题】:Dungeon cell system alghoritm地牢牢房系统算法
【发布时间】:2012-04-26 09:29:05
【问题描述】:

现在,我正在制作类似地下城主的游戏。游戏必须比Grimrock 传奇更多地与剑和魔法相关; Corridor Wizardry 8 之类的东西。我要制作一些像样的图形,所以我正在考虑正确的细胞系统算法。

首先我想到了 BSP。我从这些链接中获得了一些信息

但我不知道。基本形式的 BSP 仅对 2D 类 Rogue-like 地牢有用。

我正在使用 C# XNA,所以我正在考虑我自己的系统在 xml 中逐个单元格地定义,首先是它们在空间中的位置(制作一些隧道地图系统),然后是它们的所有细节,例如纹理。但是,我害怕在墙上放置“地图文件”生成的对象,如火把、宝箱、秘密按钮、陷阱其他物品等。

我想知道,哪种方式最能满足我的游戏内需求,我不想花几个月的时间探索 BSP,然后选择另一种方式。

【问题讨论】:

  • Dungeon Master 和 Legends of Grimrock 的核心都是 2D roguelike 游戏。它们只是为您提供世界的 3D 视图。 BSP 经常用于 3D 游戏引擎(最著名的是在 Quake 系列中,尽管很多游戏都使用了它们),所以它可能是一个不错的选择。
  • 但是我个人会选择一个非常简单的基于网格的系统,并且根本不用担心优化,直到它成为您开发盒上的视频卡的问题 :) 那时您将很好地了解您的游戏对象在您的世界中是如何映射的,这样您就不会同时打两场思想战。

标签: algorithm xna


【解决方案1】:

一般来说,您为此目的所追求的是Maze Generation Algorithms,其中 BSP 是一种实现方式。

但是,您应该首先决定如何代表您的世界。

如果您想创建一组“链接区域”,那么您可以使用 DFS 类型的算法,它会尝试以复杂的方式链接各个区域。 (把它想象成你在 MUD 类型游戏中导航的区域)

否则,如果您想要一个代表您的地牢的大型实体迷宫,那么您可以使用该维基百科链接中的一种算法生成一个简单的位图,然后将其用作您的“平面图”。然后可以将其向上挤压以创建墙壁并为您提供一个非常基本的类似“末日”的空间,然后您可以使用火炬/纹理/任何其他对象来丰富它。

我希望这会有所帮助。

【讨论】:

  • 好吧,我可以通过编辑器或原始编辑一些数据文件来预定义地牢。我最大的问题是,当我将拥有带有单元格的基本地图时,如何舒适地将对象放置在地牢中。所以更多的问题是如何存储地图数据,如何设计结构。我会检查你的回答中的参考资料,谢谢。
  • 一张“带有单元格的地图”可以构建为 N 个带有门或传送空间的独立小房间。一旦玩家通过一扇门(或传送装置),他们就会(立即)被送到下一个单元/空间。因此,每个单元都必须有自己的 3D 定义(例如,一个带有对象的 4 墙房间)。在这种情况下,“细胞”是一个概念,您不必用细胞实际构建您的 3d 世界。您只需要知道哪些单元与哪个(以及通过哪个门)相连,就可以在它们之间导航。
  • 是的,我用一些网格描述的单元格的连接。并且 cellsdatafile 中的每个单元格都将有特定的 ID 来放置。所以现在最重要的是电池设计。好的,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
相关资源
最近更新 更多