What is the deal with GPL? Why bother if you're releasing your code for free/as public domain/whatever? If the code is for free why do you need a license? It vexes me.
GPL license
Miscellaneous Forums/General Discussion/GPL license Why bother if you're releasing your code for free/as public domain/whatever?
If you were releasing it as public domain, you wouldn't bother because they're mutually exclusive. The GPL is something completely different and completely incompatible with most other licenses.
If the code is for free why do you need a license?
To ensure it stays free. If you've spent six months writing something, someone comes along and takes your work, adds something cool to it and then hides it away so that no one else ever sees it, you might deem that a little selfish. GPL licensing ensures that anyone who changes it makes those changes available to everyone.
Having said that, the GPL ( and even the LGPL ) is a little heavy-handed and somewhat viral in nature, so some of the Creative Commons licenses are probably better suited to this.
Thanks Gabriel, I could never really understand the GPL.
If you use GPL code say in your game does that mean you have to release all your game code as GPL even if it has nothing to do with the GPL code you used? Or is it just if you modified the GPL code?
If you use GPL code say in your game does that mean you have to release all your game code as GPL even if it has nothing to do with the GPL code you used? Or is it just if you modified the GPL code?
Ugh, well ask that question to 100 different people and you'll get 100 different answers. However, as I understand it, you can summarize the license(s) thus.
If you use GPL code, all your game code must be released as GPL. This does not mean you cannot make money from the project. You can charge for support, and you're not obliged to give away any of your media or game content. But yes, all source code has to be available freely.
If you use LGPL code ( lesser GPL ) then the situation is different. With the LGPL, you do not need to open source any code which is not directly related to the LGPL code itself. So in other words, if you use a LGPL library and you modify it, you have to release the modified library, but you do not have to release your game code. Note that "directly related to the LGPL code" includes your game if, and only if, you statically link to the library. So with LGPL libraries, you would generally use them as DLL's, not object code linked into the executable. Calling them as DLL's means your game code is entirely separate and does not need to be GPL'ed.
EDIT: Edited slightly to (hopefully) improve readability.
If you use GPL code, all your game code must be released as GPL. This does not mean you cannot make money from the project. You can charge for support, and you're not obliged to give away any of your media or game content. But yes, all source code has to be available freely.
If you use LGPL code ( lesser GPL ) then the situation is different. With the LGPL, you do not need to open source any code which is not directly related to the LGPL code itself. So in other words, if you use a LGPL library and you modify it, you have to release the modified library, but you do not have to release your game code. Note that "directly related to the LGPL code" includes your game if, and only if, you statically link to the library. So with LGPL libraries, you would generally use them as DLL's, not object code linked into the executable. Calling them as DLL's means your game code is entirely separate and does not need to be GPL'ed.
EDIT: Edited slightly to (hopefully) improve readability.
What is the deal with GPL? Why bother if you're releasing your code for free/as public domain/whatever? If the code is for free why do you need a license? It vexes me.
Apart from ensuring that your own product itself stays free if someone creates a GPL-licensed program, it can also lead to *other* freely available programs since people building upon the GPLed program are required to release the full source of their program and its modifications as well.
With public domain, someone can just reuse whatever code was made, and 'lock it up' inside their own closed-source program.
The whole point to many who release GPL licensed programs is to lead to more freely usable software all around.
It's exactly because of that that GPL is sometimes caused viral -- using any GPL code requires the same 'free'-ness of any new programs using it as well, leading to more quality free software available to all users in the world at large. Of course, if a developer doesn't want to release his own programs' source under the GPL himself, there's an easy way to prevent that: don't use any GPL-licenced 3rd party components and re-invent the wheel yourself to add the functionality you like.
Thanks to the extended trickle-down effect everyone wins, more so than with public domain or freeware.
Note that GPL does have some negative connotations too, if someone saw what you did and thought of a cool way to commericalise it and bring to the masses then they (and you) may be prevented from doing so if the code is already GPL'd.
Once code is GPL'd you also lose a lot of control over the product as anyone can release their own versions as long as they release thier source.
Finally GPL can stifle commercial innovation (a force not to be underestimated) because it precludes most of the routes to market. Few companies are prepared to invest in programming projects if there is a GPL'd version already available. The GPL'd version may be inferior, buggy and not even active but it will still put off investors.
GPL can have unintended consequences: Let's say you wrote a online game in Blitz and GPL'd it. Let's say it was a hit and lots of people play it and it develops a big following. In order to continue to develop it you would have to monetise it. The most obvious ways of doing this would be to charge for support, new content and accepting donations online. However at every stage of this you would trip over your own GPL. GPL would also leave you very open to online cheats which would in turn undermine your loyal fanbase. Any patches you released to fix the cheats would have to be release also making it very simple indeed to get round them.
I'm not saying GPL is bad, just that that there can be some downsides as well as ups.
IMHO unless your really sure your much better off releasing your game/app as freeware and putting in whatever T's & C's you want. If it suddenly takes off or someone finds a big commercial opportunity from it you still have all the rights and no restrictions. Quite a lot of applications have been successful freeware which have then been developed into commercial products with added features and add ons.
Darkheart
Once code is GPL'd you also lose a lot of control over the product as anyone can release their own versions as long as they release thier source.
Finally GPL can stifle commercial innovation (a force not to be underestimated) because it precludes most of the routes to market. Few companies are prepared to invest in programming projects if there is a GPL'd version already available. The GPL'd version may be inferior, buggy and not even active but it will still put off investors.
GPL can have unintended consequences: Let's say you wrote a online game in Blitz and GPL'd it. Let's say it was a hit and lots of people play it and it develops a big following. In order to continue to develop it you would have to monetise it. The most obvious ways of doing this would be to charge for support, new content and accepting donations online. However at every stage of this you would trip over your own GPL. GPL would also leave you very open to online cheats which would in turn undermine your loyal fanbase. Any patches you released to fix the cheats would have to be release also making it very simple indeed to get round them.
I'm not saying GPL is bad, just that that there can be some downsides as well as ups.
IMHO unless your really sure your much better off releasing your game/app as freeware and putting in whatever T's & C's you want. If it suddenly takes off or someone finds a big commercial opportunity from it you still have all the rights and no restrictions. Quite a lot of applications have been successful freeware which have then been developed into commercial products with added features and add ons.
Darkheart
Like darkheart said,
I prefer the LGPL idea myself which means that the free bit you use (for example a dynamic lib and it's src) must stay open and free, as well as documentation of any modifications you do to the free bit. However, you can still have the freedom to protect & sell the parts that you have created if you choose to - as long as you abide rules set out in the LGPL.
This approach is MUCH better for people who write shareware / games etc and rely on a source of income from it.
GPL is a much stricter and infectious licence. Simply by linking to something that is GPL, means that its licence infects your product too. So, although you can sell it in some circumstances, you have to disclose the source for everything. People can still make large money from GPL in other ways, but to make it work financially you have to have either a very big presence or offer something else 'in combination' with it (Ie: you could release your game's app under the GPL, but sell the media)
I prefer the LGPL idea myself which means that the free bit you use (for example a dynamic lib and it's src) must stay open and free, as well as documentation of any modifications you do to the free bit. However, you can still have the freedom to protect & sell the parts that you have created if you choose to - as long as you abide rules set out in the LGPL.
This approach is MUCH better for people who write shareware / games etc and rely on a source of income from it.
GPL is a much stricter and infectious licence. Simply by linking to something that is GPL, means that its licence infects your product too. So, although you can sell it in some circumstances, you have to disclose the source for everything. People can still make large money from GPL in other ways, but to make it work financially you have to have either a very big presence or offer something else 'in combination' with it (Ie: you could release your game's app under the GPL, but sell the media)
Thanks all, that clarifies it well.
So in the context of not wanting to release the source to your game but also being able to use some free code for your game. Do I have this right?
Public domain: can use as if it's your own code.
LGPL: can use as long as it's a DLL.
GPL: can't use even if it's a DLL.
So in the context of not wanting to release the source to your game but also being able to use some free code for your game. Do I have this right?
Public domain: can use as if it's your own code.
LGPL: can use as long as it's a DLL.
GPL: can't use even if it's a DLL.
Pretty much.
Im pretty sure that about pins it (check to make sure)
There is another common one called the Zlib licence, which is probably the most lenient (of the three) a good example of this would be the irrlicht licence: http://irrlicht.sourceforge.net/license.html
You can do what you like with the code as long as you don't misrepresent its origins or something (so includes static linking too).
There is another common one called the Zlib licence, which is probably the most lenient (of the three) a good example of this would be the irrlicht licence: http://irrlicht.sourceforge.net/license.html
You can do what you like with the code as long as you don't misrepresent its origins or something (so includes static linking too).
There's also just plain freeware, which is different from Public domain in that the author retains the copyright. whether or not it's ok to include that in a project can be decided on a case-by-case base by the oriinal author.
(Essentially it's the same as commercial software, except it has a $0 selling price)
(Essentially it's the same as commercial software, except it has a $0 selling price)
I think the magical word here is "reciprocity": I give you something, and if you build on it, you have to give something back.
Ok, thanks. I didn't realize that you couldn't use a dll if it was GPL, in the context of closed-source software.
I notice for example, FreeImage has two licenses GPL and FIPL. I didn't know you could have two licenses for the same code. So say if the author of some code released their code as GPL and later decided it was too restricting could they just provide a second license or would they be stuck with GPL?
Winni, not sure what you mean. Are you saying you think all code should be open-source?
I notice for example, FreeImage has two licenses GPL and FIPL. I didn't know you could have two licenses for the same code. So say if the author of some code released their code as GPL and later decided it was too restricting could they just provide a second license or would they be stuck with GPL?
Winni, not sure what you mean. Are you saying you think all code should be open-source?
If you own the code you can have as many licence configurations as you like as long as its 100% clear what you are offering and what the rules are.
I dont think you can remove them though without re-releasing the code/sw.
I have seen sometimes for example:
V1.3 Is released under GPL
V1.4 Is released under LGPL
V1.5 Is a commercial licence or a GPL for non-commercial
etc....
I dont like this though it causes too much confusion and is not very attractive to a developer looking for consistancy.
I dont think you can remove them though without re-releasing the code/sw.
I have seen sometimes for example:
V1.3 Is released under GPL
V1.4 Is released under LGPL
V1.5 Is a commercial licence or a GPL for non-commercial
etc....
I dont like this though it causes too much confusion and is not very attractive to a developer looking for consistancy.
I've switched my position of supporting GPL to support public domain code. This is mostly because of my attitudes towards copyright (I don't believe the world needs such a thing), and GPL requires copyright to work legally. However, GPL is still pretty good since it gives you alot of freedoms other licenes don't, and is better than closed source of course.
If you desperately want to use a GPL library and the terms don't quite fit, it's certainly worth writing to the author. As Dan said, you can certainly offer multiple licenses and if it's clear that you have a genuine concern about the license, and you're not just trying to take advantage, it's perfectly possible that the author will let you have it under different terms.
No, I'm not trying to take advantage of anyone. :)
I just was browsing and spotted someone's code (not to name any names) and they were talking about their code being free as in "do whatever you want" but at the same time it was GPL, so I got confused and posted here for help, which I got in spades, thanks very much.
I just was browsing and spotted someone's code (not to name any names) and they were talking about their code being free as in "do whatever you want" but at the same time it was GPL, so I got confused and posted here for help, which I got in spades, thanks very much.
They probably meant that you can modify the source code in anyway and share it with anyone else.
Look at all this lovely public domain code:
http://www.blitzbasic.com/codearcs/codearcs.php
Loads of people must have used bits of code from these archives in their commercial/shareware/portal-sold games. If this stuff was under the GPL, you'd have to make the source code for your whole project available to anyone who wanted it. Good luck selling a game that way!
(The GPL has its place of course.)
http://www.blitzbasic.com/codearcs/codearcs.php
Loads of people must have used bits of code from these archives in their commercial/shareware/portal-sold games. If this stuff was under the GPL, you'd have to make the source code for your whole project available to anyone who wanted it. Good luck selling a game that way!
(The GPL has its place of course.)
I tend to prefer the MIT license, but depending on the libraries I'm wrapping, I use a license to match it.
I don't generally wrap GPL, as it is less likely to be used by the Blitz community.
LGPL however, is fine if I'm not statically linking. wxWidgets uses a form of LGPL but has an exception for binaries, allowing you to statically link your final application and not have to have it GPL'd too.
Open source rocks, generally :-)
I don't generally wrap GPL, as it is less likely to be used by the Blitz community.
LGPL however, is fine if I'm not statically linking. wxWidgets uses a form of LGPL but has an exception for binaries, allowing you to statically link your final application and not have to have it GPL'd too.
Open source rocks, generally :-)
BlitzSupport, you can sell games with GPL, free in this context only means liberty, not price.
Yes you can sell it but you have to give access to the GPL code and anyone who buys it has the freedom to distribute the code as well. So it means that you can not really sell it in the end.
So it means that you can not really sell it in the end.
Why does it mean that? What are they going to do with the code, that could prevent you from selling the game? Offering it on the net to anyone who is interested, without buying the game for example. GPL does not allow you to not give access if someone does not buy your application. You have to give access to the sources to anyone interested.
Offering it on the net to anyone who is interested, without buying the game for example.
You don't have to offer them the game - just the source code. You're telling me that the average match-3 gamer is going to have the technical savvy and determination, to go to the process of finding suitable replacement media, compilers, and whatever else you need to make a game, besides the source code, just to save 10 bucks?By your "argument" you couldn't make any money on closed source games either, because someone could just write their own game instead (ala. Grid Wars). Now if Grid Wars was GPL'ed, it's questionable that Bizarre Creations could have "shut it down" so to speak.
I agree with that to some extent.
I can appreciate the need to protect cutting edge techniques/ technology, but lets face it there is very little in indie games that cannot be recreated quite quickly.
- by the very few that can actually analyze and understand your code in the first place.
I can appreciate the need to protect cutting edge techniques/ technology, but lets face it there is very little in indie games that cannot be recreated quite quickly.
- by the very few that can actually analyze and understand your code in the first place.
It's perfectly feasible that some clever guy would compile the source and put the game on a warez site for people who don't want to pay. Open-source games are vunerable to hacks.
Also, say you write a "game engine" and make a free game with it and release it as GPL. Later you decided to write a commercial game with your engine. You might find that portals won't sell it because it's open-source. You also might find another developer has picked up your engine and used it to write a game extremely similar to yours and it's completely free. You're not likely to make much money with GPL code.
Also, say you write a "game engine" and make a free game with it and release it as GPL. Later you decided to write a commercial game with your engine. You might find that portals won't sell it because it's open-source. You also might find another developer has picked up your engine and used it to write a game extremely similar to yours and it's completely free. You're not likely to make much money with GPL code.
I think the LGPL should be scrapped entirely. Any half successful LGPL lib ends up with static linking exceptions effectively making it public domain in my book.
Removing LGPL from the scene would leave GPL naked in it's glory, taking the word free and defecating it into a pile of self righteous illogical sentiment / dependencies.
I like my code hand written, public domain or paid for.
And I like my games statically linked with their run-times, something Linux BlitzMax distributables may never enjoy given the suffix .cpp seems to have itself been GPL'd over on that side of the fence </paranoid_delusion>..
Removing LGPL from the scene would leave GPL naked in it's glory, taking the word free and defecating it into a pile of self righteous illogical sentiment / dependencies.
I like my code hand written, public domain or paid for.
And I like my games statically linked with their run-times, something Linux BlitzMax distributables may never enjoy given the suffix .cpp seems to have itself been GPL'd over on that side of the fence </paranoid_delusion>..
It's perfectly feasible that some clever guy would compile the source and put the game on a warez site for people who don't want to pay.
Sure. But having a closed source game does not prevent it from ending up on a warez site. Open-source games are vunerable to hacks.
No. Open-source games, like open-source operating systems are open to scrutiny, meaning that there's a good chance someone might stumble upon some inherent flaw in your code, and tell you about it. Unless of course you're already the perfect programmer, unable to learn new tricks. You also might find another developer has picked up your engine and used it to write a game extremely similar to yours and it's completely free.
Which he is entitled to. But seriously if you're afraid of a little competition from some week-end coder, your chances of turning a profit on your software is marginal. Nothing you've written is so clever it hasn't already been written 100 times over. Even if you're John Carmack, you didn't invent Carmack's Reverse. You're not likely to make much money with GPL code.
You're not *likely* to make much money with non-GPL code either. There are thousands of much more important factors to software success than which terms it can be distributed under. Any half successful LGPL lib ends up with static linking exceptions effectively making it public domain in my book.
That's not at all the same as public domain. LGPL is more than "please don't static link this code, kthanx". Public Domain is essentially what Mark has confused with GPL above. GPL (and by extension the LGPL) is designed to give you legal protection, against (say) patent lawsuits, which public domain does not. Sure. But having a closed source game does not prevent it from ending up on a warez site.
Yes, but it makes it harder for the hacker. You'd be practically handing it to them on a silver plate.
No. Open-source games, like open-source operating systems are open to scrutiny.
I was basically repeating what Darkheart mentioned. Open-source software can be improved or abused, in the case of games it is more likely to be abused.
But seriously if you're afraid of a little competition from some week-end coder, your chances of turning a profit on your software is marginal.
Don't underestimate the week-end coder, some of the best coders are self-taught. It's hard enough to sell a game today without helping the competition.
You're not *likely* to make much money with non-GPL code either.
If you've written a really good game you're likely to make some money out of it, but if it's open-source you're probably not going to make any money at all.
I think the LGPL should be scrapped entirely. Any half successful LGPL lib ends up with static linking exceptions effectively making it public domain in my book.
And you are sure you understand the ins and outs of LGPL right?
LGPL is the same as GPL just that it isn't totally worthless for libraries.
It ensures that your technology that you put under LGPL is opensource and must remain so (statically linking does not change that you can still get the exact source of it from the creators page) while still allowing real developers to use it in the officially distributed way. If they want to alter it, they have to make the code available just like under GPL.
There is nothing worse than pure GPL libraries.
Who the hell would use a library within his project that enforces the whole project to be open sourced unless that was the original plan?
GPL actively destroys a library / software component (for whole software packages its a whole different thing, there it actually makes sense to make sure that components get open sourced again)
Think about it yourself: If LGPL and similar licenses didn't exist, BM would not exist at all, as a simple example, as libjpg, libpng etc would enforce GPL and as quite a lot in BM relies on the image usage, all that code would need to be GPL as well.
Yes, but it makes it harder for the hacker. You'd be practically handing it to them on a silver plate.
Your understanding of the "hacker" mentality is somewhat misinformed. For starters it makes little difference to them if they have the source, or reverse engineer the binary. Secondly, they like a challenge - they don't want it on a silver platter, no bragging rights. Open-source software can be improved or abused, in the case of games it is more likely to be abused.
Based on what? Here are the facts: Almost every single closed source game has been cracked. Open source games, not so much. Explain how you, based on that information, conclude that open source software is more likely to be abused? Don't underestimate the week-end coder, some of the best coders are self-taught.
Sure. But if he can produce a better game in a fraction of the time, doesn't it seem reasonable that he should be the one making money, not you? If you've written a really good game you're likely to make some money out of it, but if it's open-source you're probably not going to make any money at all.
Why not? Hi Flameduck.
Well I don't know how hackers think but I would assume the important thing is to provide the software for free, not to brag about how hard it was.
You don't need to crack an open-source game as the source is already there. If someone has the source they can modify the code and release a cheat version which ruins the game for normal users in multiplayer mode.
Who said a fraction of the time? Week-end coder is just a term, it's not literal, he may have more time than me.
Because you can't sell the code it's free, you're making a big loss right there. If a game is open-source why should anyone pay for it, it should be free. This is what many people would say. Also, as mentioned distributors probably won't want to sell an open-source game, they're fussy about things like that.
Your understanding of the "hacker" mentality is somewhat misinformed.
Well I don't know how hackers think but I would assume the important thing is to provide the software for free, not to brag about how hard it was.
Here are the facts: Almost every single closed source game has been cracked. Open source games, not so much. Explain how you, based on that information, conclude that open source software is more likely to be abused?
You don't need to crack an open-source game as the source is already there. If someone has the source they can modify the code and release a cheat version which ruins the game for normal users in multiplayer mode.
Sure. But if he can produce a better game in a fraction of the time, doesn't it seem reasonable that he should be the one making money, not you?
Who said a fraction of the time? Week-end coder is just a term, it's not literal, he may have more time than me.
Why not?
Because you can't sell the code it's free, you're making a big loss right there. If a game is open-source why should anyone pay for it, it should be free. This is what many people would say. Also, as mentioned distributors probably won't want to sell an open-source game, they're fussy about things like that.
Think about it yourself: If LGPL and similar licenses didn't exist, BM would not exist at all, as a simple example, as libjpg, libpng etc would enforce GPL and as quite a lot in BM relies on the image usage, all that code would need to be GPL as well.
It would mean that BlitzMax would be GPL, and the compiler could be improved by the community, resulting in a better compiler. BlitzMax could still be sold as usual. And in that scenario some people would use BlitzMax without paying for it, just like some people are doing it now. I didn't pay for BlitzMax because of any law, I paid because I wanted to support Mark.