Eaglercraft 112 Wasm Gc
If you’ve been following the world of browser-based gaming, you’ve probably heard of Eaglercraft. It is a fascinating project that allows users to play Minecraft (specifically older versions like 1.5.2 and 1.8.8) directly in a web browser without installing anything.
However, a common question circulating in forums and Discord servers recently is about "Eaglercraft 1.12 WASM GC."
If you are looking for a 1.12 version of Eaglercraft running on WebAssembly with Garbage Collection, this post will explain the current state of the project, the technical hurdles, and what alternatives exist for browser-based Minecraft today. eaglercraft 112 wasm gc
Eaglercraft 1.12 is an open-source, browser-based port of Minecraft Java Edition 1.12.2. Unlike traditional ports that rely on JavaScript or legacy asm.js, Eaglercraft runs directly in the browser using WebAssembly (WASM). The latest evolution in its runtime incorporates WASM Garbage Collection (WASM GC) — a new proposal that allows WebAssembly modules to manage language-level heap objects more efficiently, bridging the gap between low-level WASM and high-level managed languages like Java.
This write-up explores how Eaglercraft 1.12 implements WASM GC, its performance benefits, and the trade-offs compared to earlier JavaScript-based or manual-memory-managed WASM approaches. If you’ve been following the world of browser-based
When it works, it is impressive.
To understand WASM GC, you first need to understand the pain point of the original Eaglercraft. Candidate tools & runtimes:
Minecraft Java Edition is written in, well, Java. Java runs on a Virtual Machine (JVM) that manages memory automatically using a Garbage Collector (GC). When you play regular Minecraft, the GC occasionally wakes up, clears unused objects (entities, chunks, block states), and causes a tiny frametime spike.
Original Eaglercraft took the entire Minecraft Java codebase and ran it through a transpiler called TeaVM. TeaVM turned Java bytecode into JavaScript. The browser then ran that JavaScript.
Here is the problem: JavaScript also has a garbage collector, but it is not optimized for the way Minecraft creates memory churn. Every time a block breaks or a player moves, thousands of small objects are created. In JavaScript, this causes the browser’s GC to fire aggressively, leading to:
The result was playable, but never "smooth." Enter WebAssembly (WASM).