26
\$\begingroup\$

DISCLAIMER I don't pretend to know anything about licensing. In fact, everything I say below may be completely false!

Backstory:

Recently, I've been looking for a decent game engine, and I think I've found one that I really like, Cafu Engine.

However, they have a dual licensing plan, where everything you make with the engine is forced under GPL, unless you pay for a commercial license. I'm not saying that it's a bad engine, they even say that they are very relaxed about the licensing fees. However, the fact that it even involves the GPL scares me.

So my question is basically, how does one escape the GPL.

Here's an example: The id Tech engine, also known as the Quake engine, or the Doom engine, was the base for the popular Source engine. However, the id Tech engine has been released under the GPL, and the Source engine is proprietary. Did Valve get a different license? Or did they do something to escape the GPL? Is there a way to escape the GPL? Or, if you use GPL'd source code as a base for another project, are you forced to use the GPL, and make your source code available to the world. Could some random person take the id Tech engine, modify it past the point of recognition, then use it as a proprietary engine for commercial products? Or are they required to make it open source.

One last thing, I generally have no problem what-so-ever with open source. However I feel that open source has it's place, but that is not in the business world.

\$\endgroup\$
6
  • 3
    \$\begingroup\$ You answered your own question with the quote you provided. Also, Source (HL2) was not based upon Quake. You're thinking of GoldSrc (HL1). \$\endgroup\$ Commented Aug 19, 2012 at 13:47
  • \$\begingroup\$ It's a shame this has been voted down because the question is clearly answerable and has several accurate responses. \$\endgroup\$
    – Kylotan
    Commented Aug 19, 2012 at 18:49
  • 1
    \$\begingroup\$ Ask your lawyer, and for that matter ask the company who makes the engine, but as I understand it for game engines, the GPL may only apply to the code and any modifications you made to it, and not your other assets [such as maps, sounds, art, and so on]. Why isn't that acceptable to you? \$\endgroup\$
    – Random832
    Commented Aug 20, 2012 at 4:36
  • 1
    \$\begingroup\$ You might as well ask how you can steal source code from Microsoft and get away with it. You have two options and two options only: play by the rules the owner of the code stipulates with his license(s) and/or fees, or go use something else. \$\endgroup\$ Commented Aug 20, 2012 at 20:56
  • 3
    \$\begingroup\$ "However I feel that open source has it's place, but that is not in the bushiness world." But you think just using someone's code and neither paying for the commercial license nor accepting the terms of the alternative one has its place in the business world? This is not so much business as theft. Not that this hasn't happenened in the business world often enough... — It seems like you really do want open source (understandably) from the programmer's point of view, but have a rather dogmatic aversion against it from the monetary point of view. Well, these views aren't compatible. \$\endgroup\$ Commented Aug 21, 2012 at 9:24

10 Answers 10

31
\$\begingroup\$
  1. If you hold copyright on source code, you can release that code however you like. Releasing it under GPL does not preclude a release under another non or even more restrictive license. I am not sure of the particulars of Source/id Tech but would suppose that Valve negotiated their own license.

  2. If you use GPL code in your project, you are required to provide the source code to the users. This does Not mean you are required to run a website or keep a copy of it to provide on demand. This does Not mean that you are required to make all changes public as soon as you make them - it is only when you redistribute the software, that the code and the changes you make go with it. (http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic)

  3. If you use even a line of GPL code in your project, you are now bound by the terms of the GPL. One (though not the only way) is to release your code under GPL as well (or don't release it at all).
    If you modify it past the point of recognition and do not abide by the terms, you will probably get away with it (i.e. you won't be sued) but just because you'd get away with it doesn't mean you aren't in violation of the license, or make it right.

  4. To use 'GPL'd code' without GPL you have to get it under another license, so that its no longer 'GPL'd code' (by paying Cafu). There is no way out of the GPL - it was designed specifically to be a viral license by its inventors and its purpose would be negated if it were possible.

That said, if you want to use GPL code in your program, you could create a standalone entity that your application utilizes (whether dynamic linking satisfies this is debatable - but generally it's accepted that when the result is a single program, the GPL is invoked). So for example, you could create a new project with GPL code and yours, that you release with your (proprietary) application, along with the GPL and source code. Your application communicates with it however via CLI or RPC and therefore can remain free of the GPL.

Nowadays many developers adopt LGPL, which allows linking in most of its forms without GPL transferring to the destination project. (If you modify the library itself however, you must still provide the code of the library.)

Note that further to Point 2, it is considered polite to publish any improvements you make to open source code, regardless of the license.

\$\endgroup\$
11
  • 12
    \$\begingroup\$ If you use even a line of GPL code in your project, your project is now under the GPL license. No. If you use a line of GPL code, your project falls foul of the GPL license, and whoever wrote that line can sue you. One possible remedy is to release your project under the GPL, but that does not automatically happen. \$\endgroup\$
    – TRiG
    Commented Aug 19, 2012 at 23:38
  • 3
    \$\begingroup\$ (This still does not stop you from selling it or releasing under a less restrictive license in addition to the GPL...) Yes, it does. If I release code under GPL, someone else can't come along and just put that same code into (say) the public domain. I still own that code; I only made it available to others on the conditions of the GPL. \$\endgroup\$ Commented Aug 20, 2012 at 4:44
  • 4
    \$\begingroup\$ Despite some minor inaccurances, +1 because it mentions the most obvious, easiest, quickest and most widely approachable solution: To use 'GPL'd code' without GPL you have to get it under another license. Contact the copyright holders, negotiate a different licence. This obviously works for any other licence too. \$\endgroup\$ Commented Aug 20, 2012 at 5:02
  • 13
    \$\begingroup\$ This answer, and all comments miss one important condition: GPL conditions apply to distribution, not use. If you use a thousand lines of GPL code in your internal tooling (which you don't distribute), then still you are not bound by the GPL terms. \$\endgroup\$
    – MSalters
    Commented Aug 20, 2012 at 10:02
  • 1
    \$\begingroup\$ "you will probably get away with it". Hmmm I just love that warm and fuzzy feeling I get from this answer. \$\endgroup\$ Commented Aug 20, 2012 at 12:52
70
\$\begingroup\$

You escape the GPL by paying the developers for a commercial license.

\$\endgroup\$
6
  • 31
    \$\begingroup\$ +1, I think Captain Obvious is somehow not registered on stackexchange :) \$\endgroup\$
    – teodron
    Commented Aug 19, 2012 at 13:46
  • 1
    \$\begingroup\$ +1, although to be more accurate you secure permission to use the code without the GPL. It doesn't necessarily mean you have to pay (although it often will). \$\endgroup\$
    – Kylotan
    Commented Aug 19, 2012 at 18:48
  • 1
    \$\begingroup\$ not really, you are saying this like there always will be a commercial alternative for each GPL license on earth; it depends on what is the strategy of the owner of that code. \$\endgroup\$
    – user827992
    Commented Aug 19, 2012 at 18:52
  • 4
    \$\begingroup\$ I would say "You escape the GPL by paying the developers for a commercial license, thus giving them an adequate share of the money you hope to make as a reward for the many person-years of effort that they put in writing it". \$\endgroup\$ Commented Aug 20, 2012 at 1:25
  • 1
    \$\begingroup\$ Nearly, "You escape the GPL by paying the developers for a copy of the code that does not have GPL encumberance (something like MIT)." \$\endgroup\$ Commented Aug 20, 2012 at 7:18
12
\$\begingroup\$

You're basically asking "How do I steal someone else's code?" If you want to use someone's copyrighted code, you have to get a license from them. If the only license you have from them to use their code is the GPL then you must abide by it or you are violating their copyright. If you can get them to give you a different license for their code then that is fine, but you don't escape the GPL.

\$\endgroup\$
5
  • 3
    \$\begingroup\$ -1. You do escape the GPL: because they give you a completely different license. You are not stealing their code either - if you go through the steps that they ask you to (e.g. paying money). \$\endgroup\$ Commented Aug 20, 2012 at 7:19
  • 7
    \$\begingroup\$ No, in that case your use of their code has absolutely nothing to do with the GPL. Escape implies being trapped by something. \$\endgroup\$ Commented Aug 20, 2012 at 16:22
  • \$\begingroup\$ @JonathanDickinson I think his point here is that the OP doesn't seem to want to pay for a license. He wants to get it for free, but without the GPL restrictions. \$\endgroup\$
    – Paul
    Commented Aug 20, 2012 at 16:47
  • \$\begingroup\$ This made me gravitate toward the encumbrance (instead of stealing) "However, the fact that it even involves the GPL scares me." It sounds more like (well founded) fear of the GPL banner hanging over the code. \$\endgroup\$ Commented Aug 20, 2012 at 20:54
  • 3
    \$\begingroup\$ @Jonathan. The OP says that zie knows nothing about licenses, so I suspect hir fear of the GPL is not "well founded". \$\endgroup\$
    – TRiG
    Commented Sep 3, 2012 at 15:32
9
\$\begingroup\$

Do you actually need to escape the GPL? All the GPL requires you to do is release your own source code under the GPL. It does not apply to game levels, art assets etc. You can still sell your game and make the code available via the GPL to people who buy it if they want it, or make it available online to everyone.

The only issue is if you want to use third-party non-GPL libraries, as then you won't be able to distribute them along with your GPL engine.

If you do need to escape the GPL, look at their licensing page they sound flexible enough that you should be able to come to an agreement.

\$\endgroup\$
1
  • \$\begingroup\$ I agree with this answer, especially since most people don't really add that much additional value when using an engine. It's the other assets that is really where the value is. \$\endgroup\$
    – Paul
    Commented Aug 20, 2012 at 16:50
5
\$\begingroup\$

There are a lot of misunderstandings about what the GPL actually is and actually means, and I'm detecting one in your question:

everything you make with the engine is forced under GPL

That's actually not the case at all. The engine source remains under the GPL for sure, but it pays to have a read of the GPL FAQ, particularly the parts of it that relate to the output of a GPL program, which I believe are relevant here: http://www.gnu.org/licenses/gpl-faq.html#GPLOutput

Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require that these designs must be free?

In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert his own data, the copyright on the output belongs to him, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.

So the only way you have a say in the use of the output is if substantial parts of the output are copied (more or less) from text in your program. For instance, part of the output of Bison (see above) would be covered by the GNU GPL, if we had not made an exception in this specific case.

You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.

This changes your situation quite a bit. You're not actually in a position where any content you develop for or with this engine also falls under the GPL; that content is yours, you own the copyright for it, and you can license it as you wish.

IANAL, etc

\$\endgroup\$
3
  • 2
    \$\begingroup\$ I don't know anything about the specific engine, but the above is only true if the engine takes your game designs and produces a standalone game as a result. If the engine itself, or part of it gets distributed with the game, or linked into the code of the game, the GPL applies to the whole thing. \$\endgroup\$
    – rjmunro
    Commented Aug 20, 2012 at 21:40
  • \$\begingroup\$ I believe that it's quite possible for an engine to be GPL but game content to not be. Game content is not code and does not get "linked to" the engine in the same way as code does; maps, textures, models, etc don't get linked to the engine in this way. Unfortunately the GPL FAQ is unclear on this (which is a valid reason to want to avoid using the GPL). \$\endgroup\$ Commented Aug 21, 2012 at 8:13
  • \$\begingroup\$ This answer describes more what happens with content produced with some GPL tool. Like a document written in a GPL text editor will not be forced to be GPL. But this cannot be translated to a game engine. A game engine doesn't take code and produce some stand alone game with no relation to the engine - you will include all the engine in your game. \$\endgroup\$
    – Matsemann
    Commented Aug 21, 2012 at 11:09
4
\$\begingroup\$

Only the person, the group of people, or the activity that owns the code can change its own license.

If that code is yours you can change license every time you want, decide to be payed or not, you can do what you want, but if the code it's not yours you stick with the license if you want to avoid troubles; big troubles.

The owner can also refuse to accept to be payed, it's a situation like the one that you have with the patents, if you can prove that you own the code doesn't mean that you are putting it on the market for money, many many times the patent or the license is supposed to force the market or the user to stay in a confined space.

The answer is no and the only way to change the license is hoping that the owner will do that.

\$\endgroup\$
1
  • \$\begingroup\$ Quite good as a general answer - however in this case it's apparant that they do accept payment for copies of the code with a different license. +1 (I also give more general answers :) ). \$\endgroup\$ Commented Aug 20, 2012 at 7:20
4
\$\begingroup\$

The idea is simple - if company wrote the code, it thus owns all the rights, and thus it can give it to some parties under GPL license, to others under commercial license, and to someone else they can give it as a gift, or rent, or whatever they want.

The fact that they provided the code to some party under GPL, places GPL restrictions on that party, but it can place no restrictions on code owner.

Only, if code owner used in their software some 3-rd party GPL code, written and owned by someone else, then their whole project is locked into GPL forever (or until they remove this 3-rd party GPL code or obtain a non-GPL license for it). Please note that that the same is equally true for no-GPL, 100% commercial engine - if they happen to include some GPL code, they violate GPL, have no right to sell commercial licenses and you have no right to buy such license.

Thus, if all the code in the "Cafu Engine" is written by Cafu staff, you have no problem with the GPL. If you get a commercial license from Cafu, then the GPL license does not apply to you at all.

\$\endgroup\$
0
2
\$\begingroup\$

There's one way to "escape" GPL or (practically) any other license. Make a clean-room implementation.

Hire two groups of people. The task of the first group is to study the original material in minute detail and describe it. The second group, who never, ever get to see the original material, will write a new implementation based on the description.

This is how BIOS on original PC clones was created; the BIOS was the only bit IBM didn't let other people copy.

This doesn't mean that you're safe from lawsuits.. patents and "look and feel" crap is still out there, and at least in the US, anyone can sue anyone for no particular reason (or at least it seems so..)

\$\endgroup\$
1
\$\begingroup\$

Regarding the question about the Quake engine: code can be released under GPL and also under other licenses. Valve licensed Quake by paying money to iD. Later, everyone in the world was granted a GPL License (sic) to use the Quake source code. When iD GPLed the engine, they didn't retroactively convert other licenses to GPL; that would be impossible. In fact, iD can still license the Quake engine under a different license if they wish, as they own the original copyright.

\$\endgroup\$
-1
\$\begingroup\$

You don't if you're being ethical. You're harming the development team. At the very least, you probably cannot get around the GPL, and if you close source your code you'd owe the developers any profits earned from their code.

\$\endgroup\$
2
  • \$\begingroup\$ This answer provides a judgment / opinion without attempting making a case for itself. The same guidelines for subjective questions apply here - a good answer should be be constructive. Please edit to explain why/how attempting to escape the GPL is unethical within the context of the question posted. \$\endgroup\$
    – Pikalek
    Commented Jul 20, 2021 at 18:27
  • \$\begingroup\$ It's constructive. He's trying to undermine the GPL. \$\endgroup\$
    – ZeroPhase
    Commented Jul 28, 2021 at 1:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .