Minecraft 种子(Seed)是一个由一个或多个字符(包括数字)组成的一个值,游戏根据这个值创建每一个世界。[1]
世界生成
当游戏准备生成一个世界时,游戏会调用一个算法,生成一个伪随机数,这个数决定了世界的样子。但由于伪随机算法的性质,若算法初始输入的数值(种子)是相同的话,算出的伪随机数是相同的。
而当世界生成算法更新后,相同的种子也不会生成相同的地形。
这就解释了为什么相同的种子可以在相同游戏版本里创造出相同的世界,而不同的种子、不同的游戏版本都不可以。
一个世界生成时,它的种子已经确定。默认情况下游戏会自动选择种子(使用系统时间)。但玩家也可以手动设置。使用相同的种子可以重复玩相同的世界,种子也可以用于与其他玩家分享世界。种子的设置可以用数字(包括负数)、字符等,非纯数字种子会被自动转换成纯数字(见下)。
如果旧版本的世界导入到新版本中,则新的区块会给于新的种子,因此并不一定会与旧区块吻合(这种现象在冒险元素更新后广泛出现)。被删除的区块会重新生成,但只要种子或生成算法其中一个有所不同,区块就会不同。
必须注意的是种子其实只是输入到伪随机算法中的值,而不是世界真正的名字。生成一个世界不需要一个手动确定的种子。例如,若使用一个生物群系的名称(如"swamp",沼泽)作为种子,生成的世界并不会以沼泽作为主要的生物群系。 注意!在种子输入的时候千万不能将“-”号输入进去,否则有可能会导致严重错误!(15w35e中产生,有可能会涉及其他快照甚至其他版本)斜体文字
种子提取
要确定一个世界的种子,载入这个世界并查看调试屏幕。
在快照 12w21a 以及1.3正式版以后,调试屏幕不再会显示种子。玩家需要按"/"键打开控制台并输入命令"seed"。
目前除了使用外部指令和直接读取地图文件外,多人模式中的客户端无法查看服务器世界的种子。
技术
Java 中的String.hashCode()
函数用于将包含非数字字符的种子转换成纯数字。此函数输出的数据类型限制了游戏在使用非纯数字种子生成世界的总数量(约40亿)。直接使用纯数字作为种子则可以使游戏发挥出最大的生成世界数量的能力(约1800亿亿)。
历史
b | |||||
---|---|---|---|---|---|
1.3 | 允许玩家自定义地图种子。 | ||||
1.8.1 | 调试屏幕开始显示当前世界的种子。 | ||||
1.2 | 服务器不再将世界种子发送给客户端。 | ||||
r | |||||
12w21a | 调试屏幕不再会显示种子。 | ||||
添加指令"/seed",用于显示当前世界的种子。 |
外部链接
种子提取
关于Minecraft 种子的专门网站
- MinecraftSeeds.us
- MinecraftSeeds.info
- Minecraft-Seeds.net
- SeedMiner.com
- AngelikMayhem's Xbox Seed Blog
- TopMinecraftWorldSeeds.com