大家好,我目前正在开发一个叫做Arrow Puzzle Escape的游戏。它是一种解谜/迷宫游戏,通过“拉出”箭链并了解它们如何相互作用来解决关卡。目前我正在开发一个基于算法的关卡生成器。生成器的想法是,它会根据用户选择的网格区域填充箭形结构来创建可玩的谜题。生成器分为两个主要阶段:1. 首先,它将选定的区域分成“细胞链”,类似于Tetris样子的形状。2. 然后,它尝试为这些形状分配方向,有效地将它们转换为形成可解关卡的箭形。目前我遇到的主要问题是,第一个阶段没有包括任何逻辑来防止“死锁”——情况是箭头以一种使关卡无法解的方式阻塞彼此。对于小网格(如10x10或30x30),一切都正常工作。然而,对于更大的网格(40x40、50x50和以上),生成时间会呈指数增长,无效布局的数量会显著增加。到那时,生成变得几乎不可用了。我觉得问题不仅是优化问题,而是算法本身的结构。现在我在寻找一种方法来重设计这种方法,使其能够可靠地生成更大的可解关卡,而不需要指数级的重试或死锁情况。另外,稍微退一步——我开始怀疑这种方法是否在根本上是可扩展的。是否可能设计出一种可靠地产生50×50+可解关卡的过程系统,而不会陷入指数级失败率?我附上了一个视频,展示了Unity中生成器当前如何工作。如果有人对此感兴趣或想实验一些想法,我也可以分享项目的源代码。任何建议或反馈都将不胜感激。另外,我将非常高兴地为改进或解决此算法的任何人提供署名。
箭头谜题逃脱关卡生成
评论 (0)