Articles of 程序一代的

基于规则的程序地形生成

如何产生程序地形是非常简单的。 但是一旦你设置了地形,你就没有什么细节可以控制好了。 我能想到的一个解决scheme是将规则存储为函数,即正方形,圆形等,这将覆盖该区域中的规则。 例如,在高山地形中,我们可以放置一个使它们平坦或梯田的function。 我弄不清楚的是如何存储这些function(假设地形原则上可以是无限的,或者至less是行星尺度的)。 他们应该被放置在现有的坐标系统,还是本地存储到地形? 我在“星球大战星系”中看到过类似的东西,但是很难find有关系统实现的细节。

如何在使用分块algorithm的基于2D的世界中管理持久性?

假设我有一个在二维平铺的程序生成的世界上运行的游戏。 为了节省计算机资源,实现了一个分块algorithm,将整个世界切成32×32块的块,并根据玩家角色的位置加载/卸载它们。 有关块的信息被序列化为文件。 假设在任何给定时间加载和管理在网格中间具有玩家角色的3×3网格块。 玩家在森林中发现一只动物,但它逃跑了。 然后他们决定追逐这只动物,但是这个速度至less是玩家的5倍,而且在跟踪它们一段时间之后,它们之间的距离变得太大而无法跟上。 如果距离足够大,动物可能已经移出了装在玩家周围的大块。 因为动物离开了轨道,它已经沿着一定的path,通过卸载块避开树木和岩石等障碍物。 这是如何管理的游戏? 我自己尝试这个,但是我很难想出一个办法来管理,修改和阅读没有加载的块,以便屏幕上跑动的动物仍然明智地移动,离开轨道,或者被淹没的小镇而玩家离开。 我知道,有时候他们会计算自从玩家最后一次访问以来应该改变的大块数,但是这意味着如果一包5只动物跑掉了,那么我将不得不保存大量的数据。 我不确定这样的问题的答案是否需要关于我的游戏或项目的更多(技术)细节,但是我会提供这些如果想要的。

生物群系中最先进的技术是什么?

也就是说,考虑到地形+海洋,对于游戏开发者来说,现在有哪些最先进的方法可以用来生成气候,从而为地形的各个区域生成生物群落? 鉴于前述的input,是否有工具将模拟如下的事物: 洋stream 盛行风 雨阴影 并生成生物群分配的输出(最典型的水分和温度作为Whittaker图的input)? 我已经研究了阿米特·帕特尔(Amit Patel)关于这个问题的伟大文章 ,但是对于模拟气候或降水并没有多大的帮助。 注意:“可用于游戏开发”我不需要一个交钥匙工具,只是对人们已经尝试过的方法以及他们在实践中工作的方式感兴趣。 这意味着它可能是一个晦涩的roguelike黑客一起怪物,但不是只存在于博士论文或需要超级计算集群运行的东西。

程序性地形生成和生物群落/预定变化

所以我已经有了一些(现在可能是2D的3D)单纯的噪音产生了,有一些实验可以为平原,丘陵,山脉等做一个地图。 现在的问题是我想把这些结合在一起来创建一个更大更有趣的地图。 对于高度图中的每个“像素”,我提供/生成一个生物群落types,它有一堆参数来定义高度值是如何计算的。也就是说,我希望能够在这里说山,通过那里的河,下一个洪泛平原把它等,并把它们混合在一起。 问题在于,它们之间留下了令人讨厌的界限,因为即使单纯的input值突然变化(由于x / z缩放比例不同,也许不是最好的方法)。 我认为只是做一个后处理来平滑沿边界的高度值,但是这仍然会经常陡峭(并且在不断渐变的斜坡上),因为我可以在一边有一个山谷,在另一边有山。 我相信肯定有一个更好的,相当标准的方式来做到这一点,但至less对于这种噪声函数来说,还没有find太多的东西(中点位移可以用低分辨率的初始值来播种,但似乎没有如果不是一次生成整个地图,则可行) double getHeight(int x, int z, Biome biome) { double nx = x; double nz = z; nx *= biome.xzNoiseScale();//eg 1/64 ny *= biome.xzNoiseScale(); double noise = fbm(nx, nz, biome.noiseOctaves(), biome.noiseLacunarity(), biome.noiseGain()); return biome.baseHeight() + noise * biome.heightVariation(); } double fbm(double x, double z, int octaves, double lacunarity, […]

我怎样才能产生一条无限的程序之路?

我目前正在试图制作一个游戏,玩家可以沿着一条无限的,或多或less的直路前进。 “或多或less”,我的意思是道路直行(玩家不能左转或右转),但道路有弯曲,在高速公路上从一个车道切换到另一个车道。 也会有不同的“区域”穿越(都在同一条路上),例如沙漠,丛林和水上。 最后,玩家跳过的道路,以及经常出现的检查点都会有空白。 从种子开始,我们怎么能在比赛中产生前面的路? 我不能提前(明显)产生整条道路,但是每个玩家都需要在赛道上的相同位置看到同样的东西。 我怎样才能做到这一点?

起伏的丘陵地形一代

我正在尝试使用perlin噪声在Unity中实现卡通风格的地形生成。 我想像马里奥一样为我的游戏创建起伏的山丘 低杠perlin噪音我杠杆总是给我逼真的连绵起伏的丘陵,但我想要在海拔和平顶之间的卡通边缘。 任何想法如何实现? 我猜想它可能与玩邻近点之间的一些缓和函数(非线性量化?)有关。 扩大,像这样的事情缠绕在一个球体的工作(我的世界将是球面的位移)。 我会设置一个生物群落等,但如果上述将工作,我将如何去生成像图像的高度贴图纹理?

如何从傅里叶变换中产生山脉?

我正在观看这个游戏的创始人/程序员所说的“ 无人天空”的 IGNvideo,他讲述了他的游戏和其他游戏的不同之处。 在这里,他谈到如何用math方程而不是艺术来呈现行星和动物的graphics,甚至是他们的行为。 然后他说,他没有看到山,而只看到像傅里叶变换这样的方程。 我对游戏开发及其复杂性一无所知,但我很好奇如何使用傅里叶变换或类似的math运算来生成没有艺术的地形?

我如何用Godot引擎编程瓷砖?

对Godot Engine来说,我是一个全新的玩家,而且在游戏开发方面也是相当的业余爱好者。 我有一个小项目,我想实现一个程序化生成的关卡,为此我希望能够以编程方式放置切片。 我正在考虑GameMaker这个video中的内容 ,但是,我还没有find一个有logging的方法来为Godot做这件事。 戈多是否支持以编程方式铺设瓷砖,如果是的话,如何?

有什么方法来表示3D地形?

我正在制作一个需要程序生成的地形系统,​​并希望知道我的select。 到目前为止,我知道:高地地形,vector场地形和体素地形。 列表中有什么遗漏吗?

正确的方式来“随机”生成stream动的地形

我正在创建一个简单的自上而下的RTS游戏。 当我需要的时候,我会随机“随机”生成地图。 我计划一切工作在“通行证”: 用所有的草地填充地形 回去添加一些随机的砾石喷射 圆砾石 在第二层画山风景 圆山 等等 现在,看看下面这张图片: 我手工使用我的地图编辑器创建了这个,但我打算在这个基本上是希望通过/步骤3后的结果。 我应该如何决定何时和是否要放置我的砾石,以至于它至less是不规则的形状和零星的看起来自然? 谢谢,如果你可以! 任何和所有的帮助表示赞赏! 作为一个方面说明: 每一个通行证基本上是迭代通过我所有的瓷砖(地图分为40×40瓷砖)类似于这样的: for (int x = 0; x <= GRIDMAX – 1; x++) { for (int y = 0; y <= GRIDMAX – 1; y++) { //Terrain(x, y, 0) = SomethingHere; } }