How does Blender's GPL license effect the game engine?

I’ve been using Ogre primarily because it’s the only free graphics engine I can find without necessary functions (real time shadows, render to texture, etc.) disabled and it uses the one open source license I can actually understand.

Last week my brother pointed out that Unity now has a free version so I’ve been trying it out. After using it I fell in love with the simplicity of the WYSWYG editor, not having to wait minutes for the project to rebuild after making small adjustments, and the ease of physics integration. In fact, I can’t even motivate myself to go back to my Ogre/Havok combo, which is just staring at text until it’s time to test.

But to get what I consider basic functionality (real time shadows and render to texture) I have to pay $1500 when the only reason I even have a computer is because I did $1100 worth of work for my brother to pay off the $450 computer he built me.

So after noticing that sun lamps now cast shadows in the game engine and finding ways to get RTT into the game engine I decided to seriously look at the Blender game engine for the first time since… I don’t remember how long it’s been but UV mapping was done by pressing the F key in object mode so it’s been quite some time.

But the same thing that drove me away from it then is on the verge of driving me away again, and that is trying to figure out the license. Now I know the player is GPL, as is Blender, but if I understand correctly once you render out an image or animation or export a mesh for use in Unity or Ogre the images, animations, and models are under whatever license you choose to release them under.

But what about games made in Blender? Now I don’t have too many problems with GPL. Doesn’t bother me one bit if the end user wants to mod the crap out of it until none of the original artwork remains. To me it’s like buying a chair, deciding you don’t like the color, and painting it. The problem I do have with it is a big one. From what I understand if something’s released under the GPL license you can technically and legally sell it but the end user has full distribution rights.

Let’s say I make a game, doesn’t matter the game engine but to keep it generic we’ll say the entire thing was done with the DirectX SDK, and release it as open source but charge $2 per download. One user can buy a copy then legally put it on his website for free download, essentially meaning no one ever needs to pay for it again if I understand correctly.

That’s not really a model I can afford since I’m just doing this to get a bit of pocket change. In fact, if 100 people buy it that’s 4 tanks of gas and considerably more successful than I anticipated but if it’s released as open source 99 of those people could download it from the first customer, meaning I wouldn’t even be able to afford a gallon of gas.

So does the license mean that I just have to give them access to Blender (and by extension the Blender player) if requested (links in the documentation, etc.) or does that mean that all intellectual property in the game (models, textures, audio) becomes GPL?

http://wiki.blender.org/index.php/Doc:2.6/Manual/Game_Engine/Licensing

There is a small caveat that might let you make your game, but you have to make sure your blend you circulate with the game is copyrighted so you don’t lose profits as you describe.

Im not sure if Im correct on this, but will executing your game as a ‘runtime’ (so you have all the necessary files in the folder) then deleting the .exe , adding your .blend (your game) and making it run through the blenderplayer with a simple .bat file
(you write in notepad or something, and just name it MyGameExe.bat) stating:

“blenderplayer.exe MyGame.blend”

still make it GPL licensed?

.blend file not included in application file = no GPL

so it is still GPL… Ok. Thought since everything in a .blend is your intellectual property, running it from a thirdparty (.bat) would do the trick. Kk,

Of course, you could make games and sell them. :slight_smile:

Did you not misunderstood each other? I am confused.

(Just wanted to point that out in case gmDannz has misunderstood the concept, but I am not sure)

Indeed. If it is not INSIDE the GPLed file (blenderplayer+blend) it is NOT infected by this file.

Therefore the batch/commnd/shell skript is a very good solution.

Wait wait, I think we all need a hard confirmation on this, lol. So my solution does not necessarily make it GPL licence. Meaning you CAN copyright it if you wanted?

It is reasonable to consider the blend player an ‘interpreter’ and the blend file as something interpreted. The GPL does not infect interpreted programs with the license of the interpreter, nor does it infect the interpreter with the license of the program.

When the program (your blend file) is embedded in the interpreter (the blend player), your problem is that they are not two distinct things. But when they are two distinct things, even if you package them together in the same zipfile/installer/whatever you have complete control over the part you authored, and you can distribute the bundle as long as you provide all the blender/python/library licensing information.

http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL

Yes.
You can copyright/ license a extern loaded .blend-File if you want.

(But you can’t if there is a script in it, which says something different. E.g. you’re selling the game and there is e.g. a movement-script in it, which doesn’t allows commercial use.
If there is a script in it, which requires a original author attribution you have to do this e.g. in a text-file named “Credits” or “License”)

According to the way the GPL is set up for Blender, any scripts that are used along with the .blend file itself is considered ‘data’ and is not subject to the GPL. Any required adherence to the GPL depends on if you’re using someone else’s module or script and they decided to give it a GPL license.

The only reason that the Blenderplayer leads to your game being affected by the GPL is because it’s in part a copy of the Blender code, this can be worked around by using something like BPPlayer (which has so many layers of encryption that its no easier to hack into than the average commercial game).

According to the way the GPL is set up for Blender, any scripts that are used along with the .blend file itself is considered ‘data’ and is not subject to the GPL.

That is a just how copyright works in general for software, otherwise it would be a foregone conclusion that any presentations you made with PowerPoint would be the legal property of the Microsoft Corporation :p.

While there is mention of this in the blender license agreement, I would assume it is more for the understanding of the user than something that is legally necessary to include. See: http://www.gnu.org/licenses/gpl-faq.html#GPLOutput

As others have mentioned, if you don’t want your game to be subject to the GPL, you need to keep everything in external files and load them from a simple launcher exe. But that’s not a bad thing at all. The only sane way to organize a large game project is to split it up into many files, and link them together at runtime. To try and make a complex game all within one .blend file would be sheer lunacy.

YES. This is what we wrote.

You have two (or more) files. Each file has it’s own licence.

The blenderplayer (as one file) is GPL with everything inside this file.

I’m confused about scripts. My understanding was that any code that linked a GPL code was infected. This would mean that if you did something like,

//psuedo c code mean to be python (I don’t know python syntax)
#include BGE

bge.getplayer();

Well, you just linked a GPL library, congrats your code is GPL. I’ve even heard that if you link 3rd party libraries in your python script that in turn link GPL code that your 3rd party libs become infected, for example.

#include <bge>
#include <mylibrary>

mylibrary.savePlayerData( *bge.getPlayer() );

Now my proprietary C library links GPL code and is infeted?

Depends if it is static bound or dynamically bound.

There are different opinions if using a python code library infects the using code. In my opinion it does not as it uses an interface (e.g. buying at a shop does not make you a shop employee).

Others say you share memory = infected.
I fond this: https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL the term to look for is “GPL-compatible license”.

If you write a C-library this belongs to you: https://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL

Be aware: this is not a legal advice