额
就是这个东西,填什么会出现什么样的世界,求详细讲解。{:10_492:}
玩了两年也不懂这个东西。。真是老了
玩了两年也不懂这个东西。。真是老了
严格来说,应该纠正一点:Minecraft 中的地形并不是由「种子」生成,而是「随机」生成。地形生成算法本身跟种子并没有什么直接联系。具体的算法非常复杂,这里略过不说。概括来讲,算法基于「随机」,但是不是「真随机」,是「伪随机」,而「种子」会影响这个「伪随机」。
什么是「伪随机」?计算机进行的是确定性运算,不存在真正的随机性,这意味着想要求计算机「独立」(注 1)生成真正的随机数,在理论上不可能。许多编程应用中想要随机效果,使用的都是「伪随机函数」,就是用某种非常复杂的算法,来生成一系列看似毫无关联却又均匀分布的数字(例如 0.9024310185642406, 0.6399798616249142, 0.8728940712975358, ...),称为「伪随机数列」,以此来模拟随机的效果。每次程序调用这个伪随机函数的时候,就从这个数列中取出下一个数字返回给程序。这样做在孤立来看是没问题的,但是问题是如果你把程序关闭,重新启动运行,你得到的还是原来那个数列,每次取随机数取出来的还是跟上次一样的那些数字,例如仍然是「0.9024310185642406, 0.6399798616249142, 0.8728940712975358, ...」。如果你依赖这个数列来生成游戏内容,那么每次游戏所得到的的结果都会一样,这就失去了随机的意义。
为了解决这个问题,我们只能从「伪随机函数」外面给它加入某种「扰动」,让它在每次运行的时候结果不一样,产生不同的「伪随机数列」。「种子」就是最常见的一种扰动方式。相同的「种子」产生相同的数列,不同的种子产生不同的数列。如何保证每次运行的「种子」不相同呢?最简单的办法就是采用「系统时间」作为种子。相同的程序,上次运行和这次运行的时间肯定不一样,这就确保了每次的种子不同。当然,如果你人为去修改系统时间,并且让两次运行时的系统时间严格一致,那么还是会得到相同的运算结果。但是作为游戏来说,一般没必要考虑这些。
Minecraft 里面的地图种子就是这样的原理。地图本质上是「伪随机」生成的,跟别的游戏没什么区别,但是我们知道 Minecraft 是个比较 geeky 的游戏,它把种子的控制权交给你,允许你指定种子,那么当你使用相同的种子的时候,游戏中所有本该「随机」的元素都会变成「命中注定」。不仅生成的地形完全相同,连什么地方会刷出什么花草牛羊都一样。如果玩家的玩法操作也完全严格相同的话(这个不太可能),那么整个游戏完全就等于是在放电影,一切都是预定好的。
百度是个好东西
海牛的麻烦 发表于 2015-8-3 12:43
百度是个好东西
{:10_566:} 完全听不懂。 太专业的话了
了邱 发表于 2015-8-3 12:47
完全听不懂。 太专业的话了
大概意思就是地形的生成方式是一个函数,这个函数变量很多,种子可以影响变量(个人理解)
这个基本上是随机的,没有准确的计算公式
顺便给你个种子集中贴:http://www.mcbbs.net/thread-381628-1-1.html
顺便给你个种子集中贴:http://www.mcbbs.net/thread-381628-1-1.html
地图通过这串种子生成,相同种子生成相同地图
xiaooloong 发表于 2015-8-3 13:02
地图通过这串种子生成,相同种子生成相同地图
。。。更听不懂了
mc地图制作新团队,极煞团队现在招收 建筑师2名,打字师1名,技术1名 面试找我 QQ2650297783
。。。为何这都不会,好厉害的样子