Fabric is out for Minecraft 1.14.2, giving us access to more performance improvements and bugfixes! (However, Mojang has already confirmed that this is not their final word on the matter.)

Apologies for the post being a little rushed, I’m rather busy today - but here are the highlights of Fabric development so far!

Users

Mods

1.14.1 -> 1.14.2 is a much less invasive update than 1.14 -> 1.14.1 was, so most mods should either already be updated or just work with their 1.14.1/1.14.2-pre builds.

Developers

I’ve already touched on the developer-side improvements to Loom and Loader in the previous blog post, so I’ll refrain from repeating myself here.

Fabric API 0.3.0

Finally - after way too long, we’re marking Fabric API 0.3.0 as a non-test build. What are the changes, from Fabric API 0.2.x?

The biggest one is modularization. In short, instead of being one big blob of patches, the API is now a collection of small, purpose-specific patch submodules. For now, this means that it’s easier to replace and update them as needed and that mods with small requirements can just bundle the submodules they need - but there is more we want to achieve with this functionality, especially come the 1.15 cycle. Stay tuned! (It should also help maintain the speed of the snapshot cycle as the API grows.)

The second biggest feature is the renderer API. It is our response to the need for extending the powers of static block and item rendering, and after long weeks of consulting and improvements it has finally made it into the “core”.

What does it let you do? In general, it allows a “renderer” to be registered and mods to interface with it using an API that extends the vanilla model/static rendering system. This way, the “renderer” can process and handle modded quads and models in the most efficient and optimal manner for itself, while mods can use a common API without fear of incompatibilities. There are currently two renderers available:

  • Indigo; this one is bundled with Fabric. It’s designed for being minimally invasive (OptiFine almost didn’t break it) and trying to expose exactly what vanilla’s engine allows for.
  • Canvas; this is a third-party renderer by Grondag, which rewrites the static rendering system to use a shader pipeline. It also exposes additional functionality via an extension API called FREX, such as custom GLSL shader materials or the ability to have multiple textures applied to the same quad.

However, alongside this, we have added many features and bugfixes!

  • [fabric-item-groups] Added translations (Bulgarian, German, Polish, Chinese).
  • [fabric-networking] Fixed ByteBuf buffer leaks.
  • [fabric-object-builders] Refactored FabricBlockSettings, added FabricMaterialBuilder for easy access to other material flags.
  • [fabric-rendering-fluids] New module, allowing for hooking the vanilla fluid renderer with custom texturing.
  • [fabric-textures] Add proper support for registering sprite registration callbacks to specific, non-block sprite atlases (such as the particle sprite atlas).

There are many more modules in the pipeline, extending the available hooks in regards to biomes, particles, loot tables, registry events and more - so stay tuned!