Meanwhile, we saw a test of model definition files in the latest snapshot. I'm not sure what more proof you really need that the Plugin* API is being worked on than that.
Model definition files currently allow static models based only on block ID and metadata. They do not replace the old system, and in fact are implemented on top of it (block.getRenderType() == 43). The format cannot describe blocks that change shape based on their neighbors, such as glass panes, minecart rails, flowing water, and others. Nor is it likely that it could reasonably be enhanced to do so.
So the old system (1) will probably stay around indefinitely, (2) will need to be exposed by any putative API unless you want to needlessly restrict the kinds of blocks modders can add, and (3) is effectively the same as what modders have been comfortably using anyway. All of which makes the new system merely an additional convenience, not a requirement.
If this is the kind of thing Mojang believes is required for an initial API, then it just confirms my suspicions. At this rate, we will never have anything tangible because in any large codebase you can always find something like this to do. The Minecraft team really needs someone at the helm to put their foot down and say good enough. But what they have is a bunch of programmers running in circles trying to one-up each other with theoretical wankery that does no one any good if nothing ever comes of it.
*Plugin not Mod. This difference does matter.
A pedantic distinction without a difference. Skyrim has mods. Doom has mods. Terraria has mods. The word is standard regardless of whether or not any base code is modified. Tell you what. When Mojang actually releases something real, they can argue for overturning 20+ years of precedent.
Moving model data into an external file is a stepping stone along the path to creating a generic factory class that builds blocks dynamically from data files. Another step on the path would be creating some kind of block definition file that ties the model data to the texture file and defines some basic block properties.
As for models that change their shape, that's a fairly trivial thing to solve. You just use more than one 'static' model to make up the block. Fences for example have two parts, the post and the connection between them. All you would need to define a new fence model would be to define the two parts and then set some sort of "ConnectToSolidBlocks" flag. (Basically re-use the fence code but make it generic and able to work on any block that has that flag set.)
For stuff like chests or mobs that have animations, you just add a pivot point and some rotation vector info into your model file to tell the system how to animate it. Basically you make a set of key frames telling it where the model parts should be at various spots in the time line and the game handles smoothly moving the model during the animation. All fairly standard and fairly simple for a game with such basic models as MC. (Don't need to really worry about IK or bones or skin deformation or any of that.)
The difference between Mod and Plugin is only pedantic if you don't understand what the distinction between them actually is. Saying a Mod is the same as a Plugin is like saying it's the same thing to swap the game pad on your SNES with a light gun as it is to open the case with a screwdriver and have at with a soldering iron. Both will change the behavior of your console so they must be the same thing right? In both cases you are altering the hardware so it has to be the same right?
The point is that doing a Mod API is very different from doing a Plugin API in terms of what they have to do to the code to support it. Part of the reason it's taking so long is that MC wasn't designed to do this when Notch wrote it years ago. By the time they are done, I wouldn't be surprised if almost all of his original code is gone from the code base.
Rollback Post to RevisionRollBack
Tis far better to be a witty fool than a foolish wit.
The difference between Mod and Plugin is only pedantic if you don't understand what the distinction between them actually is. Saying a Mod is the same as a Plugin is like saying it's the same thing to swap the game pad on your SNES with a light gun as it is to open the case with a screwdriver and have at with a soldering iron. Both will change the behavior of your console so they must be the same thing right? In both cases you are altering the hardware so it has to be the same right?
I don't think anyone is suggesting that there is NOT a difference between the two. Yes, there's obviously a distinct technical difference, as you just explained.
The point is, for purposes of basic discussion, the differences don't really matter. And correcting someone who uses the wrong term, when they aren't even remotely commenting on anything that hinges on the actual difference between the two, is about as petty and annoying as your typical forum "grammar nazi" commenting on someone using the word "effect" when they should have used "affect".
The point is that doing a Mod API is very different from doing a Plugin API in terms of what they have to do to the code to support it. Part of the reason it's taking so long is that MC wasn't designed to do this when Notch wrote it years ago. By the time they are done, I wouldn't be surprised if almost all of his original code is gone from the code base.
And again, the problem is not so much that "it's harder to do than we think." It doesn't matter (to this discussion) whether they are making a "Mod API" or a "Plugin API" or a "Spatula API"... It's that there's been minimal to no obvious effort by the devs to demonstrate to us that they are actively working on things in a way that specifically progresses us to actually having any API. Yes, they say that they are doing things that "are necessary" for the API, but that doesn't explicitly mean we are any closer to actually getting one.
Moving model data into an external file is a stepping stone along the path to creating a generic factory class that builds blocks dynamically from data files.
... big snip ...
This is exactly what I meant by theoretical wankery. You start with blocks represented by a single model. Then you're assembling blocks from multiple sub-models using a few cherry-picked conditions. Then you expand the system to include tile entities and even animations. I suppose once you've done all that, hey, why not expand it to mobs too? And in 2018 we'll still be waiting for a way to add a simple cube to the game without deobfuscating and patching Mojang's code.
Not only is your hypothetical system vastly more work than "abstract public boolean render(Block block, Vec3i position);", it isn't even all that flexible. Suppose I want to connect to only a subset of "solid" blocks for instance? More generally, someone will always come up with something not representable by a few flags. You know, there's already a " target="" data-ensure-absolute>perfectly good way to express complex conditionals and arithmetic in a few lines of text.
Saying a Mod is the same as a Plugin is like saying it's the same thing to swap the game pad on your SNES with a light gun as it is to open the case with a screwdriver and have at with a soldering iron.
Again, don't argue with me. Go tell all the Skyrim players that they haven't actually been using mods this whole time.
This is exactly what I meant by theoretical wankery.
Off topic, but "theoretical wankery" is probably my favorite term that I've seen used in this whole discussion. I +1'd your other post because of it, and I'd +1 this one too, but I'm out of +1s for the day.
Again, don't argue with me. Go tell all the Skyrim players that they haven't actually been using mods this whole time.
Lol, I find this part amusing. First off, you tell him not to argue with you when you are taking part in a discussion about the topic he is arguing about you on, as if you and you alone are the singular authority on the matter, and the conceitedness is just dripping through my screen. Then you further the ignorance of this part of a post by committing an Argumentum ad populum fallacy. Well, I guess if you don't want people arguing with you, that is one quick way to make people disregard everything you say and stop arguing with you.
Rollback Post to RevisionRollBack
The problem with the truth, is that it never lies.
Factory classes are not some abstract theoretical wankery, the are a well defined and extremely common design pattern. (Mind you I suppose that one could argue over the actual practicality of design patterns in general for solving real world problems but that kind of argument would be theoretical wankery.)
Also fine, whatever use your meaning for the word mod. Language is living after all. I don't really care what word you use as long as you understand the difference between the types. A current MC mod is different from a skyrim mod. A skyrim style mod is what Mojang is working towards. (Data stored in a mod file that's loaded by the main game engine as opposed to directly inserting code into the main game engine.)
TLDR: Skyrim uses a very different style of mod system than what current MC modders use. Mojang wants to put a Skyrim style mod system in place. Things like the model files in the resource packs are proof that a Skyrim style mod system is being worked towards. It's a long process though as it requires a fairly substantial re-write of the game's internal bits.
Rollback Post to RevisionRollBack
Tis far better to be a witty fool than a foolish wit.
The difference between Mod and Plugin is only pedantic if you don't understand what the distinction between them actually is [...] The point is that doing a Mod API is very different from doing a Plugin API in terms of what they have to do to the code to support it.
You just don't seem to understand what people are trying to tell you. Let me try myself:
A Plugin API is what Skyrim players have. A Plugin API is what Terraria players have. A Plugin API is what [your modable game here] players have. Some companies call it Construction Set (e.g. Morrowind), other companies call it World Editor (e.g. Warcraft III), other companies call it Toolset (e.g.Neverwinter Nights), other companies call it a different name per game. And one company calls it a Plugin API. But people everywhere call it mods being done by modders on a mod api.
Unless we are discussing the Plugin API in a context where a clear distinction between Mod and Plugin must be made for a complete understanding of what is being said, insisting that we should say the word Plugin is about as pedantic as you can get. Won't score you any points at a party and your friends may actually not invite you to another.
Things like the model files in the resource packs are proof that a Skyrim style mod system is being worked towards. It's a long process though as it requires a fairly substantial re-write of the game's internal bits.
Those and other things exist for a long time. They are proof that there is a desire to develop a moddable game. Which no one here ever disagreed. They are proof that some steps were taken over the years that direction. Which no one ever disagreed either. They are not proof there is actual work being done. Actual palpable work. You are essentially telling me that because I put up some models of 3D tanks for my strategy game, that is proof I'm working on my strategy game. What you don't know is that I have yet to write a single line of code for that game.
I don't know if you ever developed a mod api. But there is a whole lot more to show about it than models in a folder. And please don't tell us again they say they are changing the code to pave the way for the Plugin API. That's what they have been saying for 4 years! 4 years. That's what they have been saying since alpha, when the code was way much different than it is today. So, what the hell? You redid almost the whole game in these 4 years and you still didn't write the code you need for a Plugin API, despite saying all that time you were writing the code for a Plugin API?... I think that argument, you know, just doesn't work anymore.
I don't know if you ever developed a mod api. But there is a whole lot more to show about it than models in a folder. And please don't tell us again they say they are changing the code to pave the way for the Plugin API. That's what they have been saying for 4 years! 4 years. That's what they have been saying since alpha, when the code was way much different than it is today. So, what the hell? You redid almost the whole game in these 4 years and you still didn't write the code you need for a Plugin API, despite saying all that time you were writing the code for a Plugin API?... I think that argument, you know, just doesn't work anymore.
Would it matter if I told you I did? You don't seem to want to listen to anything else anyone here says. (Point of fact: I actually HAVE written APIs. I've been programming for longer than some of the people here have been alive and I've done a little of everything and a lot of some things.)
Maybe I haven't been clear enough, model data files exist and are being used by the game. Prior to this point all model data was defined programatically within the class files. This is a real observable change in the code. This is the sort of change one would make if one was in fact working to implement an API. This isn't something they have said this is something they have done.
Kinda getting tired of repeating myself though so you know what? You are right, the API is not coming, it will NEVER come but they will make so many changes to the code while pretending to work on it that the real mod community will just give up. The game that you clearly love will then die as players leave in droves to go play EQ Next which is being developed by a real game studio. Ultimately you will be here... bitter and alone, making one last post begging them to please actually work on something when Curse shuts the forms down for good due to lack of activity. Your last post will hang there as a lone desperate depressing tombstone on the great game that was Minecraft.
(Hmm... I may have laid it on a bit thick there. I always get a bit off in the afternoon when the morning coffee wears off.)
Rollback Post to RevisionRollBack
Tis far better to be a witty fool than a foolish wit.
Yes. I think you overdid it. But that's the least important.
Maybe I haven't been clear enough, model data files exist and are being used by the game. Prior to this point all model data was defined programatically within the class files. This is a real observable change in the code. This is the sort of change one would make if one was in fact working to implement an API. This isn't something they have said this is something they have done.
What I would really like to understand is your argument. Please explain how you link this to actual work in the Plugin API. And before you reply (because you too seem guilty of not reading), explain your reasoning in the context of many other similar changes in the game for the past years that still didn't result to this date on a workable Plugin API. Also, in your reply take in mind that you are taking also to a 44 year old software engineer (we seem to share a similar background, so throw all the technical jargon you carry. I can take it). So, help me understand your argument, because for the life of me, I can't even start to comprehend how any of the recent changes to the game can constitute any sort of proof in light of Mojang past history on this matter. Many other so-called proofs have come and gone in the past 4 years. What makes this one so special?
Would it matter if I told you I did? You don't seem to want to listen to anything else anyone here says. (Point of fact: I actually HAVE written APIs. I've been programming for longer than some of the people here have been alive and I've done a little of everything and a lot of some things.)
There are plenty of old tymers hanging around this website. I bet I could match your tenure in programming myself by a fair bit, and it is likely I've written software for operating system families that were discontinued well before some people posting here were born too. That doesn't matter. I have learned long ago to not post anything outrageous like challenging somebody if they've done something or not as there is a remote possibility that they have.
Maybe I haven't been clear enough, model data files exist and are being used by the game. Prior to this point all model data was defined programatically within the class files. This is a real observable change in the code. This is the sort of change one would make if one was in fact working to implement an API. This isn't something they have said this is something they have done.
None of this was actually necessary for an API though. It certainly is useful, and anybody who has dug through the Minecraft code base (likely with MCP, but I've done it with just pure decompilers myself as well) knows that Notch wasn't always the most careful developer and sort of threw stuff into the codebase simply to try some crazy idea. Much of what Mojang is doing right now is for their own benefit and not so much for the API, and that benefit is to streamline possible additions to the game and clean up some of the class hierarchy as well and culling some of the fluff and obfuscated code that came from the previous haphazard development.
The changes being made aren't for the benefit of the API necessarily, and the API can also be done without any single one of the changes that have been made. Using this as an argument to "prove" that the API is under development is a false argument. The further argument you make here by simply giving in (falsely I might add based on the tone of that paragraph) is just simply tasteless and doesn't need any further response.
I would offer this as proof though that the API is indeed not being worked on at the moment:
The API suggestion Reddit (where most of the Mojang staff seems to hang out at instead of this forum) is completely dead. The last post was over eight months ago and every previous one there was over a year ago. Sure, the topic comes up elsewhere from time to time, but it is mostly like this thread.... people complaining that it hasn't been developed.
The official API section of the bug tracker software, the formal method that Mojang previously requested for mod developers to be involved with the API development, is similarly dead. There is certainly more recent activity there, but it is a very insignificant fraction compared to earlier when there was active development of the API going on and no feedback at all from Mojang developers about any suggestions (I do need to publicly thank Grum for his support in that venue earlier though). I currently have my doubts that any of the suggestions made on that section of the bug tracker will ever even be looked at again, much less be used to create a future API.
There was also a GitHub repository that supposedly was the beginnings of the formal API with some Java interfaces that could be used as hooks into the official API. This was worked on by both Dinnerbone and Jeb for a brief period of time.... and now even that is dead with no additional commits having been added for nearly two years at this point.
While I've seen some talk, I don't see anything to indicate that there is any actual activity going on with an API.... in spite of earlier attempts to engage with the community and really trying to get something going with the API development. I am glad that those earlier attempts at engagement did happen, and some good ideas came from those efforts, but some real follow through needs to happen. Perhaps something new will happen in the future, but in the meantime I'm sort of moving on to other projects as well.
It also is unfortunate as I think Mojang is missing a golden opportunity. They could wait four or five years to release the API, but I think the time for them to act and use the API as a means to extend the life of Minecraft as a game is passing. If they take their sweet time and don't bother releasing the official API, other games and other platforms will take the mindshare of people who are developing content expansions for games. Once those developers move on (and many have already) Mojang won't get them back. I think the clock is ticking against Mojang at the moment, even if they don't realize it.
Well, with the 14w7a snapshot release we at least hear that it hasn't been completely forgotten:
We’ve still been working hard on rewriting internal stuff (such as how blocks are rendered, or how the entire inventory system works) in preparation for the Plugin API. Meanwhile, have another smaller snapshot with a bunch of bug fixes and some more adventure map related stuffs!
by Dinnerbone (February 14, 20014)
So, yes, it is still being actively worked on... we just aren't hearing much about it. I think my only real complaint is that we aren't getting regular updates about the work being done on it, something that makes it easy for rumors, assumptions, and complaints to arise.
Honestly, I'm not sure that doing things "in preparation for the Plugin API" counts as it being "actively worked on."
"Preparing" for the Plugin API is not the same as "writing the Plugin API." They've been doing things "in preparation" for the API for a LONG time. At what point do you stop "preparing" to do something, and actually DO it?
If I told my boss that I was "preparing" to write the code for a new feature, for the last 4 years, I'm pretty sure he'd have fired me by now.
Honestly, I'm not sure that doing things "in preparation for the Plugin API" counts as it being "actively worked on."
"Preparing" for the Plugin API is not the same as "writing the Plugin API." They've been doing things "in preparation" for the API for a LONG time. At what point do you stop "preparing" to do something, and actually DO it?
If I told my boss that I was "preparing" to write the code for a new feature, for the last 4 years, I'm pretty sure he'd have fired me by now.
It is the same. It is exactly the same. They didn't say they are preparing to write it, they said they are preparing for it. Have you been paying close attention to the progress Mojang has made? There are things that can be done in vanilla with commands now that used to would have required a mod.
If that isn't amazing visible progress towards the API in your eyes, then maybe you should consider playing a different game.
It is the same. It is exactly the same. They didn't say they are preparing to write it, they said they are preparing for it. Have you been paying close attention to the progress Mojang has made? There are things that can be done in vanilla with commands now that used to would have required a mod.
If that isn't amazing visible progress towards the API in your eyes, then maybe you should consider playing a different game.
Your avatar sums your post up perfectly.
I can't possibly believe that anybody takes seriously the concept that the command blocks are the API. While "some" things that may have been done previously with mods can be done with command blocks and perhaps even "commands", it isn't the same thing and a lousy substitute if you want to say with a straight face that it is the API.
I'm not saying that command blocks are worthless as they do some interesting things and add an interesting element into the game for a particular subset of the Minecraft gameplayer audience. My complaint is that assuming commands and command blocks can substitute for mods dismisses some of the very interesting things that have been added with mods over the years in Minecraft and showing contempt for the modding community as a whole.
And quit that ad hominem attack by saying "if you don't like this game, get out of here". Frankly, I think posts like that should even be removed from the forums, but I'm not in charge of moderation policy here. Comments like this are not helpful and in fact show a distinctive arrogance and unwillingness to actually engage in the conversation. The reason the post you were responding to was made earlier is hoping that perhaps somebody might be paying attention and be willing to acknowledge that something needs to change. Besides, your wish might just be granted with such contempt and leave these forums in the mud hole that they are for you to become a legend in your own mind.
I can't possibly believe that anybody takes seriously the concept that the command blocks are the API. While "some" things that may have been done previously with mods can be done with command blocks and perhaps even "commands", it isn't the same thing and a lousy substitute if you want to say with a straight face that it is the API.
I'm not saying that command blocks are worthless as they do some interesting things and add an interesting element into the game for a particular subset of the Minecraft gameplayer audience. My complaint is that assuming commands and command blocks can substitute for mods dismisses some of the very interesting things that have been added with mods over the years in Minecraft and showing contempt for the modding community as a whole.
And quit that ad hominem attack by saying "if you don't like this game, get out of here". Frankly, I think posts like that should even be removed from the forums, but I'm not in charge of moderation policy here. Comments like this are not helpful and in fact show a distinctive arrogance and unwillingness to actually engage in the conversation. The reason the post you were responding to was made earlier is hoping that perhaps somebody might be paying attention and be willing to acknowledge that something needs to change. Besides, your wish might just be granted with such contempt and leave these forums in the mud hole that they are for you to become a legend in your own mind.
I never said this IS the API, I said it is evidence that the API obviously is a work in progress.
Yes, I made the suggestion that if a player chooses to complain about an aspect, and that aspect proves to be opposite from that person's view of the aspect, then that person should understand that the aspect is in actuality opposite of what they imagine it to be, and in the case that they do not, perhaps then they are exploring the wrong game avenue for entertainment.
It is not in any way an Ad Homonim attack. You should do your research before making such a statement. Besides, your use of a Strawman is not the way to get your point across.
----With the way things are going, the fact that they are making the API will be the death of the game. Everything will get laggier, more complex and there will be strange bugs all over the place. If they can fix most of the problems in 1.8 before it comes out, then I would be impressed.
I never said this IS the API, I said it is evidence that the API obviously is a work in progress.
It's been a "work in progress" for four years now. Entire AAA games with their own mod toolkits have been developed in less time. How long are modders expected to wait before just giving up and moving on? No doubt many already have. On top of the waiting, there's the frustration of Mojang's constant rewriting of Minecraft internals. This breaks the mods that exist and are working today, which would be worth it if something would ever come of it, but there's no indication that it ever will.
As King Korihor pointed out, all of the official channels Mojang started to discuss the API with the community are dead. It's 2014 and we have yet to see the beginnings of a spec, a class diagram, a plugin file format -- or ANYTHING that modders can even start thinking about how to code to. With nothing to go on, modders are left simply to guess what Mojang will change next, which even Mojang doesn't seem to know until they do it evidently.
With the way things are going, the fact that they are making the API will be the death of the game. Everything will get laggier, more complex and there will be strange bugs all over the place.
Tell me about it. The game still suffers from glaring bugs introduced by the SSP/SMP merge, which was also done largely for the sake of the API, a year and a half ago. And remember when Mojang was going to make Optifine obsolete (check the date)? Mojang's tendency to start big projects only to drop them half-finished when they cease to be fun does not bode well for the API even if it is released.
The thing what they working on now:
-moving every resource out from the engine, so they can be replaced/edited/expanded more easily
-the new commands seem to point in this direction, they may be the anchor points for the background script
What would be nice is if Mojang would build an API first, then implement command blocks using only the API, no use of Minecraft internals at all. Command blocks are complex enough to serve as an ideal baseline test of the API's robustness, without being completely unrealistic like turning all of vanilla Minecraft into a plugin. As it is though, the command block is purely a one-off that distracts from API development more than it helps.
Model definition files currently allow static models based only on block ID and metadata. They do not replace the old system, and in fact are implemented on top of it (block.getRenderType() == 43). The format cannot describe blocks that change shape based on their neighbors, such as glass panes, minecart rails, flowing water, and others. Nor is it likely that it could reasonably be enhanced to do so.
So the old system (1) will probably stay around indefinitely, (2) will need to be exposed by any putative API unless you want to needlessly restrict the kinds of blocks modders can add, and (3) is effectively the same as what modders have been comfortably using anyway. All of which makes the new system merely an additional convenience, not a requirement.
If this is the kind of thing Mojang believes is required for an initial API, then it just confirms my suspicions. At this rate, we will never have anything tangible because in any large codebase you can always find something like this to do. The Minecraft team really needs someone at the helm to put their foot down and say good enough. But what they have is a bunch of programmers running in circles trying to one-up each other with theoretical wankery that does no one any good if nothing ever comes of it.
A pedantic distinction without a difference. Skyrim has mods. Doom has mods. Terraria has mods. The word is standard regardless of whether or not any base code is modified. Tell you what. When Mojang actually releases something real, they can argue for overturning 20+ years of precedent.
Moving model data into an external file is a stepping stone along the path to creating a generic factory class that builds blocks dynamically from data files. Another step on the path would be creating some kind of block definition file that ties the model data to the texture file and defines some basic block properties.
As for models that change their shape, that's a fairly trivial thing to solve. You just use more than one 'static' model to make up the block. Fences for example have two parts, the post and the connection between them. All you would need to define a new fence model would be to define the two parts and then set some sort of "ConnectToSolidBlocks" flag. (Basically re-use the fence code but make it generic and able to work on any block that has that flag set.)
For stuff like chests or mobs that have animations, you just add a pivot point and some rotation vector info into your model file to tell the system how to animate it. Basically you make a set of key frames telling it where the model parts should be at various spots in the time line and the game handles smoothly moving the model during the animation. All fairly standard and fairly simple for a game with such basic models as MC. (Don't need to really worry about IK or bones or skin deformation or any of that.)
The difference between Mod and Plugin is only pedantic if you don't understand what the distinction between them actually is. Saying a Mod is the same as a Plugin is like saying it's the same thing to swap the game pad on your SNES with a light gun as it is to open the case with a screwdriver and have at with a soldering iron. Both will change the behavior of your console so they must be the same thing right? In both cases you are altering the hardware so it has to be the same right?
The point is that doing a Mod API is very different from doing a Plugin API in terms of what they have to do to the code to support it. Part of the reason it's taking so long is that MC wasn't designed to do this when Notch wrote it years ago. By the time they are done, I wouldn't be surprised if almost all of his original code is gone from the code base.
I don't think anyone is suggesting that there is NOT a difference between the two. Yes, there's obviously a distinct technical difference, as you just explained.
The point is, for purposes of basic discussion, the differences don't really matter. And correcting someone who uses the wrong term, when they aren't even remotely commenting on anything that hinges on the actual difference between the two, is about as petty and annoying as your typical forum "grammar nazi" commenting on someone using the word "effect" when they should have used "affect".
And again, the problem is not so much that "it's harder to do than we think." It doesn't matter (to this discussion) whether they are making a "Mod API" or a "Plugin API" or a "Spatula API"... It's that there's been minimal to no obvious effort by the devs to demonstrate to us that they are actively working on things in a way that specifically progresses us to actually having any API. Yes, they say that they are doing things that "are necessary" for the API, but that doesn't explicitly mean we are any closer to actually getting one.
This is exactly what I meant by theoretical wankery. You start with blocks represented by a single model. Then you're assembling blocks from multiple sub-models using a few cherry-picked conditions. Then you expand the system to include tile entities and even animations. I suppose once you've done all that, hey, why not expand it to mobs too? And in 2018 we'll still be waiting for a way to add a simple cube to the game without deobfuscating and patching Mojang's code.
Not only is your hypothetical system vastly more work than "abstract public boolean render(Block block, Vec3i position);", it isn't even all that flexible. Suppose I want to connect to only a subset of "solid" blocks for instance? More generally, someone will always come up with something not representable by a few flags. You know, there's already a " target="" data-ensure-absolute>perfectly good way to express complex conditionals and arithmetic in a few lines of text.
Again, don't argue with me. Go tell all the Skyrim players that they haven't actually been using mods this whole time.
Lol, I find this part amusing. First off, you tell him not to argue with you when you are taking part in a discussion about the topic he is arguing about you on, as if you and you alone are the singular authority on the matter, and the conceitedness is just dripping through my screen. Then you further the ignorance of this part of a post by committing an Argumentum ad populum fallacy. Well, I guess if you don't want people arguing with you, that is one quick way to make people disregard everything you say and stop arguing with you.
Also fine, whatever use your meaning for the word mod. Language is living after all. I don't really care what word you use as long as you understand the difference between the types. A current MC mod is different from a skyrim mod. A skyrim style mod is what Mojang is working towards. (Data stored in a mod file that's loaded by the main game engine as opposed to directly inserting code into the main game engine.)
TLDR: Skyrim uses a very different style of mod system than what current MC modders use. Mojang wants to put a Skyrim style mod system in place. Things like the model files in the resource packs are proof that a Skyrim style mod system is being worked towards. It's a long process though as it requires a fairly substantial re-write of the game's internal bits.
You just don't seem to understand what people are trying to tell you. Let me try myself:
A Plugin API is what Skyrim players have. A Plugin API is what Terraria players have. A Plugin API is what [your modable game here] players have. Some companies call it Construction Set (e.g. Morrowind), other companies call it World Editor (e.g. Warcraft III), other companies call it Toolset (e.g.Neverwinter Nights), other companies call it a different name per game. And one company calls it a Plugin API. But people everywhere call it mods being done by modders on a mod api.
Unless we are discussing the Plugin API in a context where a clear distinction between Mod and Plugin must be made for a complete understanding of what is being said, insisting that we should say the word Plugin is about as pedantic as you can get. Won't score you any points at a party and your friends may actually not invite you to another.
Is this still not clear to you?
Those and other things exist for a long time. They are proof that there is a desire to develop a moddable game. Which no one here ever disagreed. They are proof that some steps were taken over the years that direction. Which no one ever disagreed either. They are not proof there is actual work being done. Actual palpable work. You are essentially telling me that because I put up some models of 3D tanks for my strategy game, that is proof I'm working on my strategy game. What you don't know is that I have yet to write a single line of code for that game.
I don't know if you ever developed a mod api. But there is a whole lot more to show about it than models in a folder. And please don't tell us again they say they are changing the code to pave the way for the Plugin API. That's what they have been saying for 4 years! 4 years. That's what they have been saying since alpha, when the code was way much different than it is today. So, what the hell? You redid almost the whole game in these 4 years and you still didn't write the code you need for a Plugin API, despite saying all that time you were writing the code for a Plugin API?... I think that argument, you know, just doesn't work anymore.
Maybe I haven't been clear enough, model data files exist and are being used by the game. Prior to this point all model data was defined programatically within the class files. This is a real observable change in the code. This is the sort of change one would make if one was in fact working to implement an API. This isn't something they have said this is something they have done.
Kinda getting tired of repeating myself though so you know what? You are right, the API is not coming, it will NEVER come but they will make so many changes to the code while pretending to work on it that the real mod community will just give up. The game that you clearly love will then die as players leave in droves to go play EQ Next which is being developed by a real game studio. Ultimately you will be here... bitter and alone, making one last post begging them to please actually work on something when Curse shuts the forms down for good due to lack of activity. Your last post will hang there as a lone desperate depressing tombstone on the great game that was Minecraft.
(Hmm... I may have laid it on a bit thick there. I always get a bit off in the afternoon when the morning coffee wears off.)
What I would really like to understand is your argument. Please explain how you link this to actual work in the Plugin API. And before you reply (because you too seem guilty of not reading), explain your reasoning in the context of many other similar changes in the game for the past years that still didn't result to this date on a workable Plugin API. Also, in your reply take in mind that you are taking also to a 44 year old software engineer (we seem to share a similar background, so throw all the technical jargon you carry. I can take it). So, help me understand your argument, because for the life of me, I can't even start to comprehend how any of the recent changes to the game can constitute any sort of proof in light of Mojang past history on this matter. Many other so-called proofs have come and gone in the past 4 years. What makes this one so special?
There are plenty of old tymers hanging around this website. I bet I could match your tenure in programming myself by a fair bit, and it is likely I've written software for operating system families that were discontinued well before some people posting here were born too. That doesn't matter. I have learned long ago to not post anything outrageous like challenging somebody if they've done something or not as there is a remote possibility that they have.
None of this was actually necessary for an API though. It certainly is useful, and anybody who has dug through the Minecraft code base (likely with MCP, but I've done it with just pure decompilers myself as well) knows that Notch wasn't always the most careful developer and sort of threw stuff into the codebase simply to try some crazy idea. Much of what Mojang is doing right now is for their own benefit and not so much for the API, and that benefit is to streamline possible additions to the game and clean up some of the class hierarchy as well and culling some of the fluff and obfuscated code that came from the previous haphazard development.
The changes being made aren't for the benefit of the API necessarily, and the API can also be done without any single one of the changes that have been made. Using this as an argument to "prove" that the API is under development is a false argument. The further argument you make here by simply giving in (falsely I might add based on the tone of that paragraph) is just simply tasteless and doesn't need any further response.
I would offer this as proof though that the API is indeed not being worked on at the moment:
The API suggestion Reddit (where most of the Mojang staff seems to hang out at instead of this forum) is completely dead. The last post was over eight months ago and every previous one there was over a year ago. Sure, the topic comes up elsewhere from time to time, but it is mostly like this thread.... people complaining that it hasn't been developed.
The official API section of the bug tracker software, the formal method that Mojang previously requested for mod developers to be involved with the API development, is similarly dead. There is certainly more recent activity there, but it is a very insignificant fraction compared to earlier when there was active development of the API going on and no feedback at all from Mojang developers about any suggestions (I do need to publicly thank Grum for his support in that venue earlier though). I currently have my doubts that any of the suggestions made on that section of the bug tracker will ever even be looked at again, much less be used to create a future API.
There was also a GitHub repository that supposedly was the beginnings of the formal API with some Java interfaces that could be used as hooks into the official API. This was worked on by both Dinnerbone and Jeb for a brief period of time.... and now even that is dead with no additional commits having been added for nearly two years at this point.
While I've seen some talk, I don't see anything to indicate that there is any actual activity going on with an API.... in spite of earlier attempts to engage with the community and really trying to get something going with the API development. I am glad that those earlier attempts at engagement did happen, and some good ideas came from those efforts, but some real follow through needs to happen. Perhaps something new will happen in the future, but in the meantime I'm sort of moving on to other projects as well.
It also is unfortunate as I think Mojang is missing a golden opportunity. They could wait four or five years to release the API, but I think the time for them to act and use the API as a means to extend the life of Minecraft as a game is passing. If they take their sweet time and don't bother releasing the official API, other games and other platforms will take the mindshare of people who are developing content expansions for games. Once those developers move on (and many have already) Mojang won't get them back. I think the clock is ticking against Mojang at the moment, even if they don't realize it.
Version 2.1 now updated for MC 1.6.2
So, yes, it is still being actively worked on... we just aren't hearing much about it. I think my only real complaint is that we aren't getting regular updates about the work being done on it, something that makes it easy for rumors, assumptions, and complaints to arise.
Honestly, I'm not sure that doing things "in preparation for the Plugin API" counts as it being "actively worked on."
"Preparing" for the Plugin API is not the same as "writing the Plugin API." They've been doing things "in preparation" for the API for a LONG time. At what point do you stop "preparing" to do something, and actually DO it?
If I told my boss that I was "preparing" to write the code for a new feature, for the last 4 years, I'm pretty sure he'd have fired me by now.
It is the same. It is exactly the same. They didn't say they are preparing to write it, they said they are preparing for it. Have you been paying close attention to the progress Mojang has made? There are things that can be done in vanilla with commands now that used to would have required a mod.
If that isn't amazing visible progress towards the API in your eyes, then maybe you should consider playing a different game.
Your avatar sums your post up perfectly.
...but that's just like, my opinion, man.
I can't possibly believe that anybody takes seriously the concept that the command blocks are the API. While "some" things that may have been done previously with mods can be done with command blocks and perhaps even "commands", it isn't the same thing and a lousy substitute if you want to say with a straight face that it is the API.
I'm not saying that command blocks are worthless as they do some interesting things and add an interesting element into the game for a particular subset of the Minecraft gameplayer audience. My complaint is that assuming commands and command blocks can substitute for mods dismisses some of the very interesting things that have been added with mods over the years in Minecraft and showing contempt for the modding community as a whole.
And quit that ad hominem attack by saying "if you don't like this game, get out of here". Frankly, I think posts like that should even be removed from the forums, but I'm not in charge of moderation policy here. Comments like this are not helpful and in fact show a distinctive arrogance and unwillingness to actually engage in the conversation. The reason the post you were responding to was made earlier is hoping that perhaps somebody might be paying attention and be willing to acknowledge that something needs to change. Besides, your wish might just be granted with such contempt and leave these forums in the mud hole that they are for you to become a legend in your own mind.
Version 2.1 now updated for MC 1.6.2
I never said this IS the API, I said it is evidence that the API obviously is a work in progress.
Yes, I made the suggestion that if a player chooses to complain about an aspect, and that aspect proves to be opposite from that person's view of the aspect, then that person should understand that the aspect is in actuality opposite of what they imagine it to be, and in the case that they do not, perhaps then they are exploring the wrong game avenue for entertainment.
It is not in any way an Ad Homonim attack. You should do your research before making such a statement. Besides, your use of a Strawman is not the way to get your point across.
...but that's just like, my opinion, man.
It's been a "work in progress" for four years now. Entire AAA games with their own mod toolkits have been developed in less time. How long are modders expected to wait before just giving up and moving on? No doubt many already have. On top of the waiting, there's the frustration of Mojang's constant rewriting of Minecraft internals. This breaks the mods that exist and are working today, which would be worth it if something would ever come of it, but there's no indication that it ever will.
As King Korihor pointed out, all of the official channels Mojang started to discuss the API with the community are dead. It's 2014 and we have yet to see the beginnings of a spec, a class diagram, a plugin file format -- or ANYTHING that modders can even start thinking about how to code to. With nothing to go on, modders are left simply to guess what Mojang will change next, which even Mojang doesn't seem to know until they do it evidently.
Tell me about it. The game still suffers from glaring bugs introduced by the SSP/SMP merge, which was also done largely for the sake of the API, a year and a half ago. And remember when Mojang was going to make Optifine obsolete (check the date)? Mojang's tendency to start big projects only to drop them half-finished when they cease to be fun does not bode well for the API even if it is released.
What would be nice is if Mojang would build an API first, then implement command blocks using only the API, no use of Minecraft internals at all. Command blocks are complex enough to serve as an ideal baseline test of the API's robustness, without being completely unrealistic like turning all of vanilla Minecraft into a plugin. As it is though, the command block is purely a one-off that distracts from API development more than it helps.