Stop Minecraft Version Elitism

Like, seriously...

MartinTheDragonMinecraft, Modding
Important

This was originally written out of "anger" on the 11th Dec 2023 and is reposted here with slight alterations. The body text of this document is licensed under CC BY-ND 4.0

Every versed modded Minecraft player has experienced it at some point: You wanted to spend your evening playing a nice session of MC, perhaps sharing your endeavours with other Minecraft players. However, you made one big, fatal mistake: You didn't play on X version. Day ruined. You spend the rest of your free time arguing with that one snooty person, who could be anyone from your friend to the most random stranger in the world, for playing the "wrong" version. Why does it have to be that way?

Background

There are various perspectives to consider, but I'll try covering all of them.

Good mods only available for certain versions

A rather trivial but widespread cause for elitism is simply the fact that mods either stick to a version or get ported with severe lack of content. This, in turn, is the consequence of a variety of factors that have led to Minecraft modding being the way it is, which will also be covered in this post.

Point is, there is little reason for a player who enjoys playing a specific mod to use a different version said mod doesn't exist for. Yet, people still start on a rant that you shouldn't play this version and instead use theirs. Why? Well, the rabbit hole goes deep.

The software perspective

Let's put the particularities and peculiarities of Minecraft modding aside for a moment. Why does software need to update in the first place? You may or may not heard of so-called bugs in software. Either way, they're commonly associated with some visible or functional issue in games. They don't limit themselves to just that though.

In general, a bug is some non-intended behavior in software. So the programmer made a mistake while writing code, but wasn't aware at the time. Depending on where it happened, it can be anything from something harmless like a model rotating the wrong way to a serious remote code execution vulnerability or privilege escalation.

Despite best efforts, it's near impossible for programmers to guarantee that their code is flawless, and before you know it, an exploit gets created that can wreak all sorts of havoc like stealing your identity, accessing your banking account or looking at your browser history. It's not like this hasn't happened with Minecraft as well. See Bleeding Pipe, for example. Exploits have been found for new and old versions of Minecraft alike, but whenever it affected a subset of versions, elitists would instantly show their malice, taking it as yet another reason to play their preferred version.

In any case, your only options are to shut yourself away from the internet, or update to a newer version where the programmer has fixed that bug. Otherwise, more and more vulnerabilities get discovered in the software you use, and you may wake up to a bad Monday.

But a lot of the time this isn't directly the fault of Minecraft anyway. More often than not, it's a mod or some 3rd-party code library that Minecraft uses, like netty for networking. Over the decade that Minecraft has been existing, those libraries have accumulated their fair share of vulnerabilities while older Minecraft versions are continuously distributed with the same old libraries.

This is because simply swapping out an old version of a library with a new one isn't that easy, as a newer version may introduce changes in the API, the Application Programming Interface, which is how a library defines how it is to be used. Most libraries grant some guarantees as to when and how their APIs change, commonly through something called Semantic Versioning. Software continuously changes, but simply removing certain API features wouldn't give software developers relying on the library the necessary time to change their code so they can use newer library versions.

And this is what gets us to the next point!

Minecraft doesn't have an API for mods!

This is one of the major reasons, if not the reason, why we are in this mess. The way Minecraft modding on the Java Edition has worked and still works is by decompiling Minecraft. What is decompiling, you ask? Well, first you'll have to understand what compiling is.

A computer, in essence, just reads numbers corresponding to certain functions/instructions, along with some data. Those instruction numbers are directly read by the processor and make it do things like adding two numbers together, and it does all of that like a few billion times per second. Now, if that's how programming would still work to this day, we'd be practically in the bronze age of computing. Nowadays, instead of memorizing numbers for all sorts of instructions, programmers use programming languages that were designed to be human-readable. Those, however, are not readable by the processor directly. It needs something to translate the human-readable code Kevin came up with into something the computer actually understands. And that's what a compiler does. It compiles code into machine instructions.

So, skipping a few details here, to mod Minecraft without losing your sanity, you have to reverse the operation the compiler did, so you can actually read the code. And that is called decompiling. Additionally, until Minecraft 1.16, Mojang obfuscated the code without providing any sort of way to deobfuscate it, meaning all the variable and function names were a garbled mess, and modders had to find out what a piece of code did just by looking at it and figuring it out themselves. On top of that, code changes a lot between versions, and so do the obfuscated names.

There is Bedrock Edition of course, which did get some sort of "API", but Java Edition has been left alone in that regard, "because modders have been figuring it out themselves anyway".

I think it comes at no surprise now when I say that keeping up with Minecraft's updates is a real pain for everyone involved. There is no guarantee that a mod will still work for the next version, and it almost certainly will break. This all wouldn't be the case if Minecraft had a stable and well-defined modding API, but there's little to no hope of that happening any time soon.

Thus, it is a highly unreasonable thing to ask modders to port their mod to the newest version all the time. And yet, there's a collective that spends a lot of time telling people to do exactly that, which is our next driving force of version elitism. Meet... the Forge Forums!

The Forge Forums

If you've used mods before, you likely know what Forge is. Its job is to make it possible for multiple mods to coexist without disrupting each other by defining the basics of how a mod has to be loaded. You could call it an API, but it isn't really an API for Minecraft itself. It still has to change its API every version to work with Minecraft.

And so, this chunk of software of course has its own forum to help people with modding and such. Except when you want to mod an old version. Then you're out of luck. Before anyone who could help you has the ability to even read your post, the forum thread is already locked, with the famous message: "The version you are using is no longer supported on this forum. Please update to a modern version of Minecraft to receive support."

Forge is slowly dying anyway because the whole dev team left to create their own fork of it, NeoForged. There's some stuff that happened to have caused this, but this is beyond the point of this post.

Anyway, dropping support for old versions would be understandable, if there was an API. This simply isn't the case, and it's even less reasonable to outright prevent people from helping each other. That doesn't help anyone, and comes with the adverse effect of the modding community splitting itself between old and new version elitists. It drove people who already had opinions about versions even further apart.

And once the whole thing started rolling, people began to come up with all sorts of irrelevant and subjective arguments to support their point of view, because players, being neither mod developers nor Minecraft developers, can't do anything about the actual issues...

Subjective and pointless arguments

These arguments are pointless mostly because porting to new versions is hard, and big mods often stay at the version they were originally developed for. When someone is already playing their fine game of Minecraft with their custom selection of mods, there is no point in arguing about versions. Even for starting new mod projects. Maybe you want the mod to work with some other old mod? Despite this, people, being human and all, still try giving their opinions about Minecraft versions. There are quite a few, so let's just have a quick rundown of them.

I like vanilla features!

That's great! Thing is, not everybody has to. Of course, there are many new fun mechanics that were introduced, but you're playing modded, remember? You're already modding the game because you thought vanilla wasn't enough. And if the person you're talking to is forced to play on an older version because the mod they want to use only exists for that version, why blame them for it?

Vanilla features are boring, there's barely any new progression

Maybe you think so, but let's be true, there are a lot of changes in mechanics overall. You probably fail to see them because of Minecraft's inherent design. It's a sandbox game. You decide when you stop playing. And Minecraft simply accumulated a bunch of side-features outside of what could be considered "progression", i.e. reaching The End and beating the Ender Dragon. Vanilla on its own became a lot more fleshed out over the years. Maybe compare playing an old version versus a new version of vanilla Minecraft. Still, if you think those features are boring anyway, well, that's why you chose to mod the game, remember?

X version runs better than Y version

This is a whole other, complicated topic on its own, very individual and hardware-dependent (older versions may run worse on newer hardware), and overall hard to gauge. Minecraft performance may deserve its own complete blog post, but in my opinion, that's the last argument you want to use. I have seen so many people claim that X runs better than Y for them, while Y runs better than X for someone else. But if you really care about using the version that runs best for you than what mods are available, that's your decision. Don't tell others to switch versions, they may very realistically experience worse performance than you do.

We should all just stick to one version

This might seem like a good solution at first, but simply isn't going to work. Vanilla will always be interesting to at least some people, and then there's the whole software perspective mentioned earlier. The only way this might work is if Minecraft discontinued development and was entirely in our hands now, though licensing problems are probably going to make that impossible, and the game would die out as soon as Microsoft stopped paying for the download servers and authentication servers. And who is going to decide where people will log into their accounts then?

What to do then? / Conclusion

I think, looking at this from all sides, this seems rather like a stalemate. Everyone is making their point somewhere, doing what works best for them individually. I know this might be a bit of an unsatisfying answer, but with how things are, the best way to move forward is to leave others be. Introducing a standard is hard, because there is no singular group that gets to decide on any sort of universal standard, and it's only getting harder with the introduction of new modloaders like NeoForged, Fabric, etc.

Version elitism and this whole discussion has been going on for years, so maybe the only solution is to simply let go. Leave everyone to their fun, enjoy the game, be thankful for the mods that exist and don't bother anyone with why this mod should be for that version or why someone should play that version of Minecraft instead.

Maybe something will change, but it's definitely not going to if we continue arguing over "the best Minecraft version".

I hope I could give you some insight into how and why people argue over this, to be able to understand them and maybe to be the bigger person to not get into this discussion anymore.

Cheers!
~Martin