132
Witchcraft | A Minecraft server written in bash
(git.sakamoto.pl)
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Community icon from opensource.org, but we are not affiliated with them.
How much work is making a Minecraft server from scratch? What things need to be implemented? I saw on the GitHub that placing and destroying blocks was implemented, so I’m guessing it’s a lot of work
One of the most common Minecraft server implementations called Paper MC consists of 321k lines of code (mostly Java and a little bit of Kotlin).
To my knowledge Paper, Spigot etc are 'just' patching the official server decompiled source.
See here https://github.com/PaperMC/mache
Its somewhat intriguing to me. I always thought companies would obfuscate their code so that nobody can just reverse engineer their product. Does mojang not do it or is it not possible to keep people from decompiling it?
One of the things about Java is that it is stupidly easy to decompile back into java source code.
Obfuscation can make it harder to do but not impossible. There are also performance and licensing implications too.
What it would REALLY hinder is mod development, which is where a huge amount of it's diehard fanbase is, not to mention advertising via let's plays comes from. There's only so much material you can make out of simply building blocks, and the mod scene helps keep Minecraft relevant in Let's Plays and streaming.
The mod scene has been incredibly instrumental in keeping Minecraft as a whole relevant. Most footage and screenshots you tend to see today usually has a mod applied that you can see in the footage. Ever seen Minecraft with realistic lighting? That's a mod. Seen those weird survival challenges? Also done by mods.
If that dies off, Minecraft's word of mouth and relevancy dies with it. And from that, so do the console versions.
Thats a very cool and elaborate explanation! Thank you!
Mojang/Microsoft actually releases obfuscation maps for Minecraft: Java since 2019. This maps the decompiled random class names to the official variable/class names used by Mojang devs.
https://www.minecraft.net/en-us/article/minecraft-snapshot-19w36a
As others have said, Java is pretty easy to decompile, so there were community maintained obfuscation maps before (huge amount of work).
Great addition! Thanks. So they did actually help with modding but only eventually it seems.
In the end it is always assembler. Enough time given and you can translate it to higher languages. A huge modding community and a lot of tooling for the Java language made it possible i guess.
There was a lot of work here. I doubt there were any symbols present in the binary.
Very cool! Thanks for elaborating. Took me only a decade plus to learn this fact. ;)
The entire repo takes 165kb, so it's not nothing, but also not exactly an afternoon project.