How do you find the code? Is that world class code? Is it well structured? Is it efficient? Are all standards met?
I personally think the code is super structured and as a hacked client writer, I get along very well with it. But I want to hear what the professionals think of it.
The Minecraft Code is more of a minor disaster. In many places, fundamental principles of object orientation are violated and the structuring is not exactly sensible. In general, many things were solved in a very strange and awkward way.
Efficiency can't really be said, the rendering techniques, for example, were outdated at the beginning of the game and have not been improved to date. A new rendering engine was promised a while ago, but it's just a new packaging for the old engine. In many places, unnecessarily many short-lived objects are created. The JVM can handle this comparatively well, but it still significantly affects the speed.
Is MC then OS, or are there only deobfused by any reversers?
So far I have always avoided MC, but if you could call an official repo at GitHub & Co, I would like to take a look at it.
You should do it from scratch, but that would do work, it doesn't work after all, they are not paid for it at all or something
I've never looked at the code myself, but I've seen a little analysis somewhere where it was said that it was a disaster.
As far as I know there's only de-defused code. Unfortunately, only find code from OS hacked clients, but there's always the question of which part is Vanilla and which is not.
Microsoft wants to kill the Java Edition anyway, so you earn too little money (for MS claims). With the Bedrock Edition you can cash in for Mods, Resource Packs, Maps, etc.
So far I have not tried modding the client side.
From the server side perspective: Creepy!
No real multithreading (the whole game logic runs in the same main thread)
Hopper, redstone and other block updates consume a lot of power unnecessarily. It would also have been better if they would run on a separate thread, so that the redstone e.g. But the rest of the server runs slower, but remains idle. Even if you increase the number of ticks between two processing of these things a little: With 100 players it doesn't work anymore.
Item frames and armorstands as entities are not the best decision (they don't really move, use a lot more resources than blocks, and players love them)
Obfuscation makes updates unnecessarily difficult.
Some things are hard-coded or otherwise "carved in stone" by stupid structure.
Various bugs open the door to hackers and crashers.
The processing of cards and heads leaves a lot to be desired (both very popular with players and therefore available in large numbers)
The Bukkit API, which tries to offer a uniform interface across several versions, creates a rather large overhead.
There's hardly any way to create your own blocks and items without modifying the client.
before 1.13: There's a lot of skimping on variable sizes everywhere and extensions to the blocks and entities have been squeezed into places where there was still space due to shortages. The character lengths of the scoreboard, the number of different cards etc. Are also very limited. But use UUIDs for all sorts of things, which, with 4 ints, clap the piece in and destroy the savings again. This was fatal to the MC developers themselves, which is why it was improved a little from 1.13 ("the flattening").
You have to do a lot of plug-in programming to fix the vulnerabilities.
I've never seen the code before, but still find it nice xD
Where can you find the code?
So I used MCP to look at the code. But it takes a few hours. You will not find it online as it is illegal to publish the code because it is not open source. That leaves only decompiling with MCP.
What that?
Minecraft Coder Pack. A tool to decode the Minecraft code and code a hacked client.
Interesting answer but I have to contradict the Armorstands, they are moved very often