[split] Discussing Mojang/Bukkit relationship

Discussion in 'Bukkit Discussion' started by mpmumau, Nov 26, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    mpmumau

    <Mod Edit - Split discussion from: http://forums.bukkit.org/threads/split-on-lack-of-communication-and-people-defending-the-way-things-are.198320/>

    In regards to those who keep rehashing the point that the Bukkit team has to deobfuscate Bukkit's code: all that point does is beg another question. Why does that have to be the case in the first place? Garris0n I do, now, vaguely recall having read something official from the team explaining the legal difficulties with working with the direct source as well, at some point in the past. Regardless, I'm pretty sure lawyers *could* make it happen if Notch would simply accept the reality at this point that he *already* has the modding API he's looking for...in Bukkit!

    As far as my understanding goes, deobfuscating the original server code and recompiling it into a new server is most likely already a legal grey area, and what is probably the case is that there is sort of a tacit arrangement between Bukkit and Mojang where Mojang simply allows Bukkit (and other projects) to do what they do regardless of the full legal ramifications. But at this point, if Mojang is going to allow people to do all that, why on Earth wouldn't they at this point simply make the original source to the server fully open source, since minus the obfuscation itself, it already *is* de facto open source software by virtue of what they allow people to do with it. If people are allowed to deobfuscate the code and do what they want with it, then all the obfusciation is is an unnecessary annoyance. Or, if that is a bridge too far, why can't they simply come up with some simple arrangement between Bukkit and Mojang exclusively (and don't give me the "it wouldn't be fair to other projects" crap -- who cares! Life isn't fair: Bukkit is obviously the only project of major significance to Mojang, and there's no rule that says that Mojang *has* to be fair to every project, particularly if they're going to continue to claim rights to their own server code).

    Re: those who just don't like that us "big server owners are whining" the reality of the situation is that the top few hundred Minecraft servers handle the bulk of all multiplayer traffic. Obviously we're doing *something* right if the players keep coming back, and as such clearly we're providing players with something they want that they otherwise wouldn't have (large, open communities, varities in gameplay, stability and permanence, to name a few). Therefore, whether you don't like it or whether you do, one would *think* our voices could be heard on these matters, and that we could be kept "in the loop" more than we are! I believe that handling the responsibility of providing service to 100s of thousands of players and all that goes with that entitles us to at least a little advanced information, beyond treating us like we're common players who can't handle and don't understand technical details.
     
    mkremins and Pr4w like this.
  2. Offline

    Bobcat00

    Notch talked a little about this during his interview at Minecon 2013 (available online). Basically, he said that making clones of the game is fine, because that's how people learn and how they invent new games. But if a game said it was authorized by Mojang or was actually called Minecraft, that's when the legal department would step in to protect their product.
     
  3. Offline

    mpmumau


    Even if that's the case, I don't understand why Mojang can't have a special, proprietary relationship with Bukkit if both parties so choose. I mean, to act as if there isn't already a special relationship between the two projects is to ignore the elephant in the room. It's like one of those goofy romantic comedies..."Will they, or won't they!"

    I can see why Notch would be afraid of letting too many worms out of the can, but at this point the nature of the entire situation has matured to the point at which it would only make sense, and be a positive thing, for literally all involved parties. Notch could put his developers on other stupid card game projects as he's wont to do, Bukkit could simplify their process by several orders of magnitude, server ops would get their updates much more quickly and hence stop "whining" and players would benefit from all of the above (except the card games).

    The only thing I could see needing to happen to make this a reality is for Bukkit devs to sign NDAs, which is actually quite standard in the development world, and wouldn't really change anything in the least, considering by knowing the magic trick required to deobfuscate all that code (amazing Sudoku skills basically?) they *already* essentially have access to the source.
     
  4. I am pretty sure that Mojang will pull through their API, thy will also keep obfuscation going, because they have to protect their property somehow. They might release the source code after "sales ran out" some time in the future, as stated similarly by Notch. Writing the API from scratch also means that they can make it much more efficient than the current technique of Bukkit, and probably can design it to be more efficient, having the unobfuscated source - in addition Mojang might plan into a different direction with the API than Bukkit did.
     
  5. Offline

    mpmumau


    But none of this would make sense. First of all, there hasn't been one "efficient" line of code that Mojang has written, ever, so if you're hoping for that...hold out two hands, let one fill with BS and the other fulfilled wishes, and see which one fills up first. Second, business wise it's just throwing money down the toilet, since it's already been done in the form of Bukkit for years, and a *new* API translates into more man hours for devs, which translates into unnecessary expense! On a technical level, all a "Mojang" modding/server API would be is a reinvention of the wheel, which is often a technical strategy that's best taken at the *beginning* of a project, not a million lines of code in. And as for the chaos it would cause in the community when (likely) only 33% of existing mods work within said API, I can't imagine it would be a good thing to so dramatically alter the whole ecosystem of Minecraft several years in. If Mojang does decide to do all the of above, regardless, then it's just brazen pride and stupidity that's driving their decision making process, and I am 100% positive it will not play out well in the long run.

    Or, here's an alternative: Make some phones calls, form a partnership with a team that has already had extremely advanced experience with an already-existing, working API, maintain the status quo that has kept Minecraft alive thus far, and be done with all of it in a matter of minutes! If I were in Notch's shoes and I had those two options in front of me, it wouldn't take me very long to decide.
     
  6. I don't second your objections there (though i sympathize a good range of your positions written before, just in general). Mojang can not build on Bukkit simply for legal reasons (open source + circular reference :p...), but also writing a new API does allows to do some things more efficiently, not stating that they do so. Apart from licensing it still is peculiar to take in code from a (wildly?) grown project from outside, while you have the possibility to design new and refactor the original (which i think is happening right now). The Minecraft API might even allow Bukkit to become more efficient and stay an extension on the Minecraft API, but all that is speculation for now. Also do you remember that a couple of people that were in the Bukkit lead team are still working for Mojang? I'd say that is somewhere near "optimal" - much of the Bukkit-API makes things available that "are in" Minecraft code anyway, so i don't see the benefit from using the exact code, however profiting from the experience of the Bukkit project seems very reasonable to me.
     
  7. Offline

    TnT

  8. Offline

    mpmumau


    Regarding the legal implications, I'm not lawyer, but if some lawyers and negotiators can come up with a way to convince Iran to stop developing nukes, then I'm pretty sure a few bright ones could put their heads together and find a way to make a more formal Bukkit/Mojang partnership work legally if the parties involved wanted to badly enough.

    I do recall the announcements of Dinnerbone and some of the original other Bukkit guys going to Mojang. In fact here's the exact blog post Mojang made at that time:

    https://mojang.com/2012/02/minecraft-team-strengthened/

    I do find this quote particularly amusing:

    Considering server admins have just as many problems today, if not more problems, than they did before the transition, I don't have high hopes for what they may or may not accomplish. In fact, Jeb and the other Mojang guys have barely ever talked about the API other than to say that it's probably going to happen within the range of years to come. I hope you'll forgive me when I say I'm not holding my breath.

    I guess I am being a little facetious when I say that Mojang isn't likely to do something more efficient than Bukkit (miracles can happen). The disruption to the entire plugin and server op universe, I would have to imagine, would however almost be reason enough to not even attempt such a thing. The only way to ensure that all the existing, popular plugins continued to function would be to basically duplicate the Bukkit API as it exists now, in which case: what's the point?

    If Mojang expects all the currently existing plugin developers to just drop everything they've done and adopt all the functionality of a *new* API, then they're dreaming. I would imagine some long-standing plugin developers would simply give up; the entire thing would go to shambles, and a lot of people would lose the will to start over from scratch.

    Cutting to the chase, I do think Mojang *is* stupid enough to think their new API will somehow be a good thing, and that's what the whole thing behind their whole "server hosting" pipe dream is all about. They're looking back in time and thinking "What if we had done things differently from the beginning..." Problem with that is that it ain't gonna happen. If all of us who have been such a big part of Mojang's success are forced to completely reconfigure everything we've ever done, a lot of us are just going to say "Forget it" and move on to greener pastures. As it is now, I've already started working on a new game project in anticipation of all this happening, because in the event that all of this comes to pass, I'm just out entirely.
     
  9. Offline

    xianthax

    I think some of what you're missing is that Bukkit, at least to my knowledge, is not a legal entity of any kind. For any legal agreement to take place, it would have to become one, which puts various forms of personal liability on the table for whomever ends up owning that entity, most notably CB is already breaking the law with the distribution of modified Mojang source, that's been fine since Mojang has said, "it's ok", but Mojang could reverse that at any time and if there were a legal entity behind Bukkit with owner's names on the line...that's a problem.

    Additionally licensing is not as simple as you would make it out to be, it's very complex and changes are hard.

    Bukkit already has a bit of a mess on it's hand in my opinion anyway. The Bukkit API is GPLv3, which means all programs (plugins) linking against it must be licensed in a GPL compatible way, but they aren't. This means copyright holders (99 contributors based on the github repo) to the Bukkit API could call out a GPL violation on any non-GPL plugin at any time. To make the issue more convoluted Craftbukkit is LGPL...since it also not only links to the Bukkit API, but also distributes it, Craftbukkit is actually breaking the license of Bukkit, basically their own license. The whole thing is rather comical and could be a rather large impediment to any legally binding agreement.

    So why not fix it? Well, if you want to change to license you'd need to get agreement from every single copyright holder, in the case of bukkit this is 99 people and 123 people for craftbukkit (based on github contribs, could be wrong). Any single 'no' vote would prevent a license change unless someone went in and rewrote their contribution thus removing their copyright from the work.
     
  10. Offline

    mpmumau

    Well, haha, again, I am not a lawyer. But I still think there would be a way through this mess. For the sake of fun, I'll try to play armchair lawyer, lol.

    Firstly, regarding Bukkit's liability, I would think if they formed some sort of corporation (i.e. an LLC or something like that) that would absolve all of the individual members from personal liability, instead putting it on the corporation itself. As then for the legal relationship between Mojang and the newly created Bukkit Inc., Mojang could simply trade an NDA for an agreement with it to not pursue any legal recourse for the team's past law breaking.

    I am not an expert on GPL licenses, but I would think if the entire original Bukkit/Craftbukkit project was itself originally licensed under an illegal pretense, then that would nullify the licenses to begin with. If that isn't the case, the conflict between the two licenses might also nullify them.

    In the event that Bukkit would have to get the approval of all 99 source contributors to alter the license, then I guess the issue would just be...getting the approval of the 99 source contributors :) Might not be easy (what is in this world), but I would say that the benefits of all of this would outweigh the work of sending out 99 emails and maybe making a few follow up calls to negotiate with whomever has a problem with it. If there really is an impasse where that's impossible, then you already suggested the solution...just rewrite what they wrote and cut them out of the project, whatever that takes.

    As for the ability for the original GPL contributors pursuing Bukkit plugin developers who didn't comply with the extension of the GPL license to their work, well...have it out with them, I guess, but who's going to really benefit from that? Doesn't seem like anyone would even have motivation to do so...Kind of small potatoes kind of stuff.

    Other than convicting OJ, lawyers seem to have a way of making anything work if all of the parties are in agreement on an issue. Mojang could certainly afford good ones, and I would think the cost of hiring some good lawyers to solve a licensing issue would be far less than hiring a small team of developers for a few years to work on an API that has already been written... (that said, lawyers *are* extremely expensive...so...maybe I am wrong on that point).
     
  11. I suspect that "law" is about the last thing that has anything to do with nukes - "game mechanics" probably would describe it better.

    Apart from the licensing question, it just does not seem appealing to me to merge the Bukkit code into the Minecraft code - besides they already hired Bukkit developers to develop the API, building on the experience of developing such an API. I also doubt that trying to merge will be better/faster.

    Things are moving now, and apart from the refactorings affecting the progress of Bukkit, i can't see how more disruption should come from a Minecraft API, since Bukkit will very likely stay the more complete API for quite some time. How could one complain about Mojang code quality and at the same time complain about Mojang changing a lot of things in order to improve the code quality (refactoring). Regarding that Minecraft started as a small thing without the (official) plan for a x-men company, this kind of refactoring is essential to keep going, especially with modding in mind. Bukkit is building on a pre-build and obfuscated server, though one could try to merge it, i am sure that using the experience from Bukkit is better than using the code directly.

    There was times when (some) people thought they ought to write code such that it is reusable and believed that they actually would some day - while the first holds true in practice for a part, the whole just does not apply on the medium to long term, usually the experience is used for follow up projects and not the exact code (of course there are other cases like libraries, engines).
     
  12. Offline

    Mike1022

    Now I'm wondering why EvilSeph left Mojang. When he was at Mojang, he had access to the Minecraft source code, making it easier and faster to update Bukkit.
     
  13. Offline

    mpmumau


    Personally, if the decisions were up to me, I wouldn't actually *merge* Minecraft and Bukkit (neither in terms of code or businesses). I'd leave everything just as it is, with the exception of finally working out whatever legal difficulties are involved, and with the addition of an agreement between Mojang and Bukkit to share source. I agree that *merging* would be probably a more tedious and time-consuming process than the way things currently are. But I can't imagine if Mojang simply worked in a supporting role to Bukkit that THAT would be *more* difficult than writing a server/API from scratch.
     
  14. Offline

    matagin

    I'll tell you exactly what will happen.

    The Modding API will move forward albeit slowly. It WILL happen. Dinnerbone has been re-writing and re-factoring major parts of the code to prepare it for the API. Granted he's focused on just the Vanilla client/server but you know he has Bukkit and the API in the back of his mind. Look at all the legal and other issues that you mentioned. Those issues are why the API has to be done from scratch. They are growing their development team also. They just hired Searge from MCP. The Modding API is coming. We just don't know when.

    Once the official Modding API is out in a snapshot, it will begin to gain traction and developers will start to adopt it and Bukkit will eventually fade away. The reason being because with the official API, server owners, modders, and plugin developers will no longer need to wait for de-obfuscation. It will just make sense to switch to the official API. This type of "out with the old, in with the new" process happens every where. Look at ModLoader. It's being replaced by Forge Mod Loader (FML). I see more and more mods being developed for Forge. hMod/Bukkit went through the same process. There are countless plugins that have had the same thing happen. It's just natural progression.

    So we will continue to have to live with the current process of de-obfuscation with every release. I am so thankful to the awesome Bukkit team of volunteers that devote so much time to this. I know it can be very exhausting at times. Just be patient. The official API will happen, it will be awesome, and we will look back and say "wow! things are so much better now with the official API".

    I know it's extremely frustrating for a server owner who wants to maintain his server's player base which is also in some cases his paying customers. You don't want to lose those customers to other servers. Your server is probably your side job to make some extra money or even your full time job. Once the official API is done, you will have a much smoother transition to the latest release. Until then, have a backup plan to satisfy those customers.
     
  15. Offline

    Dovakhan

    I thought that the official API was only oriented with mods in mind. And AFAIK, Bukkit is an entire server software, not a mod...or am I wrong?

    And wouldn't any possible optimizations over the vanilla server that Bukkit has be lost if Bukkit simply dissapeared?
     
  16. Offline

    LEOcab

    Bukkit is a mod. You may be confused because most other mods have to be installed on top of the vanilla client/server, but since you don't need to install anything on top of Bukkit, they release it with the official server and everything.
     
Thread Status:
Not open for further replies.

Share This Page