# Alternatives to the GPL

I made a game, and I am currently making a game engine. I want them both to be completely free and open source. What license should I choose? I was reading a bit on GPL, but that seems to be more suited for system code and libraries, AFAIK, as it doesn't permit the use of code for proprietorial software - which, in turn, implies that the code can be used in the first place. I can see that, obviously, game engines can be considered libraries, and therefor be used, but what about game code?

Is there an alternative to GPL?

• Do you know about LGPL ? p.s. You can license game code, game engine code, game art with separate licenses. – edin-m Jun 30 '12 at 19:03
• Yes, I just read about LGPL, I'll use that! – jcora Jun 30 '12 at 19:04

First off, this isn't legal advice and I'm not a lawyer.

There are tons of opensource licenses: http://www.opensource.org/licenses/alphabetical, and you have many different licensing options. Here's a super brief run down of popular license options... I may have gotten some details wrong.

GPL doesn't allow your code to be used in a project that is closed source (proprietary). You should only use the GPL license when you want to force anyone else who uses your code to have an open source project as well. Specific to your question, licensing your engine under the GPL would probably turn a lot (the majority) of people away from using it.

LGPL allows your code to be used in a project that's closed as long as they don't directly include your code in their project, but link to your code as a dynamic library instead. The project maintainers are also required to make any changes they make to your library available (so any bug fixes, etc need to be made available as open source). The linking issue has important consequences -- afaik technically you shouldn't be using LGPL'd code in a closed project on iOS for example, since they only allow static linking.

BSD allows your code to be used in a closed source project as long as proper attribution is maintained. There are some other specifics as well that try and absolve the author of the code from being liable for its use. This is a much more liberal license than any of the GPL ones.

MIT is very similar to BSD. Both BSD and MIT basically allow anyone to do practically whatever they want with your code. They aren't obligated to make any changes/fixes they apply back to you and can include your code in their project in any way they deem fit.

There are tons of other licenses. I suggest you check out the Apache license, Mozilla license, and the zlib license as they're in common use as well. Also check out the WTFPL :)

There are also important details between license versions, especially with the GPL licenses... so make sure you read up on those before choosing between LGPLv3 and LGPLv2.1 for example.

• If you're looking a the WTFPL license you might want to have a read of the DBADPL :) – Aesthete Jul 2 '12 at 4:03

The GPL is perfectly suitable for game engines, and data/content can be put under the GPL as well. In the case of data, the GPL simply has some clauses that don't apply.

Note that the GPL does not ban the use of your code/data in commercial projects. It is 100% legal to sell copies of modified GPL software - you simply must provide the source to the modifications or any other modules linked to the GPL code.

You might consider the more content-oriented Creative Commons licenses for your data. The CC licenses let you pick the exact "features" you want, including true non-commercial usage clauses if you want them. It's also feasible to use these licenses for code, as well.

All that said, purely in my own opinion I find it "anti-social" to use non-commercial or even GPL licenses. Projects like Lua, zlib, libpng, Box2D, Bullet, and so on are pretty key to the games industry and happily exist (and some even get funding) despite being very liberally licensed. Restricting what people can do with code only results in them rewriting something they might not have to; you don't get a dime from them either way, and at least with a liberal license you have a chance of building a reputation as being the author of critical components in popular games (which leads to great job offers).

• I'm only licensing it for the sake of licensing it. To get that "I completed this project" feeling. As I said, I'll license it under LGPL and I couldn't care less if people somehow managed to make money off my stuff, I'd actually congratulate them... – jcora Jun 30 '12 at 19:28
• I'll echo Josh Petrie and recommend the 2-clause BSD, MIT, or zlib licenses. The LGPL isn't even liked by its own authors, and is also unable to ever be used for XBox or iOS games (since users are denied the relinking ability by the platform). – Sean Middleditch Jun 30 '12 at 19:40
• Huh. I'm looking at the MIT license now. I'll think I'll use that. – jcora Jun 30 '12 at 19:42

There are many alternative to the GPL. For starters, there is the LGPL.

However, there are several other more permissive and straightforward open-source licenses such as MIT and BSD. OpenSource.org has a large collection of open-source appropriate licenses available for perusal.

In my opinion you would do well to avoid the GPL and its derivatives (LGPL), instead opting for the MIT or BSD licenses. The GPL family of open source licenses are extremely complex as well as viral, and as a consequence are hard to use correctly, by both licensees and licensors.

• Hey, thanks for that. I'll actually choose the MIT one, I think. How exactly do I license under that? Can I just put a license.txt in the directory? – jcora Jun 30 '12 at 19:45
• Pretty much, yes. – user1430 Jun 30 '12 at 21:13

The GPL is a so called "coypleft license" that means, everyone who uses it will have release their source code as well under the same license.

The GPL does not, in any way prevent commercial use, it does however prevent DRM and restrictions on "sharing" it. And most commercial entities won't even consider sacrificing that.

There is the LGPL which only applies to modified code and not to the whole project, e.g. a game could use your engine but still not be avaible under the LGPL.

There are many people who prefer non-copyleft licenses such as the MIT license, the BSD license or the zlib license. These make almost no restrictions, aka "Do whatever you want as long you keep this license note"

There is also a middle way: dual licensing. There are companies which release their library under the GPL or the LGPL (example: Qt) but for a little fee also give out a different more liberal license. So everyone can use it under the terms of the GPL, but if they need more they can pay for it.

• I think GPL isn't exactly copyleft. – jcora Jun 30 '12 at 19:47
• The FSF is actually the foundation that coined the term the most: with their GPL license. See en.wikipedia.org/wiki/Copyleft#History and gnu.org/copyleft/copyleft.en.html – API-Beast Jun 30 '12 at 20:25
• Small correction: "Everyone who uses it will have to release their source code" is incorrect. The GPL's requirements do not trigger on use, but on distribution. The GPL allows you to make any changes you want and keep those changes private, as long as you don't distribute them or derived works of them (compiled binaries, etc). – Trevor Powell Jul 2 '12 at 10:16
• Well, that "using" means distributing in this case is pretty self-understandable I think, in fact that's the only thing copyright can govern about. – API-Beast Jul 2 '12 at 11:40

Please use the Zlib license, or something similar, instead of the GPL. The Zlib is very liberal and allows developers to use your code in closed-source projects.

This will bring benefits for you, as developers will be more likely to use your engine if they know they can make money off of their project. You won't be losing anything by letting them profit, and they'll be more grateful and richer; thus, more likely to donate.

I'm currently using the Zlib license for a library I developed.

• That's cool, I use MIT now. – jcora Jun 30 '12 at 23:42

You may also want to take a look at the Apache License v2.0. It is similar to the BSD and MIT licenses in that there is no copyleft. It's differs in that it spells out its conditions EULA-style that the BSD and MIT licenses mostly imply, such as the grant of patent rights.