Java 二维平台程序世界生成器

Java 二维平台程序世界生成器,java,2d,procedural-generation,perlin-noise,simplex-noise,Java,2d,Procedural Generation,Perlin Noise,Simplex Noise,我目前正在开发一个基于2D tile的java平台。不是为了挣钱,只是为了好玩。最近我发现了一款叫做Caveblazers的游戏。它也是一个2D平台,我认为它也是基于瓷砖的。它的世界是按程序生成的,每次你玩游戏的时候看起来都不一样。我试着用柏林噪声和单纯形噪声进行实验,但没有按计划进行。我甚至不能确定,水平是可能的,没有障碍物阻挡进球。我的游戏将是一个基于局域网的游戏,也在洞穴里。所以我的问题是如何生成这些看起来很棒的洞穴,以及如何找到放置脚手架和箱子的位置。非常感谢您的帮助,因为它必须可以玩到

我目前正在开发一个基于2D tile的java平台。不是为了挣钱,只是为了好玩。最近我发现了一款叫做Caveblazers的游戏。它也是一个2D平台,我认为它也是基于瓷砖的。它的世界是按程序生成的,每次你玩游戏的时候看起来都不一样。我试着用柏林噪声和单纯形噪声进行实验,但没有按计划进行。我甚至不能确定,水平是可能的,没有障碍物阻挡进球。我的游戏将是一个基于局域网的游戏,也在洞穴里。所以我的问题是如何生成这些看起来很棒的洞穴,以及如何找到放置脚手架和箱子的位置。非常感谢您的帮助,因为它必须可以玩到下周,我很想得到一个快速的答案


把柏林河的噪音想象成平滑的或多或少无聊的地形高度图

值的范围通常为0到1,或-1到1

首先在一个单独的应用程序/UI中测试perlin noise代码,只需使用颜色或3个平铺,一旦掌握了这一点,请尝试映射到更好的平铺

贴图由您决定,但通常高度贴图中的山丘是2d平台中的墙,较深的点保留为空/透明或填充背景瓷砖

除此之外,您还需要确保通道可能使用一些机器人来检查洞穴是否可以通过,机器人可以使用附加代码雕刻一些额外的平滑通道。你不能用纯柏林噪声来实现这一点,所以第二步更像是艺术而不是科学。一般来说,该规范通过平均值在柏林噪声中切割隧道,以避免粗糙边缘

可以使用随机行走+某些方向,请参见:

你可能会找到更多的人来回答。到目前为止,您的问题是堆栈溢出(范围太广,请将其简化为一个或多个特定的编程问题)。