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 版的创作者曾经依赖的许多命令功能现在已经转移到行为包中。游戏的大部分方面都正在被重塑为数据驱动,并高度关注灵活性。随着游戏的演进,整体的游戏体验将保持不变,但驱动这种体验的机制将以非常不同的方式运行。