简单拼图算法

6
我开发了一个(非常)简单的益智游戏,要求您使用球和可以旋转的机制将点A连接到B(进入/退出),以使球能够正确方向地进入出口。

以下是简单级别的屏幕截图,清晰地显示了游戏目的:

1)新级别开始,机制以随机方式旋转

2)级别已完成,所有机制都已正确旋转,使球可以沿着正确路径进入出口

问题:

如何创建算法来自动生成关卡,考虑旋转并仅留下一种可能性供玩家完成关卡?

我还想通过添加更多机制(以创建难度级别)增加复杂性。


我认为谈论技术并不是必要的,但我正在使用C#和Unity。

如果您需要更多信息,请告诉我。

谢谢!


6
我认为这不是适合提出这个问题的正确位置。请尝试访问http://gamedev.stackexchange.com/。 - Jeroen van Langen
4
好的游戏点子!关于随机生成谜题关卡,我有些反对。这类游戏之所以好玩是因为有人花费时间进行关卡设计。但如果仍然想要实现随机生成可完成的关卡,并需要概念建议,我建议参考上面的评论。 - Fredrik Schön
1
谢谢您的回复,我忘记了这个堆栈的存在,我会去那里试试。 - Hadrien
1
你有很多选择。搜索算法、遗传算法、规划算法、神经网络等等。我建议你再深入研究一下程序化关卡生成、搜索算法和规划算法。 - PJvG
既然您正在使用Unity3D,您也可以在Unity社区中提出问题。如果您在游戏开发中遇到困难,还可以尝试reddit:https://www.reddit.com/r/gamedev/。 - PJvG
显示剩余10条评论
1个回答

5
如果你看第二张图片,游戏的解决方案是从“输入”开始到“退出”的断线。 您可以通过创建这样一条线(随机化'breaks'的数量和方向)来创建新级别。然后,将每个角落转换成旋转机制。由于必须正确旋转机制,因此只有一个合法的解决方案。

好方法!我没有想到“断行”(这很简单,我真丢脸!),我会尝试一下,谢谢! - Hadrien
3
这个技巧也可以应用在其他游戏中——生成一个随机的“解决方案”,然后根据它构建问题。 - zmbq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接