Mojang has NIH syndrome

2021/06/12 1:52 PM (UTC -5) | tildearrow

yep. instead of adopting community standards, Mojang prefers to reinvent the wheel and push a totally different thing.
maybe for copyright or governance reasons, but still...

an example is the Bukkit/Spigot/Paper (hereby referred as BSP) API.
it was created because the official server software proved to be too inflexible, and even modding is difficult.
it got immediate adoption. everybody picked up the bus and rolled in. thousands of plugins made and thousands of happy owners no longer dealing with the burden of decompilation and modding.
however, Mojang announced a new scripting API for Bedrock Edition (the one that is on consoles, mobile and Windows 10) that has nothing to do with the BSP API! not only that, but also it is way inferior:

another example of this NIH syndrome is de-obfuscation.
there is MCP, and then there's BuildTools.
but then Mojang comes and announces the official obfuscation maplings for Minecraft. something that has nothing to do with the community made ones.
sure, it comes closer to the official code, but still...

yet another example is multi-world.
Minecraft didn't have true multi-world support in the past, relying on the assumption that "the world is one" and that there only are 3 "dimensions" (overworld, nether and end).
when BSP arrived, the concept of a dimension was taken to the next level by turning dimensions into worlds.
now you could have multiple worlds, multiple nethers... yep.
but then Mojang comes and instead of adopting the multi-world scheme from BSP they decide to create a completely incompatible scheme: multi-dimension. yes, again with this dimension bullcrap (not to mention the naming inconsistencies... the game calls these dimensions, the save file is called "world" and the server calls it "level"... like why level?!).
thankfully BSP decided to add a compatibility layer and so its multi-world scheme integrates with Mojang's, but still.

aaand another example is shaders.
people have been using the so-called Shaders Mod in the past, until it merged with OptiFine.
things didn't change too much and they were mostly compatible.
you get the benefits of OptiFine while enjoying the visuals of a shader pack.
...but then, Mojang added shader support to resource packs (output only in 1.16, and full pipeline in 1.17). and guess what, yes. it is completely incompatible with OptiFine shader packs.
why not just adopt OptiFine as part of your game?! everybody uses it because they know your stock renderer is a slow single-threaded mess! this only leads to duplication of effort, and now imagine the headache the OptiFine developer is going through with this new shader support...

aaaaaaaand yet another example is permissions.
BSP has an elaborate permission system since its inception that grants owners the ability to deny features to players.
guess what? Mojang added a dumbed-down, restricted trash in op-permission-level.

and that's not it. let's talk about monitoring.
for a long time BSP had Timings which displayed an elaborate detail of timings.
then Mojang freaking adds enable-jmx-monitoring in 1.16. why. WHY?!?!.
edit: in 1.17 there is /perf as well.

and i am not done yet. let's talk about spawn protection.
again, BSP had WorldGuard for fine-grained protection of a world.
then Mojang adds spawn-protection in 1.4 for no reason.

it's as if the community did not exist to Mojang.
come on...