Converting the BGE files to some form of game data?

Is it possible or what would it take to convert the blender BGE files(data) to some form of game data in order to avoid the gpl license so that you could integrate your BGE project with outer platforms that dont support gpl?

Games created in Blender (.blend files) are program output and therefore not covered by the GPL. You can consider them your property, and license or sell them freely.
With stand-alone games however, any data that is included inside the actual stand-alone executable is covered by the GPL. If this is a problem then you should set up the stand-alone player so it reads from external .blend files. A common practice is to include a “please wait, loading…” scene in the standalone, and read level files externally.
The Blender standalone player or the game player can be sold commercially too, but you have to make it available under the GPL conditions.

Yes, but a .blend is easily reopened, another format, that was only openable with a software key, and a game player would be most usable for steam etc,

I am not sure how they handle it with other engines,

I am aware the point I was getting at though was that it’s not necessary to bypass the GPL like he asked.

Want to stop a blend being easily opened? Thre are many tricks you can use:

  • The game autostart option, so if someone opens you games blend, they just play it (caution, the same wil happen to you)
  • wrtite a python script addon packaged in you blend that finds the process running the blend and kills it. (If if you open it, it shuts blender as soon as its loaded.
  • encode the blend somehow (eg reverse the order of bytes), and then use the libload from data after decoding it.
  • package you whole game inside an encrypted zip. When the game starts, unzip it. When the game ends, delete it. If you extract to a sensible place (eg c:/temp on windows, /tmp/ on mac or linux) no-one will touch it for fear of mucking something up. You’ll be surprised how many games do this
  • In your game have a checksum of the data files, so the game refuses to start if the files have been tampered with.

interestingly, GPL came up in a discussion on another board I frequent. There someone said:

It is commonly thought that GPL requires you to publish the source code. This is not so. I have been involved in enough GPL violation cases to know that this is not so.

All you are required to do is offer to provide the source code to anyone that has bought the product (then provide it if they do). You may even charge a nominal amount to do so.

Most people these days just publish the code as this is an easy way to comply.

That last bit is interesting, though. You could just offer to provide the source for tens of thousands of dollars - some amount basically nobody would pay.

Does that mean I can carve the source into stone, and place it at the bottom of the sea, and give a GPS coordinate?

Really funny, BPR.

Yes, the decoding/decryption key has to be hidden somewhere. Ever heard of stenography? It’s the digital equivalent of hiding things in plain sight. Go dump the checksum/decryption key bytes in the image file for your games logo. Then some python byte-extraction to get it out. That python extracting it too visible? Hide the actual code extracting it in another file, and have the code in the game just execute code it extracts from a different file. That way the code in the executable simply appears to exec some random byte-string, and the code doing the extraction is hidden away from prying eyes.

Still too obvious? Figure out who’s going to bother. You can hide things further, but at some point, no-one can be bothered. The trick is simply not to document.

Hmm, I may have to play with stenography again. I wonder if you can merge a non-encrypted zip on top of an encrypted one to make a parcel you can read some of but not all of. That way the zip could contain it’s own extraction code. Raises some interesting ideas. Time to fire up cat and > and try…

Hmm, and i thought, that from programming perspective youll have to rewrite the blender player.

if you could do this for my google ad server for my game, I would be very happy
I intend the rest of the game to be open source,

if we could embed these in games and feed bge development…

You can enhance the blenderplayer to decrypt encrypted data. The (modified) blenderplayer will still be GPL. The .blend is still whatever licence you want. The decryption key is whatever licence you want too.

Just make sure to distribute in a legal way = do not bundle GPL and Non-GPL together (= bundled application file)

do not bundle GPL and Non-GPL together

Well thats just it! So what would it take to rewrite the blenderplayer, so that it could not be a gpl?

You’d basically have to contact each and every person who’s contributed code to Blender and confirm with them to change the license. It’s essentially impossible. Monster’s point was to keep the part you don’t want to be GPL, your blend file, separate from the blenderplayer.

You are not allowed “rewrite” the blenderplayer as non-GPL. Everybit in there is GPL. Every change you do to it becomes GPL as well. If you want a non-GPL blenderplayer, you have to write a complete new one (without even trying to use a tiny bit of code from the blenderplayer).

As said there is no problem to enhance the blenderplayer that allows .blendfile encryption/decryption.

GPL is not evil. It is a licence that regulates how to use the piece of software you got from someone else. Other licence (closed source) are much more restrictive.

Got it, thx for the info.

Maybe .pyc files from pycache folder?

A .pyc is the byte code that the Python compiler generates. Finally it is just your .py file … easier readble by the Python interpreter.

When I read this, I was thinking converting Blender data into BGE data offline, to speed up loading, rather than converting it at startup during runtime.