Mojang has finally decided how they’re going to handle user-made mods for Minecraft. In short, they’re going to release the full body of source code to the community, which can then do as it pleases. However, developers won’t be allowed to profit from their work in any way and Mojang reserves the right to implement good ideas a “real” features.
It seems a bit risky to me to release the source code instead of an API. Then again, Notch has already made tens of millions of dollars on the game and this will give people with the know-how to do it the ability to fix many of the bugs that remain in the game.





It’s bullshit. Judging by what he’s said on twitter, Notch doesn’t understand what a good modding/scripting API would consist of. So instead of taking the time to make a decent API, he’s just going to make Minecraft ‘open source but not really’.
The only benefit this offers is saving time developing mods, nothing else. All the current issues will remain. Incompatibility, malicious mods, total lack of organisation in the way the code is edited.
People are just going to take the code, make the entire game better/how it should be, then release it as free to play. Once it’s out there, it won’t be stoppable. Maybe we’ll get some of the features that were promised 6 months ago (The Nether in SMP).
Oh and to top it all off, Jeb is temporarily not working on Minecraft any more. Which means pistons are being ‘delayed’. Notch also mentioned that he didn’t feel they were ‘fantasy’ enough. But computers and powered transportation systems are.
Ugh. Yeah, what a mess. I was hoping that there would be some way to support a true mod API so that different mods can play nice, even if they have to be rewritten.
Then again, that could be incredibly difficult. Thinking about the mods, how do you set it up so that all the different animal, creature, tool, block, etc mods can interact with each other if you have multiple mods installed?
A brilliant example of an excellent API is Garry’s Mod. (A sandbox mod for HL2).
In answer to your question: polymorphism. In the case of animals, all animals are derived from a base animal class. This base class has all the required values and methods like health/name/etc. All animals are their own class and are derived from this base animal class. So in the code, all animals are handled as the base ‘Animal’ class. Any derived class like Pig or Sheep would inherit the values + methods from the base class, and build upon them/override them as required. The same would be done for any new animal that a mod would create.
Durp, that was meant to be a reply.