Minecraft: Bedrock Edition と Minecraft: Java Edition の違い

Bedrock Edition と Java Edition は表面上はよく似ているように見えますが、中身は完全に異なります。 コード ベースが異なれば、構築される開発環境もまったく別のものになります。 このチュートリアルでは、コンテンツ クリエイターが知っておくべき主な違いについて説明します。

このチュートリアルでは、次の内容を学びます。

  • Java Edition と Bedrock Edition の簡単な歴史
  • 2 つのエディションの違いと、それがコンテンツ作成に対して持つ意味

Minecraft には、大きく分けて 2 つのバージョンがあります。

Minecraft: Java Edition

このバージョンは 2009 年に初めてリリースされました。 2017 年 9 月に Minecraft: Java Edition と改名されるまで、このバージョンは Minecraft と呼ばれていました。 その名のとおり Java で開発され、現在のバージョンの Minecraft とはほとんどの部分で互換性がありません。 一般に、このエディションは単に Java と呼ばれます。

Minecraft: Bedrock Edition

Bedrock Edition は 2011 年にリリースされた Minecraft: Pocket Edition をベースとしており、2017 年 9 月 20 日に発売されました。 これにより、9 つの主要なデバイス プラットフォームが Bedrock Engine と呼ばれる単一のコードベースに統合されました。 これは Minecraft を一から書き直したものであり、プラットフォームにいくつかの根本的な変更を加え、活気のある新しい開発コミュニティへの道を開きました。 一般に、このエディションは単に Bedrock と呼ばれます。

世界の違い

両方のバージョンの間の最も明白な違いは、世界の形式です。 Java Edition では Anvil 形式を使用して世界を保存するのに対し、Bedrock Edition では LevelDB 形式を使用します。 そのため、Java Edition の世界を編集するために作成されたサードパーティー製ツールの大部分は Bedrock Edition では機能しません。

2 つのバージョンは、使用するブロックの形式もかなり異なります。 Java Edition は個々のブロックに一意の文字列を使用し、そのブロックの状態を別々に保存することで、ブロックの形式を平坦化しました。 同様に、Bedrock Edition もブロックの状態を含む文字列ベースのシステムに移行しましたが、一部のブロックはデータ値によって定義され、グループ化されたままになっています。 基本的に、これはブロックの名前がバージョン間で異なることを意味します。 Bedrock Edition では花崗岩は stone 1 ですが、Java Edition では単純に granite です。

もう 1 つの重要な違いは、世界の生成方法です。 どちらのバージョンでも同じようなプロセスを使用して地形を生成しますが、使用する乱数ジェネレーターが異なります。 これは、バージョン間でシードに相互互換性がないことを意味します。 Bedrock Edition で使用されたシードは、Java Edition で使用された場合とは異なる結果を生成します。 そのため、Java Edition で Bedrock Edition 向けのコンテンツを作成することがさらに難しくなります。

レッドストーンとコマンドの違い

コマンドの構造と実装も、2 つのバージョン間で異なります。 Bedrock Edition のコマンドの構造は、1.13 以前のバージョンの Java Edition で使用されていたシステムに似ています。 また、コンポーネント ベースのシステムのためにコマンド内部の生 JSON 文字列を排除しています。 長い複雑な JSON 文字列を使用してエンティティをカスタマイズする代わりに、1 つのコマンド内で、発動するイベントを指定してエンティティを召喚し、エンティティに名前も付けることができます。

summon <entityType: EntityType> [spawnPos: x y z] [spawnEvent: String] [named: String]

現在、Bedrock Edition では、Java Edition のようにカスタム アイテムをプレイヤーに /give する方法はありません。 アイテムを事前に作成しておき、プレイヤーにテレポートする必要があります。 そのための最も一般的な方法は、アイテムをチェストに入れておいてチェストを壊すか、ルート テーブルによってエンティティが死ぬときにアイテムをドロップするように設定することです。

その他の点では、Bedrock Edition と Java Edition の 1.13 より前のバージョンのコマンドは非常によく似ていると感じられるでしょう。 Java Edition 1.13 で導入された実行形式は、Bedrock Edition ではサポートされていません。

得点表示は 2 つのバージョンで同じように機能しますが、Bedrock Edition では今のところ Java Edition のような幅広い条件はサポートされていません。 現在、Bedrock Edition でサポートされている条件は dummy のみです。 Java Edition で利用できるその他の条件は、Bedrock Edition では実装されていません。 /stats/team などのコマンドもサポートされていません。

スケジュール コマンドは 2 つのエディション間で異なります。 Java Edition では、/schedule コマンドの構文は次のようになります。

/schedule function <function> <time> [append|replace]
/schedule clear <function>

関数は一定の時間が経過した後に実行するようにスケジュールされ、その際、"append" を使用して同じ関数を追加でスケジュールするか、"replace" を使用して関数を新しくスケジュールする前にその関数の以前のスケジュールを取り消すかを選択できます。 さらに、"clear" オプションを使用するとスケジュールされた関数をスケジュール解除できます。

Bedrock Edition では、/schedule コマンドの構文は次のようになります。

/schedule on_area_loaded add <from: x y z> <to: x y z> <function: filepath>
/schedule on_area_loaded add circle <center: x y z> <radius: int> <function: filepath>
/schedule on_area_loaded add tickingarea <name: string> <function: filepath>

一定の時間が経過した後に関数を実行するのではなく、世界内の特定の領域が読み込まれたときに実行するよう、関数をスケジュールできます。 "ティック領域" オプションを使用すると、指定した名前のティック領域が読み込まれたときに指定した関数が実行されます。 ティック領域が既に有効になっている場合、関数は即座に実行されます。 しかし、ティック領域がまだ存在しない場合は、/tickingarea コマンドの場合と同様にティック領域が作成されるまで関数が保留状態になり、作成されると関数が実行されます。

同じ場所またはティック領域に対して複数の関数をスケジュールできます。 ただし、Java Edition とは異なり、スケジュールされた関数の解除はできません。

レッドストーン機能も少し異なります。 Java Edition と異なり、Bedrock Edition では準接続性がサポートされません。 ブロック更新検出器 (BUD) スイッチなどのメカニズムを使用するシステムは動作しません。 ピストンは引っ込むために 1 ティックを必要とし、1 ティックのパルスを受け取った場合はブロックを後に残しません。 さらに、更新が行われる方法も少し異なります。 レッドストーン回路の大部分はどちらのバージョンでも正常に動作しますが、複雑な回路になるとうまく動作しない場合があります。

リソース パック

リソース パックに関して言えば、Bedrock Edition と Java Edition には多くの類似点がありますが、それでもいくつかの違いはあります。 明白な違いの 1 つは、Bedrock Edition では .mcmeta ファイルに代わって .json ファイルが使用されていることです。 これらのファイルはインターフェイスのさまざまな部分のプロパティを定義するために使用され、同様の方法で幅広く用いられますが、2 つの形式の間にははっきりとした構文の違いがあります。 テクスチャ ファイルの形式にも大きな違いがあり、主なものとして、アルファ チャンネルを処理するために PNG ではなく TGA ファイルを使用するという点が挙げられます。 また、一部のテクスチャ (主にエンティティ) のレイアウトも若干異なります。

ビヘイビアー パック

Bedrock Edition と Java Edition の最大の違いの 1 つは、ビヘイビアー パックの使用です。 ビヘイビアー パックは機能的には Java Edition のデータ パックと似ていますが、実際の実装および使用方法はかなり異なります。

オリジナルのエンティティを一から作成する場合でも、新しいブロックやアイテムを追加する場合でも、JavaScript API を使用してイベントにアクセスする場合でも、ビヘイビアー パックによって新しい機能を導入できます。 非常に高い柔軟性と制御を実現できるビヘイビアー パックは、Java Edition と比較したときの Bedrock Edition の最も大きな強みの 1 つです。

ゲームプレイとプレイヤー入力

忘れられがちな大きな違いの 1 つが、それぞれのバージョンのプレイヤーが使用するプラットフォームの種類です。 Java Edition ではプレイヤーがキーボードとマウスを使用しているとほぼ確信できますが、Bedrock Edition では多くの場合そうではありません。

現在、Bedrock Edition での最も一般的な入力方法はコンソールによる操作であり、タッチが僅差で 2 位となっています。 キーボードとマウスによる操作は大きな差のある 3 位で、プレイヤー ベースのごく一部しか占めていません。

したがって、Bedrock Edition での体験を設計する際には、プレイヤーがさまざまな種類の入力を使用するということに注意する必要があります。 また、プレイヤーがどのようにプレイするかについても留意してください。 連打はマウスやコントローラーでは問題なくても、タッチのプレイヤーには十分な体験を提供できないかもしれません。 キーボードのプレイヤーが弓で完璧に的を狙うことができても、コントローラーやタッチによる操作でははるかに難しくなります。 複雑なパルクールは、モバイル プレイヤーにとってさらにゲームの難所となります。

誰がコンテンツをプレイするのかを、常に忘れないでください。 Java Edition のターゲット層は年齢が高めであるのに対し、Bedrock Edition のターゲット層ははるかに若年である傾向があります。 おそらく彼らは PC で Bedrock Edition をプレイしたことが一度もないでしょう。

パフォーマンス

これはもう少しあいまいで、定義が難しい部分です。 Bedrock Edition Engine は PC、モバイル、コンソールでプレイできるように設計されているので、一般的にはより寛容なプラットフォームであり、ローエンドのハードウェアで Java Edition よりもはるかに優れたパフォーマンスを発揮します。 それでも欠点がないわけではありません。

問題を引き起こす通常のバグ (実際 Minecraft にはバグがつきものです) だけでなく、プラットフォームが高度な機能を備えているために、ゲームにさまざまな問題が発生することがあります。 複雑な振る舞いをするエンティティの多くは、一部のデバイスの速度を低下させるおそれがあります。 過度に複雑なモデルを使用したカスタム エンティティは RAM を使い果たす可能性があります。 さらに、モバイルなどのローエンド デバイスでは、一度に読み込めるチャンクの量が大幅に少なくなる場合があります。

こうしたパフォーマンスの問題の多くに対処するために、Bedrock Edition ではチャンクの描画とティック処理が分離されました。 Java Edition のように両者を直接関連付ける (見えるものすべてが読み込まれる) 代わりに、Bedrock Edition では、描画距離 (どこまで見えるか) とシミュレーション距離 (どこまでチャンクをティック処理するか) を別々の値に設定できます。 これにより、はるか遠くの領域を、それらのチャンクをティック処理せずに視覚的に描画できるようになります。 チャンクのティック処理はパフォーマンスに直接影響を及ぼし、どのような場合でも、ティック処理するチャンクの量が多くなるほどローエンド デバイスで問題が発生する可能性が高くなります。


全体的に、Java Edition から Bedrock Edition への移行は、十分な準備をして違いを理解していればそれほど大変ではありません。 Java Edition のクリエイターがコマンドを通じて利用していた機能の多くが、ビヘイビアー パックに移行されました。 ゲームのほとんどの側面が、柔軟性を重視してデータ駆動型に作り直されています。 ゲームが進化し続けると、ゲームプレイ体験は同じように感じられても、その体験を実現するしくみは大きく変わっていきます。

次のステップ

Java Edition から新たに移行する場合、Bedrock Edition での最初のステップは追加コンテンツの開発です。 これにより、Bedrock でのコンテンツの作成に必要な多くの道が開けます。