Minecraft: Bedrock Edition and Minecraft: Java Edition

12.28.2022

Minecraft: Bedrock Edition and Minecraft: Java Edition

There are two major Minecraft versions: Java Edition and Bedrock Edition. Although they look very similar on the surface, the inside is quite different. The different code bases create distinct development environments for content creators. This tutorial will explain the main differences content creators should be aware.

This tutorial will teach you the following:

– A brief history about Java Edition and Bedrock Edition. – What this means for content creation.

Minecraft: Java Edition

This version was first released in 2009. This version was originally called Minecraft. It was renamed Minecraft: Java Edition in September 2017. It was developed in Java, and is not compatible with the current Minecraft version. This edition is often referred to simply as “Java”.

Minecraft Bedrock Edition

The launch of Bedrock Edition took place on September 20, 2017. It was based on Minecraft: Pocket Edition which was released in 2011. It brought together nine major device platforms under one codebase, the Bedrock Engine. This was a complete rewrite of Minecraft, bringing with it fundamental changes to the platform and opening the door for a new development community. This edition is often referred to simply as “Bedrock”.

World Format Differences

The world format is a major technical difference between the two versions. Java Edition uses Anvil format for world storage, while Bedrock Edition uses LevelDB format. This means that most third-party tools for Java Edition world editing won't work on Bedrock Edition.

Both versions use a different block format. Java Edition has flattened the block format by using a unique string to identify each block and separately storing its state. Similar to Java Edition, Bedrock Edition has switched to a string-based system that stores block states but kept some blocks groupings based on data value. This means that the names of blocks will differ between versions. Granite would be stone 1 in Java Edition, whereas it would be granite in Bedrock Edition.

Redstone and Command Differentials

They have also diverged in the structure and implementation of commands. The command structure of Bedrock Edition is very similar to that used in Java Edition versions before 1.13. It also eliminates the use of raw JSON strings in commands to create a component-based system. Instead of using complex JSON strings to customize entities you can summon an entity with an events to fire and name it in one command.

Redstone also functions in a slightly different way. Unlike Java Edition, Bedrock Edition doesn't support quasi-connectivity. Systems that use mechanics like Block Update Detector (BUD), switches won't work. Pistons require one tick to retract and will not leave blocks behind if they are given a pulse of one tick. The way updates are performed is slightly different. Redstone circuits can be used in both versions of the same circuit, but more complicated circuits may not work.

Resource Packs

Both editions have the same idea behind resource packs: to change the game's appearance. However, the layout and capabilities are quite different.

Behavior Packs

Behavior packs are Bedrock Edition's equivalent of Java's data packs. Both have some similarities, but also some differences. Only Java Edition can alter the shape blocks and only Bedrock Edition is able to change the shapes of entities. Each edition uses a different geometry format to accomplish this task. To animate textures, Bedrock uses a single file called flipbook_textures.json, while Java uses individual .mcmeta files for each texture. Java Edition can create custom fonts as well as GLSL shaders. Bedrock cannot. Java can't, but Bedrock Edition can create custom particles or fogs.

Gameplay and Player Input

One thing that is often overlooked is the platform used by different versions of the game. You can reasonably assume that Java Edition players use a keyboard and mouse. However, on Bedrock Edition, it is more likely that your player uses console controls. Touch is a close second. Your player base is a small percentage of keyboard and mouse controls.

This means that when designing experiences in Bedrock Edition you need to be aware of the different inputs players will use. Keep in mind the game your players are playing. Spam clicking with a mouse, or even a controller might be fine, but it would make touch players' lives difficult. While keyboard users with a bow may have perfect aim, it's much more difficult to do so when using a controller or touch control. Complex parkour can even prove to be too difficult for mobile players.

Considerations

This means that when designing experiences in Bedrock Edition you need to be aware of the different inputs players will use and how their experience may be on PC and console. Keep in mind the game mode your players are using. Spam-clicking with a mouse, or even a controller might be fine, but it would make touch players' lives miserable. While keyboard users with a bow may have perfect aim, it's much more difficult to do so when using a controller or touch control. Complex parkour can even prove to be too difficult for mobile players.

The advanced features of the platform mean that there are more ways to make the game break than just bugs. Devices can be slowed down by too many entities with complex behaviors. RAM can be clogged up by custom entities that have complex models. Mobile devices may not be able to load as many chunks at once, so it is possible for smaller devices like smartphones to load less.

What's Next?

If you're new to Java Edition, Add-On development will be your first step in Bedrock Edition. This will open many doors for content creation on Bedrock.