开始探索Unity中的程序环境生成

在最近的游戏中,过程生成一直是非常流行的机制。 自2009年以来,《我的世界》取得了成功,这在很大程度上推动了这一趋势,但在其他许多游戏中也受到了巨大冲击。 在我采访的遵循Minecraft探索性游戏创造游戏风格的游戏中,有Terraria(我将其视为Minecraft的2D版本)和Starbound(我将其视为太空中的Terraria)。 但是,我还没有看到一款游戏能够完全跟上Minecraft的成功。 最近的一些游戏还包括臭名昭著的“无人的天空”,它承诺会“挖出18亿亿”行星,这真是一次巨大的技术失败。 几个月前,我遇到了一个要添加到程序生成堆中的新标题:Astroneer。 它由程序生成的行星和一个非常有趣的设计向我曾经想成为天文学家的内心孩子说话。 该技术一直是衍生出更高级技术的基础,包括“行进四面体”,“曲面网”和“双重轮廓”。行进四面体和立方体是3D曲面构造的“主要”方法,而曲面网和双重轮廓是最近的“双重”方法。 我的理解是,“双重”方法可以使表面更接近,但要了解更多,我建议在此处查看一下: 平滑体素地形(第2部分) 上一次我们提出等值面提取问题并在较高级别上讨论了一些常规方法… 0fps.net 这些技术,特别是双重轮廓技术,已成为游戏引擎(包括Unity)中生成地形的主要方法(这对我来说是新闻)。 像Minecraft这样的游戏会简化该方法,并采用基于体素的方法。 我的猜测是,这将使其在按程序生成环境时更具性能。 为了进一步了解在Unity中如何生成过程生成的环境,我在Unity Asset存储库中浏览了现有示例。 我发现了一些最有用的资产:…

RoguePG-程序生成(哈!)

好吧,我不认为在上一篇文章后会这么快地发布帖子,但是我在这里。 我花了很多时间阅读程序生成,并参考了一篇写得很好的关于一种方法的教程。 不幸的是,经过大约1-2个小时的阅读后,我意识到我正在学习的方法只能以程序方式生成正方形的房间(无方差,很无聊),并且每次都必须将地图重新​​加载到游戏中玩家进入新房间的时间! 我感到有些沮丧,但是后来我想起了Phaser v3示例文档中列出的一个很好的示例,该示例与我想要的非常相似。 起初有点令人生畏,但通读它完全有回报。 怎么运行的 实际的过程生成代码对我来说有点丢失,并且可能值得冗长地发表自己的文章,因此我将在此处进行链接。 实际上随机生成连通的房间从而构建地牢非常方便。 我最终要做的是(紧跟本教程之后),生成了所有由x,y坐标组组成的房间,并手动将瓷砖随机放置在目的地。 听起来需要做很多工作,但实际上大约需要30行代码。 我们知道每个房间都需要拐角,因此每个房间的每个拐角处都有墙砖。 那部分很简单。 另外,由于我的墙壁实际上没有任何变化,因此我们可以对所有墙壁本身使用1个图块。 然后,由于地砖存在一些差异,因此我们称为weightedRandomize函数。 此功能可将图块坐标中图块矩形区域的索引随机化。 最后但并非最不重要的是门。 值得庆幸的是,生成代码中有一个帮助程序方法,该方法将列出每个房间的所有门坐标。…

Roguelike庆祝回顾

这个周末,我有机会参加了Roguelike庆典:在SF举行的一次小型会议,讨论了Roguelike游戏的设计和历史。 这是一次很棒的经历,我想记下一些笔记。 所有的谈话都被记录下来,因此,如果您希望自己观看它们,我强烈建议您在这里观看第一阶段的视频资料,第二阶段在这里。 佩玛德斯不应该是一件痛苦的事 这在许多演讲中都有提到。 对我来说,有趣的是,开发人员并不认为这是一件困难的事情。 相反,它被视为一种使选择更具重要性的方法。 许多开发人员都在寻找使过去的游戏影响未来游戏世界的方法。 矮人要塞开发商特别是将此作为他们长大的街机游戏中最高得分列表的逻辑扩展。 一个很好的例子就是《以撒的结合》,这款游戏受到流氓般的启发。 该游戏的每次玩法都有很大的机会解锁其他物品拾取/角色。 足够的“胜利”也将使游戏更难/更长,这是调整难度/不压倒玩家的好方法。 对于没有视力的人来说,空间导航是最难的事情 阿列克谢·佩珀斯(Alexei Pepers)就她在使无赖之类的信息可访问性方面所做的研究进行了精彩的演讲。 这里有很多与游戏无关的重要点。 如果您制作交互式产品,而这些东西对您的工作很重要(可能确实如此),那么我敦促您听演讲。 这次演讲中有趣的一点是,这些游戏的基于文本的特性使它们更容易适应音频接口,从而与音频接口紧密地结合在一起。…