使用QuadTree进行程序生成

所以我一直在尝试着手一个新的项目,重点关注类似于Isaac绑定中看到的程序室生成。

我打算让代码使用QuadTree来帮助确定房间的位置。 四叉树中的每个节点表示下一个房间可以放置的任何可能的4个方向。

问题是这个。 我不确定从何时开始尝试实施QTree并没有find有关该主题的良好资源。 QuadTrees在程序生成环境中的大多数实现都使用它们来分隔空间并将空间放置在分区空间内。 不知道这是我想实现的。 我也不确定天气应该朝这个方向走,还是有更理想的解决scheme?

正如其他人所说的,我认为你可能会使用四叉树的概念来解决错误的问题。

我花了大部分时间来管理大量数据处理体素,即使我不接触四叉树来创建我的世界数据。

四叉树的目的是为了帮助管理和处理你的渲染世界,所以当考虑创造你的世界时,它确实没有位置。

你提到的方式建立地牢的概念是众所周知的…

http://www.roguebasin.com/index.php?title=Dungeon-Building_Algorithm

http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/

一旦你的algorithm实现了生成代表你的迷宫的原始数据,你可以开始考虑渲染它,因为你可能需要或不需要四叉树。

如果这是一个典型的stream氓,就像你可以逃避不使用一个,完全避免它的复杂性,大多数我见过构建这种types的游戏,只是使用一个单元格的数组,他们在一个网格中移动加载和卸载边缘根据需要。

我的建议是:回到基础,只使用qudtree,如果你绝对需要它。

它像世界接缝不大。 如果它不是一个大的世界,而且你想快速search,那么qtretrees的好处并不是真正需要的。 我会建议使用二维数组。 如果你希望它是dynamic的使用x和y索引作为关键字的房间字典词典。