热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《我的世界》Java版种子合集:探索多样世界生成

本文介绍了《我的世界》Java版中用于生成多样化游戏世界的种子代码。这些种子是由一个或多个字符(包括正整数和负整数)组成的值,能够为玩家带来截然不同的地形和环境体验。通过使用不同的种子,玩家可以探索各种独特的地貌、生物群系和结构,从而丰富游戏的乐趣和挑战性。

efb9fbb17979aa6debccacc7e7bf544b.png  本文章介绍的是用于生成游戏世界的种子。关于游戏内的其他种子,请见“

种子(Seed)是一个由一个或多个字符(包括正整数和负整数)组成的一个值,游戏根据这个值创建每一个Minecraft世界。

种子在不同平台上不兼容,而同一平台上的不同版本之间可能兼容。

Java版的种子在Alpha v1.2.0至Beta 1.7.3期间基本一致。Beta 1.8版本完全更改了世界生成;1.2因为加入了丛林而更改了陆地上生物群系的分布;1.7.2再次重写了世界生成;1.13更改了洞穴的生成,加入了新的水域生物群系,以及调整了变种生物群系和部分结构的位置;1.14加入了竹林生物群系,同时更改了村庄和其他一些结构的位置。上面未提及每次更新加入的新结构,但它们通常不会伴随整个世界生成的大更改。

在基岩版中,Alpha 0.9.0是目前为止唯一一次彻底更改世界生成的更新。水域更新更改了海洋,村庄和掠夺更改了村庄等结构。

原主机版的种子更新大致和Java版的更新周期一致。

某些特定种子在Java版和基岩版中有着相似的生物群系分布,但地形有所不同,结构生成也不一致。

世界生成

当游戏准备生成一个世界时,游戏会调用一个算法,生成一个伪随机数,这个数决定了世界的样子。但由于伪随机算法的性质,若算法初始输入的数值(种子)是相同的话,算出的最终结果是相同的。这就是种子的意义:使用相同的种子可以生成出多个相同的世界。

当世界生成算法更新(通常是加入新的生物群系)后,相同的种子就不会生成相同的地形。这也是某些不同的游戏版本中,相同的种子无法产生相同的地形的原因。

一个世界生成后,其种子便已经确定。默认情况下游戏会自动选择种子(使用系统时间)。但玩家也可以手动设置。使用相同的种子可以重复玩相同的世界,种子也可以用于与其他玩家分享世界。种子的设置可以用数字(包括负数)、字符等,非纯数字种子会被自动转换成纯数字。

如果将旧版本的世界导入到新版本中,则新生成的区块会基于新的种子,因此并不一定会与旧区块吻合(这个现象在Java版Beta 1.8和1.7.2中非常常见)。被删除的区块会重新生成,但只要种子或生成算法其中一个有所不同,区块就会不同。

必须注意的是种子其实只是输入到伪随机算法中的值,而不是世界真正的名字。根据某个种子生成的世界的特征并不注定与种子的字面含义有关。例如,即使是使用一个生物群系的名称作为种子,生成的世界也并不会以此作为主要的生物群系。

查看种子

想要确定一个世界的种子,在Java版中,玩家需要执行命令

在基岩版中,种子可于世界选项界面中查看。也有一个种子选择器,为玩家提供预设的种子,以在出生点附近生成具有特定特征的地形。此外,beta版中,屏幕顶端会显示这个世界特定的种子。

技术细节

Java版

如果种子包含非数字字符或长度大于等于20,那么Java中的String.hashCode()函数会用来将其转换为数字。由于输出的数据类型为int,此函数将Minecraft能生成的种子数量限制为232(4,294,967,296)。为了达到完整的可能的世界数量(264,即18,446,744,073,709,551,616),必须输入纯数字种子或使用默认的世界种子。由于Java的Random类只使用种子中的48位,只有248个种子是有意义的;所有模248同余的种子相互等价。

基岩版中的种子,无论是使用数字还是字符串,都有总共232(4,294,967,296)种可能的世界。这个结论对于64位版本的Windows 10版同样成立。这是由于基岩版使用了32位的梅森旋转算法,只接受32位的种子。

版本间重叠

0至231(2,147,483,648)间的种子在Java版和基岩版会产生相同的生物群系分布,但地形、结构和结构位置、洞穴、矿石分布和生物生成等并不相同。

在Java版中,游戏不接受0作为种子,因为游戏会将其作为字符解释,然后取其ASCII值48。不过,通过输入使String.hashCode()函数返回0的字符串,仍然可以得到“种子0”。这样的单词字符串有creashaks organzine、 pollinating sandboxes、 little jungle、 small skeleton 和 drumwood boulderhead,等等。ddnqavbj 和 166lr735ka3q6。对于数字种子,任何和0关于模248同余的种子(例如281474976710656)也会生成和种子0相同的地形,不过

在基岩版中,游戏不接受-9至9的种子。small skeleton的最后一个字符取为其ASCII值比n大2的字符,即p,于是可行的字符串是small skeletop。最短的可用字符串是ddnqavb后跟一个从a至s的字符。

怪异生成

使用某些特定的种子可以观察到许多奇特的生成。

更改地形而不更改结构

种子只有一部分会用于生成世界内的特定结构。因此,通过将种子转换为二进制序列然后更改特定位,可以做到多个世界有着相同的洞穴系统、下界生物群系和其他一些结构的分布。

平行种子

将一个种子加上-7379792620528906219后得到的种子会有着和原种子完全相同的生物群系分布,但地形并不一致。

1080c28c88f19cf05fea501a2082ee86.png

164311266871034旁观模式下的地下,可见洞穴沿Z轴重复生成。

某些种子会在游戏内部中返回0,洞穴和其他结构的无限生成。Java版中,107038380838084种子会在第一次被调用时返回0,而164311266871034会在第二次被调用时返回0,导致洞穴、废弃矿井和水下峡谷等结构分别在X和Z轴上重复生成。盐,自Java版1.13后它们不在这个种子中受到影响。不过,如果上述两个种子减去1,那么水下洞穴和常规峡谷将会重复生成,但其他结构则不再重复。已有理论分析这些种子也会影响要塞中不同方块类型的分布和恶地中陶瓦的图案,但尚无切实证据证实。

其他一些地物也会受到影响,例如装饰性结构。它们通常沿对角线生成。

在基岩版中,种子289849025和1669320484会沿对角线重复生成洞穴、峡谷和一些装饰性地物。

af13596c169ab688cf0c8acbacfbd571.gif

此段落需要更新。

段落中某些信息已经不符合当前版本情况。

添加了一个简单的世界生成器。

世界生成器更新。

展示了再次进行更新的世界生成器。

生成更多的悬崖。

公布了等轴距级渲染的屏幕截图。

现在可以在生成世界时选择岛屿、浮岛、平坦或原始作为世界类型。

可以选择正方形、长形或下深作为世界形状。

可以选择小、正常或大作为世界大小。

下深浮岛地图现在有多层岛屿。

现在可以选择世界主题,有正常和地狱。

现在岛屿生成更多的沙子。

海洋现在生成无限的水。

水现在可以自然生成于海平面上和浮岛上。

减少洞穴被水淹没的可能性。

允许玩家自定义地图种子。

调试屏幕开始显示当前世界的种子。

服务器将不再向客户端发送种子。

由于单人游戏的实现方式与多人游戏合并,世界的种子不再显示在调试屏幕上。

添加/seed命令,用于显示当前世界的种子。

世界生成算法发生改变,这意味着使用一个旧版本存档,原先未加载的区块将生成不同地形。

加入了种子。

更改了地形生成,这使得旧种子变得过时了。

你知道吗

自Java版1.7.2至1.12.2的版本间,通过更改源代码并将第6个genlayer的值‌

重要的种子

下面这些种子在某些时候曾被官方地图和资源使用过:

在Java版中,演示模式的世界种子可以在完整版中输入North Carolina得到。

在Java版中,自Beta 1.8 Pre-release至18w22c的标题界面的背景图世界种子是2151901553968352745或8091867987493326313Beta 1.6.6至Beta 1.7间的版本来生成。

在Java版中,原始的pack.png图像显示的世界种子是3257840388504953787,在Alpha v1.2.2生成。Alpha v1.2.0至Beta 1.7.3间的版本生成,不过会有细微差别。

在Java版中,Skull on Fire这幅画的世界种子是-6984854390176336655或-1044887956651363087,在Alpha v1.1.2_01或更早的版本生成。

b48919ff20908ab314f9e9a4bef118c5.png

一个黑森林的不完全渲染。

798e23cd96569592ccc5ee666fbd7de8.png

大部分地形都没有加载出来,所以它们看起来和天空的颜色一样。

外部链接



推荐阅读
  • 蓝桥竞赛中的回形取数问题是一个经典的算法挑战。本文详细解析了该问题的正确实现代码,重点探讨了 `hasNext()` 和 `next()` 方法的区别与应用。尽管两者在功能上类似,都会等待用户输入下一个字符,但它们的返回值类型不同,`hasNext()` 返回一个布尔值,表示是否还有输入,而 `next()` 则直接返回下一个输入的值。通过具体的代码示例和详细的逻辑分析,本文为参赛者提供了宝贵的参考和指导。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 本文详细介绍了 Java 中遍历 Map 对象的几种常见方法及其应用场景。首先,通过 `entrySet` 方法结合增强型 for 循环进行遍历是最常用的方式,适用于需要同时访问键和值的场景。此外,还探讨了使用 `keySet` 和 `values` 方法分别遍历键和值的技巧,以及使用迭代器(Iterator)进行更灵活的遍历操作。每种方法都附有示例代码和具体的应用实例,帮助开发者更好地理解和选择合适的遍历策略。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • Java学习第10天:深入理解Map接口及其应用 ... [详细]
author-avatar
放屁虫666_530
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有