Questions tagged «procedural-generation»

程序生成是基于算法和计算而不是手动构建内容的过程。

5
巨大的程序产生的“荒野”世界
我敢肯定,大家都知道像《矮人要塞》这样的游戏-由程序产生的庞大荒野和土地。这样的东西,摘自这篇非常有用的文章。 但是,我想知道如何将其应用到更大的规模。我的世界的规模浮现在脑海(这不是地球表面大小的8倍吗?)。伪无限,我认为最好的术语是。 这篇文章讨论了分形佩林噪声。我不是专家,但是我有一个大概的主意(它是某种随机产生的噪声,是半相干的,因此不仅仅是随机像素值)。 我可以按大小定义X的X区域,添加一些区域加载类型的东西,并产生一点噪声来生成一个区域。但这将导致大量的岛屿。 在另一个极端,我认为我真的不能产生出巨大的珀林噪声表。我认为,那将是一个大岛。 我很确定Perlin的噪音或某种噪音会以某种方式解决。我的意思是,该地图看起来非常好看。而且您可以用瓷砖替换ascii,并获得非常漂亮的外观。

6
如何优化Minecraft风格的体素世界?
我发现即使使用四核和多肉的显卡,《我的世界》奇妙的大世界也极难导航。 我认为Minecraft的运行缓慢来自: Java,因为空间分区和内存管理在本机C ++中更快。 弱世界分区。 两种假设我都可能错了。但是,这让我开始思考管理大型体素世界的最佳方法。由于这是一个真实的3D世界,其中块可以在世界的任何部分存在,它基本上是一个大的3D阵列[x][y][z],其中在世界的每个块具有类型(即BlockType.Empty = 0,BlockType.Dirt = 1等) 我认为要使这种世界表现良好,您需要: 使用某种树(oct / kd / bsp)将所有多维数据集拆分出来;似乎oct / kd会是更好的选择,因为您可以仅在每个多维数据集级别而不是每个三角形级别进行分区。 使用某种算法来确定当前可以看到哪些块,因为距离用户最近的块可能会混淆后面的块,从而使其变得毫无意义。 保持块对象本身轻巧,因此可以快速将其从树中添加和删除。 我想对此没有正确的答案,但是我很想看到人们对此问题的看法。 在大型体素世界中,您将如何提高性能?

4
程序…带房间发生器的房子
我一直在看一些有关程序化生成地牢的算法和文章。问题是,我正在尝试建造一间带房间的房子,而这些房间似乎不符合我的要求。 首先,地牢有走廊,房屋有大厅。虽然最初看起来似乎一样,但大厅不过是不是房间的区域,而走廊是专门设计用来将一个区域连接到另一个区域的。 房屋的另一个重要区别是,您必须具有特定的宽度和高度,并且必须用房间和大厅填充整个物件,而使用地牢则要有空白空间。 我认为房子的大厅介于地牢走廊(可带您进入其他房间)和地牢中的空白空间(未在代码中明确定义)之间。 更具体地说,要求是: 有一组预定义的房间, 我无法即时创建墙壁和门。 房间可以旋转但不能调整大小 ,因为我有一组预定义的房间,所以我只能旋转它们,不能调整它们的大小。 房屋尺寸已设定,必须完全填充房间(或大厅), 即我想用可用的房间填充14x20的房屋,以确保没有可用空间。 以下是一些图片,可以使它更加清晰: 如您所见,在房子里,“空空间”仍然是可步行的,它将您从一个房间转移到另一个房间。 因此,说了这么多之后,也许一所房子只是一个真正非常紧凑且带有走廊的地牢。还是比地牢更简单。也许那里有东西,但我还没有找到,因为我真的不知道要搜索什么。 这就是我希望得到您帮助的地方:您能否给我一些有关如何设计此算法的指导?关于将采取什么步骤有什么想法?如果您创建了地下城生成器,您将如何修改它以满足我的要求?您可以根据需要特定或通用。确实,我正在寻找您的大脑。

3
体素地形引擎如何制造?
几天前,我发现了一种称为体素地形的东西,我认为它们非常酷。但是我什么都不知道。您是在建模软件中对其建模还是使用高度图之类的东西?我在维基百科上读到,体素就像3d像素或体积像素。 制作体素地形后,如何获取这些体素并使它们可 破坏/可挖掘? 我将基于以下因素选择最佳答案: 代码和算法。最好基于C# 解释。我是算法的初学者,但是我对面向对象的编程非常熟悉 逐步演示。不仅是概念,而且是方向。 图表/插图。不,不是其他引擎的屏幕截图。 我知道这是一个复杂的话题。但是,谢谢您的帮助! 不,我不是要克隆我的世界。 编辑 感谢大家的大力帮助(尤其是Nick Wiggill)!这就是我设法做到的(正在进行中)。

3
程序生成的地形中的降雨+河流创建算法
最近,我对程序化地形可以完成的事情着迷,并开始尝试一些构建世界的尝试。我希望能够通过将各种地图网格化而创建的生物群系来制作像矮人要塞这样的世界。 因此第一步已经完成。使用菱形平方算法,我创建了一些不错的hieghtmaps。下一步是我要添加一些水特征,并根据降雨实际生成它们。我已经读过几种不同的方法,例如从地图的最高点开始,然后“逐步”下降到最低的相邻点,在其下降到海平面时进行合并/腐蚀。 是否有任何记录在案的算法,还是袖手旁观? 会喜欢任何建议/想法。

3
如何生成蠕虫风格的地形?
我正在开发蠕虫风格的游戏,并希望以程序方式生成一些地形。以前,我已经使用Perlin噪声完成了很多地形生成,而这正是我在此游戏中开始使用的。唯一的问题是它太简单又无聊,给了我一些麻烦,但没有我想要的复杂性。我想拥有诸如洞穴和悬空山脉之类的功能,而且我不介意漂浮的岛屿之类的东西。这样的事情,甚至更疯狂也可以: 我想到先使用经典的Perlin噪波生成地形,然后才移除零件以创建洞穴,但并非如此,但是我很难指导移除这些零件。生成这样的地形还有其他选择吗?


3
如何从种子产生随机水平?[关闭]
我将如何使用随机种子生成游戏关卡?相同的种子应始终生成完全相同的水平。 对于此示例,它将是蠕虫样式级别。因此,每个级别都会有一个主题(草地,雪地等),基本地形,不同的对象(例如树木)。 那么我将从哪里开始创建这种级别生成器呢?会涉及什么?它使用什么概念? 积分为任何任何好的链接(奖励积分为任何有关它是如何在蠕虫或类似的完成)。 谢谢。

3
基于音频的游戏(例如Audiosurf和Beat Hazard)如何工作?
注意:我并不是在问如何克隆其中之一。我在问他们如何工作。 我敢肯定,每个人都看过使用自己的音乐文件(或提供的音乐文件)的游戏,并且这些游戏会根据这些文件产生关卡,例如Audiosurf和Beat Hazard。 这是 Audiosurf 的视频,以展示我的意思。 如果您提供一首沉重的金属歌曲,那么您会从Vivaldi之类的游戏中获得完全不同的障碍,敌人和游戏体验。 我感兴趣的是这些游戏的工作方式。我对音频(数据方面)了解不多,但是他们如何处理歌曲以了解它何时稳定下来或何时加速呢?我想他们可以只输入音调值(假设音频文件中存在这些东西)来形成一个级别,但是并不能完全解释它。 我正在寻找一个解释,一些关于这种事情的文章的链接(我肯定有一个术语),甚至是这种事情的开源实现;-) 编辑:经过一些搜索和一点帮助之后,我发现了有关FFT(快速傅立叶变换)的信息。这也许是朝着正确方向迈出的一步,但这对我来说没有任何意义,也不适合我对波的物理知识。

3
如何在程序生成的地图中确定海湾和海峡?
我有一个使用Voronoi单元程序生成的地图,其中包含定义的海平面和可信的高度图。 到目前为止,我已经成功地标注了某些地理特征:土地,海洋,湖泊,河流,河口,汇合处,山脉和生物群落。生物群落包括苔原,北方森林,草原和温带森林。那里还有其他一些生物群落,但就我的目的而言,它们现在并不重要。 我想标记下海湾和海峡,但我对如何正确执行此操作感到困惑。海湾是一条凹陷的沿海水域,直接与海洋相连。 海峡是自然形成的,狭窄的水路,连接了海洋的两部分。基本上,两片土地几乎相接,两岸都是海洋。也称为“渠道”。 为了确定功能,我可以按以下类型遍历任何功能: for each (var feature:Object in geography.getFeaturesByType(Geography.LAND)) // loop through lands for each (var cell:Cell in feature.cells) // loop through cells for each (var neighbor:Cell in cell.neighbors) // loop through a cell's neighbors trace(neighbor.hasFeatureType(Geography.LAND));

9
以游戏功能为导向的程序世界
在大型程序性景观游戏中,这片土地看起来很沉闷,但这可能是因为现实世界在很大程度上是沉闷的,只有有限的地方具有戏剧性或战术性。 从这个角度来看世界的产生,游戏的景观生成器(不是为了风景,而是为了玩法)不需要遵循美化的规则,而是需要遵循一些美化规则。玩家的期望。例如,可能存在一个扼流点/路线生成器,该生成器在城市之间创建丘陵沟壑,河流和山脉,而不是自然形成的城市,它们是根据山脉或降雨模式产生的资源或条件散布在土地上的。 有没有像这样的现有工作?从城市或人口中心开始,然后再添加地形? 我问的原因是,我以前曾想过从幻想小说(我自己的和其他人的)中提取现有的地图,将信息作为系统的基点,然后生成一个可以玩的好世界。这似乎已被现有技术所覆盖,也就是说,设计人员在其中输入了所有必要的信息,例如城市人口,资源,生物群落,道路网络和河流,然后允许PCG填补空白。 但是现在我想知道是否有可能让内容生成器也生成整体设计。生成城市和人口中心,平衡它们,以便自然地有商业需要,然后生成位置和连通性,然后从城市类型中产生必须在附近的必要资源列表,只有这样才能给出有关如何使城市之间的旅程既可信又有趣的一些规则,产生了最终的内容,包括道路,阻塞点,桥梁和隧道,渡轮以及包括必要的生物群落和海岸线在内的地形。 如果以前这样做过,我想知道,也想知道哪里出了问题,什么才对。


2
随机/程序与先前制作的关卡生成
使用随机/过程生成与预制级别相比有哪些优点/缺点? 除了项目可能难以在随机生成的地形中分布以及生成的地形看起来很奇怪之外,我几乎没有想到。 但是,以前制作的关卡的缺点是我需要制作一个关卡编辑器。我无法决定使用哪种更好。 答案是否可以包括程序生成和预制生成的代码/示例以及优点/缺点?

10
为什么permadeath对于无赖设计至关重要?
Roguelike和roguelike 类似(Spelunky,Isaac的Binding)倾向于共享许多游戏设计元素: 程序生成的世界 通过新的能力和力量来发展角色 永久死亡 我能理解为什么以Permadeath为前提会导致您产生其他想法:如果您要从头开始,那么您将希望获得各种体验。但是,为什么前两个元素暗示着“长生不老”方法?

6
程序地在岛上生成区域
我目前有一些看起来像这样的岛屿: 我想按程序将其细分为多个区域,如下所示: 我要寻找什么算法?您对下图所示的如何创建连贯区域有建议吗?感谢您的帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.