Minecraft 基岩版与 Java 版的区别2024 年 9 月 10 日 | 阅读 8 分钟 Minecraft 是一款沙盒游戏,玩家在一个由方块组成的、程序生成的三维世界中探索,该世界具有几乎无限的地形,并使用原材料建造结构,制作工具和物品。这款游戏在游戏质量、细节和由用户创建内容增强的游戏玩法多样性方面都非常出色。这种难度也延伸到了方块冒险所存在的不同版本和领域。尽管在过去十年中,这款游戏已经登陆了几乎所有主要平台,但存在两个主要版本,从中衍生出无数变体:最初的 Java 版,以及为移动设备和主机构建的基岩版。 表面上看,基岩版和 Java 版看起来非常相似,但其底层却完全不同。不同的代码基础创造了不同的开发领域。本教程将重点介绍这些差异。 Minecraft: Java 版Minecraft 的 Java 版最初发布于 2009 年。直到 2017 年 9 月,该版本都称为Minecraft;之后它被重命名为 Minecraft: Java 版。顾名思义,它使用 Java 开发,并且在大多数情况下与当前版本的 Minecraft 不兼容。它也被简称为 Java。 Minecraft: 基岩版Minecraft 的基岩版于 2017 年 9 月 20 日发布,并被整合到 2011 年发布的Minecraft: Pocket Edition 的产品线中。它将九个主要设备平台整合到一个称为基岩引擎的代码库下。这基本上是从头开始对 Minecraft 进行的优化,并为平台带来了重大变革,为建立一个令人愉快的新社区铺平了道路。它也被简称为基岩。 关键区别这两个版本之间最明显的区别在于世界格式。基岩版使用LevelDB 格式来保存世界,而 Java 版使用Anvil 格式。因此,许多为 Java 版地形制作的第三方工具将无法在基岩版中使用。 这两个版本使用了完全不同的方块格式。Java 版将方块格式设置为平面,为每个方块使用唯一的字符单位,并单独维护该方块的状态。同样,基岩版已转向基于一系列区块链的系统,但将某些方块收集在一起,这些方块由数据量定义。基本上,这意味着方块在不同版本之间的命名是不同的。在基岩版中,花岗岩将是stone1,而在 Java 版中,它将是granite。 另一个重要区别是如何生成世界。这两个版本在生成空间时使用相同的过程,但使用不同的随机数生成器。这意味着种子在不同版本之间不匹配。在基岩版中使用的种子将产生与 Java 版不同的结果。这使得为基岩版创建 Java 版内容变得非常困难。 红石和命令的区别两个版本之间的命令结构和功能也不同。在 Java 版中,红石命令和功能非常复杂且灵活。基岩版不支持带有准连接(quasi-connections)的红石电路。基岩版的命令结构类似于 1.13 版本之前的 Java 版系统。您可以通过一个事件来调用实体,并使用单个命令对其进行命名,而不是使用长而复杂的 JSON 字符单位来定制实体。 目前,基岩版无法像 Java 版那样给予玩家自定义物品。物品需要提前创建并传送给玩家。最常见的方法是将物品放入箱子并破坏箱子,或者通过战利品表让实体在死亡时掉落。 除此之外,对于 1.13 版本之前的基岩版和 Java 版,命令应该感觉非常相似。Java 版 1.13 中引入的 execute 格式在基岩版中不受支持。 记分板在两个版本之间的功能相同,但基岩版目前不支持 Java 版所拥有的广泛标准。目前,基岩版仅支持 dummy 标准。Java 版中存在的其他标准均未在基岩版中实现。也不支持 /stats 或 /team 等命令。 计划命令在不同版本之间有所不同。在 Java 版中,/schedule 命令的语法如下: 通过选择编辑相同的函数并使用“add”来设置函数在一定时间后开始执行,或者在编辑新函数之前使用“append”来取消之前的工作计划。此外,计划的函数可以通过“clear”选项进行延迟。 在基岩版中,/schedule 命令的语法如下 在基岩版中,函数不是在一段时间后开始执行,而是可以在世界上的特定地点加载时进行组织以生效。“tickingarea”选项将在加载指定名称的 tickingarea 时运行指定的函数。如果 tickingarea 已经激活,则函数将立即执行。但是,如果 tickingarea 尚不存在,该函数将停留在待定状态,直到使用 /ticking area 命令创建 tickingarea,之后函数才会激活。 许多函数可以设置到相同的位置或 tickingarea。但与 Java 版不同的是,计划任务无法删除。 红石的工作方式也不同。与 Java 版不同,基岩版不支持准连接。使用诸如方块更新探测器(BUD)开关之类的机制的系统将无法工作。活塞也需要一刻钟来收回,如果给予一刻钟脉冲,它们也不会留下方块。即使是审查的方式也略有不同。虽然大多数红石电路在两个版本之间都能正常工作,但非常复杂的电路可能无法工作。 资源包尽管 Java 版和基岩版在资源包方面有很多相似之处,但它们也包含一些差异。最明显的一个是基岩版用 .json 文件替换了 .mcmeta 文件。这些文件的目的是定义不同界面部件的属性,并且大多数情况下使用不同的语法差异,但方式相同。您还将看到的其他主要差异在于纹理文件格式,使用 TGA 文件处理 alpha 通道而不是 PNG 是主要差异之一。一些纹理(主要是实体)的放置方式也略有不同。 行为包行为包的使用是 Java 版和基岩版之间最大的区别之一。行为包与 Java 版的数据包非常相似,但行为包的实际使用和实现差异很大。 无论是添加新方块和物品,从头开始构建自己的实体,还是使用 JavaScript API 访问事件,行为包都带来了全新的功能。与 Java 版相比,它是基岩版中最强大的部分之一,因为它允许极大的控制和灵活性。 游戏玩法和玩家输入不同版本玩家使用的平台类型是经常被忽略的主要区别之一。您可以合理地确定您的 Java 版玩家使用的是键盘和鼠标,但您的基岩版玩家不太可能这样做。 目前基岩版最常用的输入方法是游戏手柄,触摸屏紧随其后。只有一小部分玩家使用键盘和鼠标。 因此,在为基岩版设计体验时,您应该注意玩家将使用的不同类型的输入。此外,请记住玩家是如何玩游戏的。例如,对于使用鼠标甚至游戏手柄的玩家来说,连续点击是可以的,但对于触摸屏玩家来说,这将是一种糟糕的体验。同样,使用键盘和弓箭的玩家可能拥有近乎完美的瞄准,但在使用游戏手柄或触摸屏时可能会变得更加困难。复杂的跑酷对于手机玩家来说甚至可能导致游戏崩溃。 考虑到谁在玩您的内容是一个巨大的优势。Java 版的玩家群体可能偏向年长一些,但在基岩版上,您的目标受众要年轻得多,这意味着玩家很可能以前从未在 PC 上玩过游戏。 性能基岩版引擎设计用于在手机、PC 和主机上运行,它是一个更加宽松的平台,在低端硬件上的表现比 Java 版更好。尽管它也有其缺点。性能是事情变得更加模糊和难以定义的地方。 该平台提供的先进功能也意味着有更多方法可以“破坏”游戏,这除了正常的 bug 引起的问题之外。大量实体复杂的行为会拖慢某些设备的运行速度。内存很容易被过于复杂的自定义实体占用。在手机等低端设备上,一次可以加载的区块数量可能会非常少。 为了解决这些性能问题,基岩版将区块的“tick”(即更新)和渲染分开了。基岩版允许您将渲染距离(即您能看到多远)设置为与模拟距离(即区块 tick 的多远)不同的值,而 Java 版中它们之间存在直接关系(即您看到的就是加载的)。 此功能使您能够在视觉上渲染远处的区域,而无需 tick 这些区块。Tick 区块对性能有直接影响。如果在任何给定时刻 tick 的区块越多,低端设备的出现问题的可能性就越大。 游戏平台基岩版支持手机、PC 和各种游戏机,包括 PS4(也兼容 PS5)、Xbox One、Switch 等,而 Java 版仅限于 PC、Mac 和 Linux 系统。如果您知道如何对游戏进行模组化,那么您也可以在电视、Chromebook 和流媒体设备上运行它。 从 Java 版迁移到基岩版是无缝的,只要您准备充分并理解这些差异,因为 Java 版的创作者曾经依赖的许多命令功能现在已经转移到行为包中。游戏的大部分方面都正在被重塑为数据驱动,并高度关注灵活性。随着游戏的演进,整体的游戏体验将保持不变,但驱动这种体验的机制将以非常不同的方式运行。 |
在竞争性编程中,使用高效可靠的库确实对生产力和性能产生了巨大的影响。在本教程中,我们将重点介绍 Collection Framework 中最重要的容器。Java 标准库包含以下数据结构:1. ArrayList ArrayList 是……的一部分
阅读 24 分钟
给定一个正整数数组,其中每个整数的位数相同。两个整数在同一位置出现的不同数字的数量称为它们之间的数字差。每个对之间的数字差的总和...
7 分钟阅读
如何在 Java 中操作?非字母或数字字符称为特殊字符。我们应该删除字符串中的所有特殊字符,以便能够清晰流畅地阅读字符串。特殊字符不可读,所以...
7 分钟阅读
技术日新月异,其在全球的探索性进步正在重塑世界。因此,技术的发展也要求编程语言的演进。Java 编程语言就是其中一种,它始终是需求量大且受欢迎的编程...
阅读 6 分钟
在 Java 中,Future 是 java.util.concurrent 包下的一个接口。它用于表示异步计算的结果。该接口提供了检查计算是否完成、等待其完成以及检索计算结果的方法...
阅读 24 分钟
?在 Java 中,垃圾回收是自动管理内存的过程。它找到未使用的对象(不再被程序使用的对象)并删除它们以释放内存。垃圾回收机制使用多种 GC 算法。最流行的算法是...
5 分钟阅读
二进制数在计算机科学中起着至关重要的作用。它仅使用数字 0 和 1 来显示信息。确定一个二进制数是否可被 3 整除需要理解模运算、数字和乘法。可以分析二进制数以...
5 分钟阅读
Java 程序显示 1 到 100 的奇数 在 Java 中,从标准输入读取数字的最流行方法是使用 Scanner 类。有时,我们还使用 BufferedReader 类来读取数字。它提供了与...相关的不同方法。
阅读 3 分钟
在 Java 中,数字猜测游戏是一个基本游戏,其中计算机生成一个随机数,玩家在特定范围内尝试猜中它。以下是它的工作原理的快速概述:游戏开始时,计算机生成一个随机数...
5 分钟阅读
在 Java 中,将 String 转换为字符数组是一项常见任务。在 Java 中,我们主要将字符串转换为 char 数组进行字符处理、迭代和字符串操作。有以下方法可以将 String 转换为 char[] 数组:使用 Arrays.toCharArray() 方法使用 Stream 使用 String.split() 方法使用 Arrays.toCharArray()...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India