RustCraft: Porting Minecraft c0.30_01c to Rust
Porting c0.30_01c to Rust: Selective Fidelity at Scale In which the codebase triples, nine blocks are added, and almost everything else is deferred. This is the largest version jump so…
Reverse engineering history, one version at a time. Technical deep-dives into early Minecraft's source code and the process of porting it to Rust — 878 versions from prototype to release.
Porting c0.30_01c to Rust: Selective Fidelity at Scale In which the codebase triples, nine blocks are added, and almost everything else is deferred. This is the largest version jump so…
Porting c0.0.13a to Rust: The Trivial Update In which the names come back, nothing changes, and we learn what “same game, different JAR” means for a porting project. This is…
Porting c0.0.13a_03 to Rust: Through the Obfuscation Wall In which the class names disappear, water fills the valleys, and bedrock seals the floor. This is version 7 of 878. The…
Porting c0.0.11a to Rust: The Birth of Minecraft In which RubyDung gets a name, text appears on the screen, and the player learns to build. This is version 6 of…
Porting rd-161348 to Rust: The Revert In which Notch undoes yesterday’s experiment, the bushes come back, the particles slow down, and our modular tile system proves it was worth the…
Porting rd-160052 to Rust: Learning to Delete In which we remove a tile type that was only one version old, discover that subtracting code requires as much care as adding…
Porting rd-20090515 to Rust: The World Gets Interesting In which we discover that Java’s tile inheritance hierarchy maps to Rust match arms, that Perlin noise is neither Perlin nor noise,…
Porting rd-132211 to Rust: First Blood In which we translate 1,562 lines of 2009-era Java into modern Rust with a GPU rendering stack, learn that “up” is a matter of…
Porting rd-132328 to Rust: The Entity Extraction In which we discover that translating Java inheritance to Rust composition is less about fighting the borrow checker and more about deciding how…