4 ms·
I remember, back before Mojang was acquired by Microsoft the devs mentioned working on a modding API, and how it would allow for all kinds of things. I have a
by robotnikman 4y ago
I remember, back before Mojang was acquired by Microsoft the devs mentioned working on a modding API, and how it would allow for all kinds of things.
I have a feeling such plans were killed off during the acquisition, as it has never been mentioned since then. Even now it would be simple for the devs to allow players to add new blocks and items via server sent resource packs without needed a modded client, and yet for some reason they do not.
I still have to thanks Bukkit/Spigot for getting me in to Java in the first place tough, and thus my current position as a Java dev. I don't follow it as often but I still maintain a small server my friends play on.
- gjsman-1000 4y agoThere's a lot of drama there. Basically, there was Bukkit. In 2011, Mojang hired a bunch of Bukkit's developers, but didn't tell anyone that they also legally took control of the Bukkit project. This was because Mojang didn't really want Bukkit to be their official API as much as being a temporary API for the time being (and also didn't want to have anyone assume they would be responsible for it), but from that point, Bukkit was legally their project and the community didn't know. Then, Mojang changed their EULA to ban Pay-to-win servers. This caused a lot of controversy, and one of the Bukkit developers left. Mojang then revealed that, yeah, they owned Bukkit for years, so they didn't need him. Another developer, feeling betrayed, who had contributed to Bukkit, submitted a DMCA takedown against his own code bringing Bukkit down with it, angry at having done "free labor." (You might say, "but the GPL!," but being tricked into a contract under false pretenses can legally invalidate contracts, making the GPL-license for his contributions potentially invalid.) Mojang panicked at the takedown and a ton of developers abandoned ship, working on Bukkit's community fork Spigot. Mojang then 2.5 months later brought Bukkit back and that time really just threw it into the community's hands. The result of the aftermath was everyone had restructured around Spigot, based on Bukkit; and Mojang wasn't going to deal with APIs and open-source stuff for a long while afterwards. (They did later try purchasing parts of OptiFine, but the developer wanted compatibility to be all-or-nothing which Mojang wouldn't accept.) https://www.reddit.com/r/Minecraft/comments/6g1tqn/psa_no_bukkit_isnt_dead_and_it_basically_never_was/ https://www.reddit.com/r/Minecraft/comments/6g1tqn/psa_no_bu... https://blog.jwf.io/2020/04/open-source-minecraft-bukkit-gpl/ https://blog.jwf.io/2020/04/open-source-minecraft-bukkit-gpl... https://www.reddit.com/r/Minecraft/comments/2fk5nn/my_response_to_vubui_mojang_and_the_hundreds_yes/ https://www.reddit.com/r/Minecraft/comments/2fk5nn/my_respon...
- DefineOutside 4y agoThe DMCA was since Bukkit is an API while CraftBukkit is an implementation of Bukkit. Bukkit is GPL meaning you can't make a combined work with proprietary software - such as Minecraft, which is what CraftBukkit is.
- yreg 4y agoThere is a 9 year old song that was making fun of the modding API taking seemingly forever back then already. https://www.youtube.com/watch?v=G-zthYFjk6s https://www.youtube.com/watch?v=G-zthYFjk6s
- nightpool 4y agoActually, this is absolutely possible today using data packs. They're the successor to the modding API project and they provide a very simple declarative JSON-based syntax for adding new blocks, items, customizing world gen, adding new commands, advancements, and even custom entity behavior (using the flexible tag-based entity data system).
- robotnikman 4y agoDid a quick google search, it still does not seem to be possible to add using the namespace system they implemented in 1.13 (supposedly for such a reason) and datapacks. Currently, it looks like 'custom blocks' involve using a hacky method involving invisible armor stands and item frames holding items modeled as a block. Which means they count and behave as entities instead of true blocks, and this can be an issue since too many entities will lag a server. Data packs and resource packs certainly seem very promising as a modding API, but it still seems the devs are artificially restricting their usage.
- nightpool 4y agoAh, that's fair, I knew lots of datapacks used custom entities but didn't realize that custom blocks were entirely impossible. I agree it seems like a strange limitation. I guess the biggest issue is that while custom blocks are easy to make, custom block behaviors are much more complicated to implement outside of code compared to custom entity behaviors, which are much more customizable as a tradeoff for being much less performant.
- rezonant 4y agoIt didn't die, it evolved. Mojang began taking cues from the modding communities, improving the internal APIs, making the overall codebase more generalized and robust, moving model data to declarative JSON, adding registry systems instead of hard coding, introducing additional resources namespaces by default, resource packs, data packs, simpler creation of custom blocks, biomes, and most recently opening up Mojang's own class and method name mappings so that the insane process of mapping obfuscated Java class and method names can be stopped, allowing mod frameworks like Forge et al to have consistent API making and to reduce the previously huge amount of time needed for mods to get ported to new versions. The biggest problem with the "mod API" is that, effectively, you'll need to open source Minecraft entirely to satisfy the kinds of changes mods make to the vanilla experience, or else everyone will keep using the patch systems we are building on now. It is discouraged unless absolutely needed, but mods can even apply bytecode level runtime patches on the vanilla classpath to enable functionality that the mod framework hasn't yet exposed.
- rezonant 4y agoAs an addendum, other games get away with a "designed" modding API because the alternative is too difficult, as most games are built in C/C++ which is nowhere near as malleable and discoverable as the Java runtime. It's also why mods for Bedrock (the C++ implementation of Minecraft) is barely a thing.
- actionfromafar 4y agoIsn't it also that Bedrock is typically a Windows Store App, which are very very locked down?
- j5155 4y agoThis exists, it’s how the much more popular Bedrock edition’s addons work.