Josh @ Dreamland
|
|
Reply #15 Posted on: January 22, 2014, 09:55:03 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
I would rather any holes be on the users' side. We can always grant new rights; we can never take rights away. And including a clause that says, "we reserve the right to retroactively cancel this exception" would not bode well. So the idea is, fortify the hell out of the exception, then grant additional rights as they become required. I wouldn't worry about (4). The GPL grants users the ability to use code internally however they like. As long as GPL code never leaves your machine, you can use it in proprietary applications to your heart's content. I trust this idea applies to corporate entities, too. You can modify GPL code in any way you like, as long as you're doing so on your own machine; it only becomes a problem for you once you try distributing it. So as long as their engine obeys the other terms, when they link the game for stand-alone release, it will be fine. Your concern for (5), however, is definitely legitimate. What was meant when that was written was clear, I hope, but you are definitely right; the phrase [snip]intended for linking into other software applications[/snip] is saying too much, as Android itself is still "another software application." I will have to re-phrase that, or get a lawyer's help in doing so. I will give it some thought over the next day or so; I don't want to jump the gun on it. But like I said, all we need to fix a concern on a user's part is consent from the contributors to tweak the license. All we need to fix a concern on the project's part is an act of God. So I'm tending toward not giving users all necessary clearance. I'm glad to have someone who is defending from the users' perspective, because I find it harder to put myself in that position.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Josh @ Dreamland
|
|
Reply #16 Posted on: February 24, 2014, 07:46:47 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
"Bump." My idea for (5): 5. The combined work is not itself a binary library intended for linking into other software applications, except where this linking is done by the operating system as its primary method of loading all software applications. In such a case, this exception does not apply and may not be preserved: all code is to be considered GPL.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Rezolyze
|
|
Reply #17 Posted on: February 26, 2014, 01:17:49 pm |
|
|
Joined: Jun 2013
Posts: 53
|
I'm also against adding a custom exception to the GPL. Using an existing license that's been reviewed and adopted by others is the safest bet. If a loophole is found and exploited in a custom exception, you're on your own to close it and do any damage control. If a loophole is found in a widely used existing license, every other organization that uses that license has a vested interest in what happens next. Having a custom license or a custom exception to a license can leave you out in the cold if the worst should happen. Luckily, there are plenty of licenses out there to choose from ( http://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses) and many are used to protect software in the way you want to protect ENIGMA. After some googling, I think you should consider the Mozilla Public License version 2.0 http://www.mozilla.org/MPL/2.0/ Here's the MPL 2.0 FAQ: http://www.mozilla.org/MPL/2.0/FAQ.htmlHere's a few highlights from the FAQ: Q1: What is the Mozilla Public License?
The MPL is a simple copyleft license. The MPL's "file-level" copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions.
Q2: Why yet another open source license?
The MPL fills a useful space in the spectrum of free and open source software licenses, sitting between the Apache license, which does not require modifications to be shared, and the GNU family of licenses, which requires modifications to be shared under a much broader set of circumstances than the MPL.
Q8: I want to distribute (outside my organization) executable programs or libraries that I have compiled from someone else's unchanged MPL-licensed source code, either standalone or part of a larger work. What do I have to do?
You must inform the recipients where they can get the source for the MPLed code in the executable program or library you are distributing (i.e., you must comply with Section 3.2). You may distribute any executables you create under a license of your choosing, as long as that license does not interfere with the recipients' rights to the source under the terms of the MPL.
Q11: How 'viral' is the MPL? If I use MPL-licensed code in my proprietary application, will I have to give all the source code away?
No. The license requires that Modifications (as defined in Section 1.10 of the license) must be licensed under the MPL and made available to anyone to whom you distribute the Source Code. However, new files containing no MPL-licensed code are not Modifications, and therefore do not need to be distributed under the terms of the MPL, even if you create a Larger Work (as defined in Section 1.7) by using, compiling, or distributing the non-MPL files together with MPL-licensed files. This allows, for example, programs using MPL-licensed code to be statically linked to and distributed as part of a larger proprietary piece of software, which would not generally be possible under the terms of stronger copyleft licenses. I'm not very good at programming and I don't understand how all the pieces of the ENIGMA project fit together, but I believe that this license, or something similar, will meet all your needs. The GPL is widely considered a "viral" copyleft license which is not what you want for this project. I don't think modifying the GPL in any way is a good idea. There's just too much room for error. Even if you don't go with the MPL 2.0, please don't use any version of the GPL for code that will be distributed with a game developer's code. It's just not worth the potential problems in the future. (This is my first post on the forum. I thought it was time to stop lurking. Please keep it civil. I'm only interested in a polite and healthy debate.)
|
|
« Last Edit: February 27, 2014, 02:45:16 am by Rezolyze »
|
Logged
|
|
|
|
Rezolyze
|
|
Reply #18 Posted on: February 27, 2014, 01:36:47 pm |
|
|
Joined: Jun 2013
Posts: 53
|
Since no one else has replied to my post, I've decided to post more info on the subject. Here's a quote from Josh @ Dreamland, posted on another thread, explaining the situation: 1) ENIGMA is GPL software. 2) ENIGMA links your game against its engine. 3) The engine is also GPL. 4) Therefore, your game must be open source, GPL software as well. 5) Game Maker doesn't require this, so something must be done. 6) Two options to correct this: a. Use a less restrictive license, such as BSD b. Write an exception to the GPL. Obviously, my vote is for the MPL 2.0, a less restrictive license. My main reason for choosing this license is because it was designed to do most of what Josh is trying to accomplish with a custom GPL exception. Here's what I propose for the ENIGMA project: Parser: GPL 3.0 Engine: MPL 2.0 Compiler: GPL 3.0 Only the engine code that is distributed in executable form with the user's code should be licensed under the MPL 2.0. Since the MPL is compatible with the GPL, there's no need to change the licensing for any other code in the ENIGMA project except the engine. The MPL is still a copyleft license like the GPL. Any modifications to the engine would still have to be shared under the MPL. Since a user's code is only linked to the engine code, under the terms of the MPL, they can license it however they want or keep it closed source. This solves the problem from an ENIGMA user's perspective. From a ENIGMA developer's perspective, the MPL 2.0 solves most of their issues. Any changes made to the existing ENIGMA engine code must be shared under the MPL. The major concern seems to be: someone could take the engine code, add new features through separate, but linked files and release the work as a new engine. Under the MPL this would be perfectly legal as long as they shared any changes made to the existing engine code. This someone wouldn't be able to create a closed source ENIGMA clone, but they would retain the rights to any code they wrote that doesn't modify the existing engine code. This someone would have the same rights as an ENIGMA user under the MPL 2.0. While this concern is valid, I consider it unlikely to happen. You can point to examples like "Wine vs. Cedega" or "Mono vs. Unity," but those examples don't apply here. In the case of both Wine and Mono, their code was/is released under a license that allows their source code to remain closed. Neither the GPL nor the MPL will legally allow that to happen. Even if another organization adopted ENIGMA and added features to it, they'd have to release the source for any bug fixes or updates made to any of ENIGMA's code. No one could clone this project and make a better version without sharing their modifications under the MPL 2.0 or the GPL 3.0, respectively. I voiced my concerns about a custom GPL exception in the post above. I'd like to add that the GPL exception draft is too restrictive and specific. The ENIGMA engine code may be very different in just a few years from now. What if the wording in the exception needs to be changed? Will you still be able to contact all the code contributors and get their approval to update the license? This project needs a new license for the engine code that will last the life of the project. Who knows where this project will be in 5-10 years. What if it's abandoned and another organization would like to use and expand upon it? This exception clause would prevent that from happening. I urge you to consider a new license, like the MPL 2.0, instead. A new license may give up more control over the project than you're comfortable with, but it also ensures the legacy of the ENIGMA project. Please challenge, discuss or question anything I've said. I welcome a good debate.
|
|
« Last Edit: February 27, 2014, 01:38:51 pm by Rezolyze »
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #19 Posted on: February 27, 2014, 02:43:59 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
Wow, very nicely put, indeed, thinking ahead for the future and wanting something solid. Since I am not much into the technical stuff regarding all the jargon / licensing I am limited in capacity to reply or debate on that topic, however I could add this. The said "good faith" of people should be disregarded when dealing with such an important matter. It's like 2 parties not putting things on paper (contract) on the basis they are best friends and know each other. That would be bad business. Everything should be written and set in stone once and for all to avoid any holes or any problems in the future. You make a good point about user code linked to the engine, etc. If I as a user, decide to use this it's not to make open source games and apps Of course some of the stuff I want to produce is free but some I wish to eventually make commercial and make a few bucks It was mentioned that the current developers have good will and would not and have not done this and that, but we cannot rely on that, I think things need to be CLEAR and in WRITING, any legal written agreement is binding and protects all parties involved. As far as the developer worse comes to worse,a developer could have the option to simply remove said games and stop distribution if they refuse to comply. BUT again, that could be problematic for instant viral hits ! As far as your comment on YoYo, well they do have some requirements, mentioning of their "amazing" runner and IP holder. and probably all the rest that is used along with it right since FFMPEG and others are bundled too. They still use FFMPEG right ? Also you made great points about what will happen to ENIGMA 5 to 10 years from now and reaching out to developers to get their agreement. That is another issue and even better argument of why something needs to be done quick when it's still time and once and for all. I'd love to think that in 10 years from now ENIGMA will still exist, but one has to question if the personal computer will still exist as we know it, perhaps ENIGMA and all of that will be "legacy", much like the famous VIC-20, Commodore 64, AMIGA, ATARI, etc. Am I skeptic that ENIGMA will remain a free open source project in 10 years ? well, I am skeptic about lot of things, I think we are headed for a major shift / change so who knows. As far as YoYoGames, 5-10 years from now, they will probably be covered, as GameMaker will probably cost $4000, and they will have hundreds, maybe thousands of exports, will have dropped support for windows after their 600th function deprecation, etc. So yeah, that aside, let's assume that ENIGMA will pace with future technology and grow, I think we must have something solid to cover everyone's ass! I was not aware of all of this before, as I said, not too familiar with all the jargon and open source licensing stuff, and some people reading might also hold back on using ENIGMA for these reasons. If I decide to spend resources, time to build a UNIQUE original game with 100% made content be it sprites, sound, music, etc, I would certainly not want to have to publish the source code of my game for others to steal! Yet if I continued to use Game Maker Studio and buying new revisions I would be a hypocrite, supporting a company that clearly has major disregard towards windows developers, as nicely put by some people in the community! I mean a company that instead of fixing what needs to be fixed says "fuck it, let's remove said functions instead", sorry but why would a paid customer like myself support this I think I found a new name for their product. GameDeprecation Studio (no royalty fees required, use freely ! ), that should be the name of their next revision of game maker. Sorry, back on topic! So my faith and confidence is in ENIGMA right now, and thinking present, everyone needs to be covered and sure there will be a general agreement eventually. Once the time comes that the devs grow some white (or gray) hairs and cannot continue working on project, then hopefully others will pick up and should that happen, things will be already set in stone.
|
|
« Last Edit: February 27, 2014, 02:50:10 pm by Darkstar2 »
|
Logged
|
|
|
|
The 11th plague of Egypt
|
|
Reply #20 Posted on: February 27, 2014, 04:34:37 pm |
|
|
Joined: Dec 2009
Posts: 274
|
Obviously, my vote is for the MPL 2.0, a less restrictive license. My main reason for choosing this license is because it was designed to do most of what Josh is trying to accomplish with a custom GPL exception. Here's what I propose for the ENIGMA project:
Parser: GPL 3.0 Engine: MPL 2.0 Compiler: GPL 3.0
Agree on the MPL 2.0, though there is one catch. MPL compatibility with GPL only means this: - You can use MPL code inside a GPL project without any assle. It does _not_ mean you can use GPLed code in a MPL codebase unless - you own the full copyright of the GPL code - you take these extra steps Otherwise, you end up with having to relicense MPL code as GPL. And you are back with the same problem we have now. REMEMBER, GPL is viral. http://www.mozilla.org/MPL/2.0/FAQ.html#mpl-and-lgpl Q14: May I combine MPL-licensed code and (L)GPL-licensed code in the same executable program?
[...]
2. The Larger Work must be "a combination of Covered Software with a work governed by one or more Secondary Licenses." So you can't just say "I really prefer (L)GPL" - you must have a need to combine with another, existing GPL work. (This is different from a traditional dual-license, which does not require you to combine, and instead allows you to simply say "I've decided to be GPL-only.")
3. You must "additionally distribute" under (L)GPL. In other words, you must make the MPL-licensed source code available to your recipients under both MPL and (L)GPL.
|
|
|
Logged
|
|
|
|
Rezolyze
|
|
Reply #21 Posted on: February 27, 2014, 06:10:14 pm |
|
|
Joined: Jun 2013
Posts: 53
|
Thank you for your reply Darkstar2. I agree that adopting a new license for the engine code makes things more "solid." Using a well-known license should give ENIGMA users the confidence to make and sell the games they create. No one wants to risk making a game only to have their source code relicensed without their consent. As a "viral" copyleft license, the GPL was designed to "infect" other code used with GPL code. Creating a custom exception clause for the GPL might prevent that from happening, but it might not. Such a thing could only be tested in court. I'd rather trust my game code to a another, less restrictive, license that was designed to protect both developers and users. Just like with GameMaker, you have to tell the people, who download your compiled game, that it was made with ENIGMA. Under the GPL 3.0 or the MPL 2.0, you'd still have to direct them to ENIGMA's source code. That won't change, but I think it's good for this project. Awareness raises use and provides potential developers. I also don't want anyone to avoid using ENIGMA because of licensing issues. Reaching a consensus on what license to use is very important to the health and continuation of this project. Thank you for your reply The 11th plague of Egypt. I saw your reply as I was about to post my response to Darkstar2. Thanks for bringing this to my attention. All this legalese is starting to make my head spin. I'm better with hypotheticals than I am with legal jargon. Let's say the ENIGMA project was licensed the way I proposed with the Parser and Compiler being GPL 3.0 and the Engine being MPL 2.0. An ENIGMA user is creating a game and decides to compile it for distribution. When the user's code is passed to the Parser and translated to C/C++ code does the user retain the copyright for the translated code? Is the translated code now licensed under the GPL because the Parser is licensed under the GPL? Did the user create the translated code or was it the Parser? Was it a collaborative effort? I honestly don't know the answer to these questions. Assuming that the user does retain copyright and the user's code isn't "infected" by the GPL, their translated code is then statically linked to the Engine's code. According to the MPL 2.0, this translated code can be licensed or proprietary and still be compatible with the MPL. No problems there as long as the translated code isn't GPL or one of its cousins. The last step is passing this combined code to the Compiler. The Compiler compiles (obviously ) the code into executable form and adds the resources (sprites, sound, etc.) from the user's game source. Does the Compiler add any GPL code to the executable? This is another question I can't answer. Another problem could arise if the ENIGMA user wants to release their game source code under the GPL. This would conflict with the MPL if they distribute an executable that combines the MPL licensed Engine with the GPL licensed game code. Perhaps the answer to this problem is to keep the Parser and Compiler under the GPL 3.0 and dual license the Engine code under the GPL 3.0 and MPL 2.0. What about the opposite? Would there be a problem with licensing the entire project under the MPL 2.0 and dual licensing the Engine under the GPL 3.0 and MPL 2.0? The compilation steps I've listed come from guess work and answers I received on IRC. I can't vouch for their accuracy. Some of these questions can only be answered by someone who knows exactly how ENIGMA works. Please keep up the replies and let's get some developers to weigh in.
|
|
« Last Edit: February 27, 2014, 07:07:26 pm by Rezolyze »
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #22 Posted on: February 27, 2014, 07:14:57 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
Thank you for your reply Darkstar2. I agree that adopting a new license for the engine code makes things more "solid." Using a well-known license should give ENIGMA users the confidence to make and sell the games they create. No one wants to risk making a game only to have their source code relicensed without their consent.
To be honest, I like enigma but after this issue I feel less confident in using product, should I be concerned ? Should users STOP using enigma until things are final ? There is no way that I am ever going to release source codes of game or apps - How the hell am I supposed to eventually sell my products if source code is circulating and being used that from happening, but it might not. Such a thing could only be tested in court. I'd rather trust my game code to a another, less restrictive, license that was designed to protect both developers and users.
Just like with GameMaker, you have to tell the people, who download your compiled game, that it was made with ENIGMA. Under the GPL 3.0 or the MPL 2.0, you'd still have to direct them to ENIGMA's source code.
I don't mind at all telling people I *USED* enigma don't even mind crediting devs by name but what I am concerned about is source code of my game More so there are certain other issues when disclosing what you used. When you tell someone you MADE your game WITH something, most people will think "oh one of those newbie tools you make games in 10 clicks...... " I think game maker has earned a bad rep over the years because of the questionable quality of games made with it. Some people think "MADE WITH" means you click ready made sprites and rooms and stick them together and make a game as opposed to enigma being an ENGINE, and that you made your game from code (C++, GML) and all your resources are hand made, original, that you did not use any ready made stuff. Examples of that would be Game Maker 3D (few clicks to make a complete FPS) and FPS Creator to name a few, turn key game making where you can make games in minutes. I also don't want anyone to avoid using ENIGMA because of licensing issues.
Interesting you should mention this because I think this might be inevitable for anybody joining and reading who were not aware or don't know how licensing works, as in my case might be discouraged. So if anybody decides to sue me, only do so if my game makes enough money please.....LOL. say at least $500k lol. Reaching a consensus on what license to use is very important to the health and continuation of this project.
Maybe ENIGMA needs a pro bono attorney..... It's one thing to write text all over the place, but it has to be binding and legal in order to avoid another big issue, the ambiguity clause which can render an agreement useless ! Darkstar2. Thanks for bringing this to my attention. All this legalese is starting to make my head spin. I'm better with hypotheticals than I am with legal jargon.
Same here, I think I need 2 advils + 2 tylenols ! LOL. Let's say the ENIGMA project was licensed the way I proposed with the Parser and Compiler being GPL 3.0 and the Engine being MPL 2.0. An ENIGMA user is creating a game and decides to compile it for distribution. When the user's code is passed to the Parser and translated to C/C++ code does the user retain the copyright for the translated code? Is the translated code now licensed under the GPL because the Parser is licensed under the GPL? Did the user create the translated code or was it the Parser? Was it a collaborative effort? I honestly don't know the answer to these questions.
One thing for sure, your IP remains your IP. All the content of your game assuming you are the IP owner, sound, music, sprites, videos or any content used in your game. That raises another question, so assuming that you only partially sold your soul to the devil, and your code is no longer under your (c), then what ? Assuming that the user does retain copyright and the user's code isn't "infected" by the GPL, their translated code is then statically linked to the Engine's code. According to the MPL 2.0, this translated code can be licensed or proprietary and still be compatible with the MPL. No problems there as long as the translated code isn't GPL or one of its cousins.
looks like 2 tylenols + 2 advils won't be enough. The last step is passing this combined code to the Compiler. The Compiler compiles (obviously ) the code into executable form and adds the resources (sprites, sound, etc.) from the user's game source. Does the Compiler add any GPL code to the executable? This is another question I can't answer.
In a way, even if your game is compiled, it is way different than say, writing your own game from C++. You are relying on an engine... This engine saves you a hell of a lot of work, so in my opinion yes that engine is now part of your compiled game, an important part that drives everything.
|
|
|
Logged
|
|
|
|
Rezolyze
|
|
Reply #23 Posted on: February 27, 2014, 09:21:32 pm |
|
|
Joined: Jun 2013
Posts: 53
|
This is just personal opinion, but I wouldn't use ENIGMA for anything you plan to release commercially. Not yet, anyway. If you were to release your game today, you'd be required to release the source code to your game under the GPL 3.0. Also, ENIGMA isn't quite ready for serious game development. As of right now, it's a little too buggy and could use the implementation of a few more functions. All that being said, I think ENIGMA is a good choice if you can wait a while to release your game. I'm working on a game with ENIGMA right now. I'll be releasing it for free and probably open source under the GPL. That's fine for me and for this particular game, but most game developers don't feel that way. I can't say I blame them. To each his own. If you're using an engine as the foundation of your game, I think it's only fair that you mention that engine and link to it. No matter what the license says, that seems only right especially when using an engine that's free and open source. Some people will always think that making a game easy. You'll just have to let the quality of your game speak for itself. It is true that you'll retain the copyright for all the art, music, sound, etc. that you created. It's still your game even if you have to share the code. I really want to hear from Josh on this licensing subject. I'm hoping that what he said earlier in the thread "The compiler will always be GPL; it'd be silly to license it under anything else." is accurate. The more parts of ENIGMA that can be kept pure GPL, the better. I keep thinking about dual licensing just the engine part of ENIGMA. Keep everything licensed as it is right now (GPL 3.0), but add the MPL 2.0 as a secondary license to the source code for the engine. In that way, whenever a user distributes their game as an executable, the engine portion would be under the MPL. Their game code could be released with nearly any license or not at all. If the user wanted to release the game under the GPL (or similar license), they could release the entire executable under the GPL. Does anyone see a flaw in my reasoning? Would this cause a conflict between the two licenses? The only problem I can see with dual licensing is whether or not GPL code is added to the executable at compile time. We really need a developer's explanation of the compilation process.
|
|
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #24 Posted on: February 27, 2014, 10:38:51 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
Actually to some extent I do think ENIGMA can be used to make commercial games, despite some of its shortcomings, there are ways around them, and seeing some of the quality of indie games out there, I think it could be done. I have no problems crediting and linking to enigma, without even be told I am required, I would do it ! All commercial games out there credit the engines they use even if they are licensed, in fact, most people already know what engine is used in different games because it is written in the game credits.
Some of my games will make good use of CPU power and I certainly don't intend to spend $299 for a windows only YYC compiler, that's a complete rip-off. I will have to decide whether to continue using enigma or accept compromise in performance and go on using GameMaker Studio and their runner.
People with Pro version who want to buy the YYC have to pay the price for ALL YYC exports, even if all you want to do is develop windows, they sell the YYC as a "package". that is highly unacceptable and way overpriced for what it's worth. There are 2 big reasons that inspired me to use ENIGMA, 1) Support for DirectShow / Video, 2) the COMPILED nature of games, (a $299 saving).
Agreed, let's wait to see what the developers can come up with, I'm wonder if they might require legal help drafting this .... ?
|
|
|
Logged
|
|
|
|
The 11th plague of Egypt
|
|
Reply #25 Posted on: February 28, 2014, 03:57:34 am |
|
|
Joined: Dec 2009
Posts: 274
|
I did some more research on combining MPL and GPL It's safe to use MPL code in a GPL project, but the opposite is that straighforward. This is the clearest sentence I could find http://www.mozilla.org/MPL/2.0/combining-mpl-and-gpl.html Note, again, that great care should be taken to ensure that the new additions made to the file can be licensed under both the MPL and (L)GPL; e.g., by making sure that code is not copied and pasted from (L)GPL-only files into MPL+(L)GPL-licensed files. You can go from MPL to MPL+GPL. GPL-only to MPL is completely different, and can't be done. The word "compatible" may make it sound otherwise, so be careful. MPL to GPL-only is possible, though. A fork of MPL code can become GPL only and never contribute back. http://www.mozilla.org/MPL/2.0/combining-mpl-and-gpl.html Once an MPL-licensed file has been distributed as part of a larger (L)GPL-licensed work, third parties who receive the file may use and redistribute the file under the terms of either license. As a result, new modifications can be provided to recipients under the terms of both licenses, or solely under the terms of the (L)GPL. This may work Parser: GPL 3.0 Engine: MPL 2.0 Compiler: GPL 3.0 This can be done, but shouldn't be necessary Engine: MPL 2.0 + GPL 3.0 If somebody starts copying code from parser to engine, or from compiler to engine, what happens is this Engine: GPL 3.0 only Although the pre-copy-paste code will still available under MPL 2.0 I think MPL 2.0 is the way to go, it was built to make closed and open-source live in the same project back in the Netscape days. But please realize that, when you have multiple licenses in the same codebase, simple copypasting could screw things up. Although, that applies to any mix of licenses.
|
|
« Last Edit: February 28, 2014, 04:04:25 am by The 11th plague of Egypt »
|
Logged
|
|
|
|
Rezolyze
|
|
Reply #26 Posted on: February 28, 2014, 12:05:35 pm |
|
|
Joined: Jun 2013
Posts: 53
|
Thanks for the link The 11th plague of Egypt. I think I've finally got a good handle on how the MPL interacts with the GPL, but please correct me if I'm wrong. Hypothetically, if the project was setup like this: Parser: GPL 3.0 Engine: MPL 2.0 Compiler: GPL 3.0 - An ENIGMA developer can download the project source and redistribute it with the licensing as is or redistribute it all under the GPL 3.0. (Redistributing it all under the GPL 3.0 would be pointless because they'd be in the same situation we are now, but they could do it.) - An ENIGMA user can license their game code under one or more of the following: the GPL 2.0+, the LGPL 2.1+ and/or the AGPL 3.0+. When distributing their game in executable form, the Engine code and game code will be licensed under one or more of the three previous licenses. - An ENIGMA user can license their game code under a one or more licenses that is not the GPL 2.0+, the LGPL 2.1+, or the AGPL 3.0+. When distributing their game in executable form, the Engine code is still licensed under the MPL 2.0 and the game code is under the license(s) of their choosing. - An ENIGMA user can choose not to license their game code at all. When distributing their game in executable form, the Engine code is still licensed under the MPL 2.0 and the game code is unlicensed and closed source. All code contributions to the Parser and Compiler would need to be submitted under the GPL 3.0. All code contributions to the Engine would need to be submitted under the MPL 2.0. Code from the Parser or Compiler couldn't be copied and pasted into the code for the Engine. This license would work if we can get confirmation that no GPL code is added to the Engine code during the compilation process. Another potential issue is if the Parser adds GPL code to the user's translated game code during compile. We need someone who understands the inner workings of ENIGMA to share their knowledge on the subject.
|
|
« Last Edit: February 28, 2014, 12:11:24 pm by Rezolyze »
|
Logged
|
|
|
|
The 11th plague of Egypt
|
|
Reply #27 Posted on: March 01, 2014, 05:12:38 am |
|
|
Joined: Dec 2009
Posts: 274
|
- An ENIGMA user can license their game code under one or more of the following: the GPL 2.0+, the LGPL 2.1+ and/or the AGPL 3.0+. When distributing their game in executable form, the Engine code and game code will be licensed under one or more of the three previous licenses. - An ENIGMA user can license their game code under a one or more licenses that is not the GPL 2.0+, the LGPL 2.1+, or the AGPL 3.0+. When distributing their game in executable form, the Engine code is still licensed under the MPL 2.0 and the game code is under the license(s) of their choosing.
No, if the engine is MPL 2.0, an Enigma user can release their game with any license they want. The MPL is nice about it because it only obliges you to release modifications to the files released under the MPL. If you just use the MPL files in your project (e.g. linking them), then you do _not_ need to release your source under the MPL. MPL basically does this: code in a file under MPL stays under the MPL As long as you don't copypaste from/add code to an MPLed file, and just link/include, you have no obligations. All the complicated stuff is about contributing, and people mixing it with GPLed code. The problem here is GPL will try to eat MPL if developers screw up.
|
|
« Last Edit: March 01, 2014, 05:14:46 am by The 11th plague of Egypt »
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #28 Posted on: March 01, 2014, 10:09:55 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Sorry for the delay; I was securing a career, and dealing with family matters. At first glance, the MPL sounds like exactly what we want. I'll read over the full text and get back with you on that.
I'll also see about posting the compilation sequence for you on the Wiki. But yes, I had every intention of leaving the compiler (and its parsers) under the unamended terms of the GPL.
To answer your compilation question as it pertains to licensing, code added to your code by the compiler is legally considered your code, in the way that code generated by InkScape is. I don't have control over the code it generates; only the engine code. I am trying to see to it that the new compiler allows you to choose the license that is placed atop these files.
Cheers
|
|
« Last Edit: March 01, 2014, 01:16:36 pm by Josh @ Dreamland »
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Josh @ Dreamland
|
|
Reply #29 Posted on: March 01, 2014, 12:58:02 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Reading over the license, here's what I like:
2.4. Subsequent Licenses: I like that modifications to this license cannot magically grant additional rights; the GPL does not state this, to my knowledge; we just trust it will always be viral and open-source. 3.5. Application of Additional Terms: Overall good idea to mention. 5.2: I am glad to see some "liberty or death" in the mix. General: The license is very clear about the differences in compliance requirements when using it internally within your organization vs distributing it externally; the GPL is also clear about that, but as my exception extends the GPL, it does not mention this, which is why TGMG was concerned above.
What I don't like, of course, remains the same.
Important bug fixes or replacement systems are, as they say, "encouraged" to be open-source, but are not required. We have no protection over the internals of the project; they can be used or replaced to circumvent major problems without causing the fix to be MPL. For instance, say there's a bug in one of our internal collision system functions that's causing issues in the whole collision system. A separate entity can delete that function at fault from the MPL-covered source code, then create a proprietary replacement in the same way a user creates proprietary game source code. They could then sell it along with ENIGMA as a bundle. If the fix was important enough and tricky enough to find, or if they did this for multiple issues, they could effectively maintain a paid version of ENIGMA with bug fixes. The saving grace is that they would have to provide the modified source to ENIGMA (identical to our source, but with the defective functions elided) to all users. And if I'm not mistaken, they could do this by mailing us the source code on a flash drive for the cost of the drive and the postage. But that would just be petty, and isn't really material to the problem.
The problem applies to any license not specifically tailored to our purpose. To demonstrate, the exception I wrote handles it in two ways. The first is by voiding itself when the combined work is a game engine. This means that users are aware the code they are using is part of the ENIGMA engine, and is freely available and free to use and redistribute. If they are using a rebranded redistribution, they may not be aware of those rights. The second way this is handled is by disallowing third-party code from accessing anything in namespace enigma.
The root of the problem is the separation of a game, an add-on system (as an extension or library), and a patch for an existing system. I don't personally mind individuals selling new systems, but I do mind them selling bug fixes. New systems—even paid ones—help ENIGMA: they give users options and in so doing encourage the community to grow. Paid bugfix versions of ENIGMA hurt ENIGMA. I wouldn't have as much of a problem with a paid bugfix that did not deliberately try to dilute or hide ENIGMA's community; Embrace, Extend, Extinguish style.
In fact, Sun's licensing is quite brilliant; Microsoft was unable to kill them because in order to call yourself Java, you must meet the complete standard and be compatible with the others. The basic idea behind this was the reason for those clauses I explained above. The more I think about it, the more I am convinced that (5) should not have been included at all, and (4) is the crux of the entire problem.
That said, the MPL seems to address most of our problems, and with the need for a new project to provide the modified source of ENIGMA, we at least alleviate the possibility of being totally buried; we can now only be mostly buried (A "request source code" form hidden within a big website). Of course, this whole issue isn't a problem at all for Mozilla, as they are, at this point, a trusted brand name, with money to pay people to fix bugs in the open-source version. We aren't... at the moment. So someone selling a version of ENIGMA with bug fixes is still a possibility, as opposed to someone trying to sell a fixed-up Firefox. By contrast, most browsers are free; most game engines are paid.
That said, you know my issues. If they do not strike anyone else (particularly other developers) as a big problem, I am also willing to compromise. The MPL seems to take care of the majority of our needs, replacing my clauses with an unexceptional need for our users to make ENIGMA's source available to their users. I suppose this is an acceptable burden to place on either party.
While I will not myself jump to embrace MPL as our new license, if the other developers are interested (their consent is strictly required), then this license (the MPL) has my support.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|