Archived

This topic is now archived and is closed to further replies.

GPL-protected libraries

This topic is 5647 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello community, What are your thoughts and concerns regarding utilizing GPL-protected libraries in your games? I had been considering using OpenAL and SDL in my own games, until I had considered the implications of the GPL (and at the time immediately became disgusted, biased against it, and turned off from it). At this point, I consider GPL a From what I can tell, it has the following going for it: - Rapid game development: One can get even more complex games up and running within an afternoon (provided media like graphics and sounds are at hand). - "Community" interaction: Usually, it seems GPL protected projects are worked on by a number of users, which may or may not accelerate its growth from "nothing" to "advanced". - Attraction for hobbyist developers: It also seems this sort of project (if powerful and dynamic enough) increases its own popularity by the number of developers that implement it in their own games. However, there are a few (what I consider) really nasty things that could deterr one from using such libraries: - Instant open-source: If I don''t like sharing my code, I''m essentially stuck developing my own libraries. Not that I have a problem with this; I have at least mildly touched on numerous of programming (short of 3D scene management, which I am sure will manifest itself for me in the coming year). - No income: One really can''t make a living from GPL libraries (either by developing them or using them in other projects that could potentially sell), so unless one is a hobbyist game developer (as opposed to a more business-oriented career game developer), even thinking of GPL libraries is a bad idea. - Propogation of poor coding habits, and potential stagnation of projects due to lack of coherency between development team members: If a project is not standardized, or without a clear leader to whom the other team members "pledge allegiance", a project could very easily spiral into disaster and mayhem. (Of course, the flipside of this is that the projects that DO survive are likely of higher quality because the team members are able to establish and meet goals.) What are your thoughts on the above? I hope I have presented myself in a fair manner (despite the fact that I am biased against GPL ). Note too that I am not against certain forms of open-sourcing; I have made and do make some of my own projects open-source simply because I wanted to share. MatrixCubed
http://MatrixCubed.cjb.net

Share this post


Link to post
Share on other sites
SDL and OpenAL are under the LGPL license, not the GPL. There is a big difference. LGPL is short for Lesser General Public License, and allows you to dynamically link your code to the LGPL''ed code without having to release your code under the LGPL (however if you incorporate LGPL''ed code into your project by other means than dynamic linking, then you must release your code under the LGPL as well).

You should really read the license (or at least the ''summary'' on gnu.org) before making such statements.

Share this post


Link to post
Share on other sites
quote:
Original post by Arild Fines
Isn''t the LGPL officially discouraged...?

Yeah, but who in their right mind listens to RMS anyway?

GPL has its uses, as does LGPL. The unfortunate reality RMS and his cohorts simply cannot come to see is that our society is built on commerce, and intellectual property is a resultant necessity. That''s where Open Source and Free Software split: Free Software (in the words of RMS) believes that "software wants to be Free", that free acquisition and unrestricted use (other than not permitting a user/distributor to institute restrictions on others) are morally right. Open Source seeks to find compromise between the practical benefits of peer review ("given enough eyes, all bugs are shallow") and source accessibility and the fiscal motivations of proprietary code. ESR even gives examples of when not to go Open Source in some of his essays.

The result of all this is a plethora of Open Source licenses (the GPL remains the most popular, because that''s what the Linux kernel is under) including the Mozilla Public License, the Sun Community License... even the BSD license qualified (find related information at the Open Source Definition). In other words, there is often a non-GPL substitute that can work for you. OGRE, for example, is currently GPL but the author plans on a shareware-friendly license for licensees who are unwilling or uncomfortable releasing their source.

Share this post


Link to post
Share on other sites
Hey MatrixCubed.

You seem to be going through the same denial/disgust phase I went through, when I thought of GPL as a plague that spreads uncontrollably...

Anyway, I'm seeing the light and even considering ways of making profit from GPL, but I'll stick to your concerns for the moment.

> "If I don't like sharing my code, I'm essentially stuck developing my own libraries."

Yes, and that sounds more than fair. The community and library developers may have put a terrific amount of work into their projects, and they won't appreciate you making money from their work unless you contribute back.

Generally, such developers are open to offers. If you pay them, you can usually get an unrestricted license -- or otherwise convince them that it's in their interest for you to not open your source.

> "One really can't make a living from GPL libraries."

This is mostly a myth. Read all three of Eric Raymond's essays, but most importantly 'The Magic Cauldron' (google it). Generally, the code is not what you pay your money for. Taking examples...
  • Take Quake 2 for example. ID is still selling that in stores, the data is still restricted despite the source being open.

  • Take NEL for example. Nevrax is building an entire MMORPG engine library in GPL for their game, and intending to make big money from it.

  • Take Red Hat for example, selling documentation, printed CD, box sets and customer support.


> "Propogation of poor coding habits, and potential stagnation of projects due to lack of coherency between development team members"

This has nothing to do with GPL, a commercial library is just as likely to spiral out of control. I'd even argue, that OS is a better, more reliable form of development. More people use open code, so bugs are more likely to be fixed; design is criticised by more people, and as long as the big boss stays on top of things, the project will thrive. If it doesn't, rival OS projects can establish themselves too (either forking the existing work by mutual consent, or starting from scratch).


GPL is generally a good license, and does a relatively good job of protecting the rights of either party involved. If you don't like it, get your wallet out



Artificial Intelligence Depot - Maybe it's not all about graphics...

[edited by - alexjc on June 23, 2002 1:51:36 PM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
The money thing, I''ll grant that there are ways to make money, but it''s not easy, you seem to make less, and most importantly for me, none of the business models I''ve seen would work well for the hobbyist moving to small indie, neither of whom have any capital.

"If I don''t like sharing my code,"
This is the truly evil part of the GPL. Remember, these are libraries, not complete programs. I know these licenses are for the developers protection, but what of my work? I can''t use libraries as-is, I have to write additional code. The GPL takes away my rights to this code, to my own work. As a programmer I am horrified at the thought of my work being stolen and stripped bare. I worked on this code, it is my property, and under the license I am forced to give it away. The GPL and all who download hereafter steal my work. It doesn''t matter what kind of property it is, a car, a truck, a house, jewels, code, taking it away is an assault on the sense of self, dignity, being an individual, and having any rights.

quote:
> "If I don''t like sharing my code, I''m essentially stuck developing my own libraries."

Yes, and that sounds more than fair. The community and library developers may have put a terrific amount of work into their projects, and they won''t appreciate you making money from their work unless you contribute back.


Very true, but these developers decided to share their work with the community. If they really wanted to make money off of this or to receive any compensation other than appreciation for the work and their talents why put it under the GPL? If they are only after that appreciation, then why not measure the success of their work in dollars made by the people who use their software as well, not just downloads?

In other words, if they put it under GPL they probably didn''t expect any money anyway, so why should they get upset if I make a little money using their software? That''s the point of sharing. You share software in the hopes that others will use it. Why share software if you are going to restrict the way that people can use it? The GPL is effectively saying to users from developers, "Here is a gift, but it''s not really a gift because you can''t do what you want to do with it."

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
The GPL takes away my rights to this code, to my own work.

Rubbish. Your "won work" is based on someone else''s work, and the GPL is designed to ensure that you don''t "embrace and extend" the original developer''s intellectual property, then close it off and deny other developers/end users the freedoms you had.

quote:

As a programmer I am horrified at the thought of my work being stolen and stripped bare.

Excuse you?! "Stolen"? The GPL told you beforehand that "if you use this in your own code, you''ll have to make it GPL as well." If you then chose to go ahead, you did so voluntarily - ergo, you gave away your code while maintaining ownership rights (copyright is not muted by the GPL).

quote:

Very true, but these developers decided to share their work with the community. If they really wanted to make money off of this or to receive any compensation other than appreciation for the work and their talents why put it under the GPL?

So that corporations with deep pockets don''t take what was once freely available, add a host of features and then close it off to potential developers. It happened with UNIX. It happened with Microsoft (Kerberos, anyone?)

quote:

Why share software if you are going to restrict the way that people can use it?

Why sell software if you''re going to restrict the way that people can use it? Or perhaps you haven''t actually read an EULA recently.

Your opinions are misinformed and malformed - a true tragedy of misunderstanding and/or ignorance. I suggest you learn about the pertinent issues (particularly intellectual property law, copyright and the history of the Free Software Foudnation/GNU) before you comment further.

Share this post


Link to post
Share on other sites
amen, many ppl dont understand GPL. it does not force you to use the code. you dont have to use code from GPL''d apps/libraries if you dont like the apsect of having to allow your program to go under GPL. its known before you start using anything that is under GPL that you must release the source to yoru work as well. thus its like you spent time coding stuff and this just became apparent. if this is the case you should learn to read the liscence agreement that comes with the source, since in either case its still copywrite protected and you could not use the code anyway, code does not automagically become public domain unless the auther is dead for at least 50yrs (or is it 75 now?) of that the author EXPLICITLY states its under public domain.

if you feel that you have the right to use GPL code without releasing your source code to anyone who has LEGAL access to the binary (a major point MANY open source ppl seem to neglect as well as others). this basically means that your code branch can be sold, yet only those who purchase the cd with the executable on it can have access to the source. they CANNOT legally distribute the code/executable to hwoever they wish and would be breaking the law just as if you were to keep your code closed source while still using GPL code.

the reason ppl put their code under GPL is that they feel that anyone suing the code should contribute the project since the original authors did so much work on the code themselves. the authors are actually giving up rights by letting you use their code. since after all its copyrighted and you coudl not use the code unless they place it under GPL or make it public domain. the problem with public domain code is that you dont even have to give credit to the original author. furthermore large compaines could use the hardwork done by the open source community without having to "give back to the community". though if the app is not public (ie within the company only) the community would never see the code changes anyway since only ppl within the company have legal access to the executable thus are the only ones legally allowed to use and modify the source code. again, a major thing MANY open source advocates seem to ignore.

though this is all moot, since SDL and OpenAL are both under LGPL since they wish to remain competive with directx on the win32 platform. so you can use the library if you dynamically link it. any changes made to the LGPL library MUST be made public and the source code to those changes MUST be made availible.

also all the things mentioned that are bad about GPL can be applied to ANY liscence, as such are moot. instant open source could become, you must pay royalties to the company producing the library. no income, could become still no income. propogation of poor coding habits? well if you code bad then you are helping in this matter are you not? ANY project in which there are multiple coders, a problem of different styles creeps in. though open source apps tend to be somewhat "messier" due to supporting many platforms. something i think most ppl can live with.

also just because many ppl are working on the code, does not mean their code gets placed in official versions. the main developers decide what code stays or not. ppl submit patches, and then coders working on the project see if they fix what is needed and decide if its done in a good manner. the code could be rejected or rewitten. furthermore, if someone dislikes how things are going with the project, they could branch the project off and make their own version. maybe removing bloated features or maybe even adding some extras that the main developers feel should not be a part of the official original project. this is the true power of GPL, and it is why ppl like it so much. granted it does create some mulitple standards issues, but they are ussually not too bad since ussually at the core they are pretty similar.

Share this post


Link to post
Share on other sites
quote:
If they really wanted to make money off of this or to receive any compensation other than appreciation for the work and their talents why put it under the GPL?


It''s not a fine line between being friendly, and promiscuous -- ask your average girl. A library is the same, respectively under the GPL and LGPL. In one case, you have to be friendly back, and show interest if you expect any favours; in the other case, you can get away with almost anything (nymphomaniacs )

True, most developers release under GPL because they see everyone else do it, and don''t understand it. But others do it because they want to keep their rights, and not get abused anally by some megalomaniac hobby coder. GPL does a great job of that.





Artificial Intelligence Depot - Maybe it''s not all about graphics...

Share this post


Link to post
Share on other sites
I suppose I may have been taking the concept into the wrong light; from the start I was comparing nGPL''d projects to copyrighted free libraries (which mine tend to mograte to once they''re complete).

For example, one of the prominent ones would be DirectX; Microsoft devises a catch-22 whereby their DX product is free to use in your own applications, however its use propogates Microsoft''s intentions of extending peoples'' use of the Windows platform by limiting the end-product game to it. Same for EAX (limitation to EAX-compatible Sound Blaster hardware, which are mostly produced by Creative).

So where does one draw the line between "innovation" and "innovative use of someone else''s work"? There doesn''t appear to be as many of the latter as the former in the PC- and game-development-world. (By this, I mean something that is not based on a previous work.)

One must also be careful of considering making reference to being "forced" to license anything under GPL (as per AP above); it''s a matter of personal choice, not predetermined destiny.

In all honesty, I would rather have access to a closed-source project that is author-copyrighted but free from royalties, than self-propogating pseudo-freeware. It just makes sense to me to be able to make a living off my ideas that I put into code which results in a final project ... even if the ideas appear as "innovative use of someone else''s work". Game developers have been doing it since the dawn of APIs.



MatrixCubed
http://MatrixCubed.cjb.net

Share this post


Link to post
Share on other sites
quote:
So where does one draw the line between "innovation" and "innovative use of someone else's work"?

This is a hairy topic in copyright laws, not only open software licenses. My take on that is this: it's all innovation -- there's no line drawn. However, how much you gain from it (money and reputation) depends how much innovation you bring to the library. If there's a lot of new stuff you'll get appropriate credit, while small innovations will get you smaller ammounts of respect.

quote:
In all honesty, I would rather have access to a closed-source project that is author-copyrighted but free from royalties, than self-propogating pseudo-freeware.

You've still got completely the wrong end of the stick; a closed-source model implies you don't have access to it! Also, GPL is royalty free and the author still has the copyright, but not necessarily free in price (freedom != zero cost). Besides, people actually have to agree to the terms to distribute GPL'd code, it's not self-propagating...

quote:
It just makes sense to me to be able to make a living off my ideas that I put into code which results in a final project...

First, if your ideas are that great, then get in touch with the project admin. You may work out something. If not, then either start your own project (since you have great ideas) or sell your add-on... GPL doesn't stop you from doing that. I don't see your problem.

You really need to read up more about the fundamentals and implications of open-source...

[edited by - alexjc on June 24, 2002 2:46:30 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by a person
they CANNOT legally distribute the code/executable to hwoever they wish and would be breaking the law just as if you were to keep your code closed source while still using GPL code.



That's incorrect, actually. One of the major points of the GPL is that anyone is free to modify and _redistribute_ the source in any way they see fit, so long as they comply with the GPL.

Here's the relevant GPL section:

quote:

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)





[edited by - cheesegrater on June 24, 2002 9:35:18 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by Oluseyi
Yeah, but who in their right mind listens to RMS anyway?


He is loud enough to make himself heard, no matter if there are anyone who wants to listen.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
The part that bugs me is that if I make a game that uses a GPL''d library, I must then release the game source. My game code has nothing to do with that library. I wish that only if the library is modified do I need to release the source to the library. If an entire program is GPL''d though, then anything which uses source from that program should definitely be released.

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
The part that bugs me is that if I make a game that uses a GPL''d library, I must then release the game source. My game code has nothing to do with that library. I wish that only if the library is modified do I need to release the source to the library.

You''ve just described the LGPL (SDL, OpenAL).

quote:
Orignal post by alexjc
...a closed-source model implies you don''t have access to it!

Depends on how you define "access". Closed-source may mean no access to the source code (traditional meaning), or it may mean no rights to modify and/or redistribute the source (Open Source-influenced meaning).

Share this post


Link to post
Share on other sites
The fact that the now dead Loki Software was using SDL and OpenAL to port Windows games to Linux, and still sell them and not release the code made me think, well, if they dont get sued, that means they''re making proper use of the GPL software, what stops me from doing like they did? thats when I learned about the LGPL, to me a very fair license.

Share this post


Link to post
Share on other sites
MatrixCubed - My thoughts pretty much mirror yours. The only statement I'd take exception to is the "No Income" one, as releasing your program's source hardly discourages people from paying for it (with the possible exception of development tools and libraries). After all, a vast majority of people don't even understand what a compiler is, much less how to use one. I also doubt that GPL-licensed libraries allow for more rapid game development than their commercially-licensed competitors. In fact my own experience has been quite the opposite, with commercial tools providing far superior documentation, support, and general ease-of-use (but then that's to be expected =).

I strongly agree with the feeling that the GPL takes a good idea and carries it entirely too far, but as others have mentioned it's hardly the only "cut-and-paste" license agreement available. I do find it unfortunate that so many programmers have chosen to release their source code under such a restrictive license, but that is their right, just as it's my right to never use their contributions (a right I exercise quite liberally ^_^). Since I know someone's going to flame me for associating the adjective "restrictive" with the term "GPL", I'd advise them to first read through www.gnu.org/licenses/gpl.txt and then look up the word "restrictive" in any standard dictionary. Yes, the license is extremely restrictive by any definition of the word and yes, I do appreciate the irony inherent in that.

Edit - I just realized you were refering to GPL'd libraries in your "hard to make an income" statement, while my counter-argument only applies to end-user software. I do see how it would be difficult to charge a programmer money for something he can legally get for free. Goodwill-based donations are a great way to make a little cash on something you'd gladly give away, but generally don't make a very sound business plan (unfortunately).

[edited by - ramius on June 25, 2002 7:56:23 PM]

Share this post


Link to post
Share on other sites
quote:
they're making proper use of the GPL software

They have to release the code to those who buy the binaries, or at least make a written offer to do so. Generally, customers are not the people most interested in the source, so it works out for the company... but if I (as a competitor) want their code, all I have to do is buy their product. That sounds right.

quote:
associating the adjective "restrictive" with the term "GPL"

That's true, but I believe the license is more than fair. If you don't like it, just develop your own code! It's all about outweighing the benefits. Having issues about an open license is usually a sign that it's not suited to your library code...


[edited by - alexjc on June 26, 2002 6:34:16 AM]

Share this post


Link to post
Share on other sites
quote:
If you don't like it, just develop your own code


My thoughts exactly. It would be nice if programmers were more generous with their code (by releasing it under less restrictive licensing agreements), though I'd probably end up writing my own versions anyway. I'm one of those people who doesn't like fighting another programmer's coding style (and I'm not just talking formatting).

On a similar note, does anyone know what pre-made licenses would be best suited for the following:

- Author maintains full rights to the original source code.
- Any developer can choose to download, use, or distribute the original source code for use in any project, commercial or non-commercial, so long as credit is given to the original author.
- Any developer can modify the original source code for use in any project of which that programmer is a member, so long as credit is given to the original author.
- No developer can distribute modified versions of the original source code via any means other than that of compiled binaries containing said code. (This condition could be overruled by the original author on a per-case basis.)
- Author reserves the right do deny any or all rights granted by the license to any person without need for justification.

These are the basic terms I'd like to use when releasing my own work to the programming community. I personally think they're much more "fair" than those stipulated by the GPL, while providing much of the same protections against misuse by a third party. (The original author could abuse them all they wanted, but hey, it is their code. ) While I have seen similar rights and restrictions layed out in various custom tailored licensing agreements, it would be nice to find some legally proven general-use text that allows for the same thing.

[edited by - ramius on June 26, 2002 2:42:52 PM]

Share this post


Link to post
Share on other sites
I would never freely distribute MY source code after working on it for so long, but some people do.

Since it is _their_ source and they are letting you use it, it is only fair to follow the guidlines they set by not stealing it.

If you don''t like the license or the programming style, just take the time and rewrite it yourself with the knowlagde you gained from looking at their source

Share this post


Link to post
Share on other sites
Ramius, I doubt you''ll find a license that matches those terms. That''s not free-software, since the distribution of the code is highly restricted. I think licenses are OPEN too, so just cut and paste clauses from other licenses as you need them!

Cybertron; I''ve been working on a research project for over a year, and I''m planning to release the code under GPL -- with an extra clause for non-commercial use (making it incompatible, admittedly). The time I''ve spent on it implies I do want people to at least contact me about it if they plan to make money, but I greatly encourage the filtering of my hard-earnt knowledge into the community (since people aren''t likely to read my dissertation anyway). I would appreciate some credit if my work was used as inspiration though, and that''s something no licenses can guaranteee, and a legitimate concern.

Share this post


Link to post
Share on other sites
quote:
Original post by Ramius
On a similar note, does anyone know what pre-made licenses would be best suited for the following:

< Terms omitted >

Try BSD. It''s a very much commerce-oriented license. You should also look as the Sun Community License and the Mozilla Public License (all available at The Open Source Definition.

quote:

- No developer can distribute modified versions of the original source code via any means other than that of compiled binaries containing said code. (This condition could be overruled by the original author on a per-case basis.)

Most similar licenses state, instead, that no developer can distribute modified versions of the original source code in source form without contributing the modifications back into the public domain. Some go a little further and preclude any form of distribution of modified source unless the modifications are made public (see above-mentioned license, LGPL).

The last clause of your contract, of course, is one that I doubt many developers will find attractive.

Share this post


Link to post
Share on other sites
quote:
Original post by alexjc
"they''re making proper use of the GPL software"
They have to release the code to those who buy the binaries, or at least make a written offer to do so. Generally, customers are not the people most interested in the source, so it works out for the company... but if I (as a competitor) want their code, all I have to do is buy their product. That sounds right.



Thats true with the GPL, not the LGPL SDL uses, which was the one they were using.

The way I see it is this:

Software A is GPL, if you find A to be useful, you can use it, you have the option to make a donation to the project, if you find "A" useful, but lacking features you need, you can develop those features in yourself, and you can distribute (for free or with a price) the Application A+ you developed, you can distribute the source on the same media or you have to offer the source to whoever wants it, most good will people add the features and submit them to the mantainers so the features are added to the official A app we are talking here, thats their "donation" since they found the software useful.

Now LGPL (i.e. SDL, DevIL,OpenAL)

Software B is LGPL, its is not an application, rather it is a library, the building blocks for applications. if you use B as is in your app, you have to include at least a link to a place where the user can get the source code for B, so he/she could recompile it if needed or even make changes to it, you do not have to give away your application code if you dont want, you can charge for your app just as if you didnt used the library B, however! if you link statically to B you have to distribute your object files (.o, .obj) so someone else can link their changed Lib with your app, and well, if you yourself make changes to B (for example if you find a bug), you have to offer those changes or just give it back to the B project mantainers. Your good will may move you to donate to project B some money when your game hits Game of the year .

Share this post


Link to post
Share on other sites
quote:
Since it is _their_ source and they are letting you use it, it is only fair to follow the guidlines they set by not stealing it.


Very true. Just so everyone knows, I am NOT endorsing the violation of any licensing agreements. I''m very much of the opinion that a person is entitled to the fruits of their own labor (within reason), and thus the original author of any piece of IP has the right to restrict or allow use of their work as they see fit.

quote:
That''s not free-software, since the distribution of the code is highly restricted


Well, I guess that depends on one''s definition of "free software", as anyone could use my code for any purpose without charge and without my prior consent. I''m only resricting the distribution of modified versions of my code in an attempt to maintain some semblance of control and consistency. I really don''t want somebody adding 10 hours of work to something I''ve literally spent hundreds on and then releasing the whole package in its entirety. Enough people do that and there''ll be several dozen "versions" of my project floating around the web. Now I should mention that I wouldn''t have a problem with someone releasing just their modifications if they can be easily seperated from my official code (via class inheritance or dynamic code linkage for example).

quote:
Try BSD. It''s a very much commerce-oriented license. You should also look as the Sun Community License and the Mozilla Public License


Thanks. I''ll definitely take a look at those.

quote:
The last clause of your contract, of course, is one that I doubt many developers will find attractive.


Probably true, but hey it''s their loss, not mine. I should note that the major project I would like to release to the programming community at large (advanced tile-based game engine w/ tile, sprite, and level editors) is completely OO and available through a collection of DLLs, so any decent programmer will be able to completely isolate most modifications (assuming I do my job right ), allowing distribution of their code. It''s still several months away from completion, so I''ll have time to custom-build my desired license if I have to.

Share this post


Link to post
Share on other sites