I recall Minecraft was initially written in Java back in the day, however, I see this decompilation is in C++. I see several files with class names like "BufferedOutputStream" and several others with Java stdlib names. Did MS do a rewrite in C++ but then convert some of the used Java stdlib classes 1:1 into C++?
Minecraft Java was the first version, and is still around today.
Later, Mojang hired 4J to make the console versions. Java on consoles was a bad combination, so they started writing their ports fresh from C++, but heavily derived from the Java upstream as point of reference.
Meanwhile, Mojang was developing their own, separate C++ rewrite in house for the pocket edition. This “Bedrock” edition later expanded into the Windows 10 edition, caught up to Java for almost all functionality, and around Update Aquatic replaced the old 4J version on consoles.
This particular project is a decompilation of the discontinued 4J line.
As to why Bedrock / PE beat 4J, it’s not completely clear, but there is some well founded speculation. Most likely, when pocket edition was started and 4J was hired (~2011), the idea phones and consoles could run the same version was far away, Mojang didn’t want to worry about consoles, and may not have believed feature parity between platforms to be possible. As phones became more powerful, and as the pocket edition became feature complete after over half a decade, Microsoft decided they only needed one. A shame really because 4J’s version was, in some ways, still a better console experience.
I miss the modding from the original Java version - specifically the technology packs. Microcontrollers you can program to create farming robots, electricity, electric tools, solar, oil, those were the good days!
Bedrock performs fantastically and can be played in VR - but sadly lacks the things about Java that I actually liked.
The new generation of mods (e.g. Create) also have their charm, but they lost the simplicity - as did the game in general. And I am glad that's the case, wouldn't it be way worse if everything stayed the same?
Those are still around - look into Fabric or Forge.
Bedrock… mixed feelings on it myself. I don’t think I’m alone - you can find no shortage of videos saying 4J did a better job on consoles than Microsoft’s glorified mobile game.
Appears to already be mostly abandoned with the last activity being four months old - but I was very surprised to see there's a decomp project of Super Mario Odyssey, with commits from just 21 minutes ago. Less than 10% complete though (and, legally, I wouldn't touch it with a 9 1/2 foot pole - Nintendo could argue that the only way the assembly code was even obtainable was through DMCA violations and TOS violations).
I don’t know about the actual laws on the books, but practically speaking decomps have been a thing for a while now and don’t seem to have gotten any pushback from Nintendo.
There’s an entire community of development tools and rpm hacks built around Pokémon Emerald and FireRed for years now, for example. There are ports and enhancements of SM64 to everything now that are based on a decomp. If this was going to be in their crosshairs I think we would have gotten at least a warning shot by now.
Odyssey is just a more fun project!
We have an entire function map over there so its an easier process. MinecraftLCE will have some steam rolling again once I finish automating porting vtable symbols, but I haven’t touched my code for that in a month.
I recall Minecraft was initially written in Java back in the day, however, I see this decompilation is in C++. I see several files with class names like "BufferedOutputStream" and several others with Java stdlib names. Did MS do a rewrite in C++ but then convert some of the used Java stdlib classes 1:1 into C++?
Minecraft Java was the first version, and is still around today.
Later, Mojang hired 4J to make the console versions. Java on consoles was a bad combination, so they started writing their ports fresh from C++, but heavily derived from the Java upstream as point of reference.
Meanwhile, Mojang was developing their own, separate C++ rewrite in house for the pocket edition. This “Bedrock” edition later expanded into the Windows 10 edition, caught up to Java for almost all functionality, and around Update Aquatic replaced the old 4J version on consoles.
This particular project is a decompilation of the discontinued 4J line.
As to why Bedrock / PE beat 4J, it’s not completely clear, but there is some well founded speculation. Most likely, when pocket edition was started and 4J was hired (~2011), the idea phones and consoles could run the same version was far away, Mojang didn’t want to worry about consoles, and may not have believed feature parity between platforms to be possible. As phones became more powerful, and as the pocket edition became feature complete after over half a decade, Microsoft decided they only needed one. A shame really because 4J’s version was, in some ways, still a better console experience.
I miss the modding from the original Java version - specifically the technology packs. Microcontrollers you can program to create farming robots, electricity, electric tools, solar, oil, those were the good days!
Bedrock performs fantastically and can be played in VR - but sadly lacks the things about Java that I actually liked.
"Old" Minecraft Java mods were truly great: IndustrialCraft 2, ComputerCraft, Buildcraft, Tinkers' Construct...
The new generation of mods (e.g. Create) also have their charm, but they lost the simplicity - as did the game in general. And I am glad that's the case, wouldn't it be way worse if everything stayed the same?
Agreed. It’s also so cool they still have the old Java versions available to play, all the way back to alpha (and before IIRC). Nostalgia for days.
Buildcraft was horrible. Random routing and spilling overflowing items will cause massive lag problems until your game world becomes unusable.
All the other item transportation mods had the decency of checking whether the destination inventory can actually hold your items.
good thing you can still download and run them!
Those are still around - look into Fabric or Forge.
Bedrock… mixed feelings on it myself. I don’t think I’m alone - you can find no shortage of videos saying 4J did a better job on consoles than Microsoft’s glorified mobile game.
Java version can be played in VR as well, using Vivecraft. My personal experience has been pretty good.
Modded Java is still around and some things can be kind of “modded” in Bedrock.
People still run those old mods, see GregTech New Horizons for an example.
Maybe you want to try luanti
Very cool!
Appears to already be mostly abandoned with the last activity being four months old - but I was very surprised to see there's a decomp project of Super Mario Odyssey, with commits from just 21 minutes ago. Less than 10% complete though (and, legally, I wouldn't touch it with a 9 1/2 foot pole - Nintendo could argue that the only way the assembly code was even obtainable was through DMCA violations and TOS violations).
https://github.com/MonsterDruide1/OdysseyDecomp
I don’t know about the actual laws on the books, but practically speaking decomps have been a thing for a while now and don’t seem to have gotten any pushback from Nintendo.
There’s an entire community of development tools and rpm hacks built around Pokémon Emerald and FireRed for years now, for example. There are ports and enhancements of SM64 to everything now that are based on a decomp. If this was going to be in their crosshairs I think we would have gotten at least a warning shot by now.
Rockstar DMCAd the gta 3 decomp before launching their awful remaster.
Odyssey is just a more fun project! We have an entire function map over there so its an easier process. MinecraftLCE will have some steam rolling again once I finish automating porting vtable symbols, but I haven’t touched my code for that in a month.
I remember scoring an early key for the Xbox 360 edition by solving a puzzle tweeted out by one of the developers. I was thrilled… my friends weren’t!
Decomplation _project_. The title change had me excited this was anywhere near complete.
> If you are on Ubuntu 18.04...
Probably best to use a slightly newer Ubuntu.
Haven't looked at the code nor tried it yet, but my guess is that the old code requires old base software.