GameKit: new Blender game engine using Ogre+Bullet, DirectX/OpenGL,Mac,Linux,iPhone

Erwin
This game kit sounds promising. But will a full game made in blender be able to be compiled into a run time executable with this game kit, including python scripts and logic bricks?

Also, on the iphone thing you said python can’t be used directly, What do you mean can it or can’t?

By the way, thank you for working on an alternative to our GPL problem, keep up the good work.

Erwin
Will this mean the game kit will be able to compile a full game made in blender including python scripts and logic bricks into an run time executable?

Also, on the iphone thing python can’t be used directly, What do you mean can it or can’t?

By the way, thank you for working on our GPL problem, keep up the good work.:yes:

Sorry for the double post

Apple doesn’t allow script interpreters on iPhone, so no Python interpreter is allowed. But we might be able to compile Python scripts directly to C/C++ code with Unladen Swallow:
http://code.google.com/p/unladen-swallow/

I hope to get some logic bricks working in this GameKit.

One more solution is to keep the game scripts outside of .blend files, to prevent GPL contamination. But better is to have a special (non-GPL) license for the .blend files.

what is so GPL about scripts? it’s just code, right?

I’m sorry to say but I really think the Blender Foundations interpretation is flawed on python scripts. They either are or are not GPL from using Blenders internal functions, what they happen to connect to does not make any difference.

If linking did make a difference, then I’m confused as to how Blender can use the Microsoft redistributable without contamination it too and thus making Microsoft really mad.

what is so GPL about scripts? it’s just code, right?
That just the thing, I don’t think python is really code at all. It’s not compiled, but read by Blender, thus making it part of the programs regular output and not covered by the GPL.

I pose the Microsoft problem, which I assume has a good answer, to also show that just because a Python script may instruct the Blender Python interpreter to give data to and take data from a c/c++ module, that does not make the script or the c/c++ module GPL.

At a minimum, the script itself is not linking to the module because it is not even code and does not have the ability to link anything, let alone do anything.

the only microsoft’s stuff are the C/C++ runtime libraries, which fall into the “system libraries” exception in the GPL text.

btw, the revised Blender Foundation’s interpretation of the GPL was approved by the Free Software Foundation lawyers, in fact.

Yes I was just looking over the GPL again, its been quite some time, and I found that passage. I probably should continue this in a new thread.

But I still say that all the sentences that did not contain the word “Microsoft” are still hopefully valid.
Here they are repeated with some modifications.

That’s just the thing, I don’t think python is really code at all. It’s not compiled, but read by Blender, thus making it part of the programs regular output and not covered by the GPL.

At a minimum, the script itself is not linking to the module because it is not even code but instructions and does not have the ability to link anything, let alone do anything. Just like vertex positions and textures that tell blender what to display or how to function.
And to add another one.
Since the c/c++ module contains nothing that is derived from the program and is not directly necessary for the program to run (the GE still runs even if Python has an error regarding missing modules), the GPL does not cover it also.

But if FSF says that BF’s interpretation is correct…I must be missing something.

The BF explanation is very confusing or seems to contradict itself.

http://www.blender.org/education-help/faq/gpl-for-artists/#c2129

Statement A:

>>Anything you create with Blender - whether it’s graphics, movies, scripts, exported
>>3d files or the .blend files themselves - is your sole property, and can be licensed
>>or sold under any conditions you prefer."

This seems to imply that the GameKit, BSD/MIT/Zlib licensed C/C++code, can do whatever it likes with .blend files, and not tied to GPL.

Statement B:
>>OK is:
>>Author publishes a Blender script mixed with own code, under own license.

Strange but still ok. If .blend files are just fine, why discuss python scripts in particular. Statement A already gave permission to do whatever you like with Blender output. A python script we wrote is output embedded in a .blend file.

Now things go worse:

>>Not OK is:
>>Author publishes a Blender script, calling a compiled C library with own code,
>>both under own license.

Our .blend contains python scripts, both ok. But once executed in our GameKit, it is NOT OK???

Statement C seems to contradict and conflict with Statement A and B. I asked Ton for explanation.
Thanks,
Erwin

its not ok to run it INSIDE BLENDER (or using BOTH blender’s and the external library’s code), ie: making blender link to those libraries

This is really where it all is, the interpretation of this passage.
-------------1st argument
I suggest and assume first, that Python in no way modifies the program but is within “The act of running the Program”. I also assume that linking is not one of the activities “covered by this License.” I can then deduce that, since using Python is not covered by the License and linking is “outside [the License’s] scope”, linking external modules to Blender with Python is also “outside [the License’s] scope”. Also, if it matters, I would debate that linking is not really the right term to be used in this case.
-------------2nd argument
I would also like to note that the License only applies when the program is “distributed”. If the linking happens during run time (as with Python) and not during compile then the link version of the program has never been “distributed” and the License does not apply.

I really hope these are good.
Both arguments are completely separate and if one is proven wrong I do not believe it degrades the strength of the other argument.

I might go into Law…this is almost fun. :eyebrowlift:

EDIT:
I now also appeal to these passages:

Since, as I tried to prove, Python is not actually modifying the program before execution to connect it to the c/c++ module and with these passages just because the c/c++ module may be in the same “distribution medium” (a packet stream over the internet?), the module is still not within scope of the License.

Good news from Ton:

After some email conversations with Ton, he clarified the situation with .blend and python scripts, in relationship with Blender and my gamekit.

Translation:
“For your specific case, there is no problem at all. You can read .blend files, link against them etc.”

Translation:
“If you write a .blend with python scripts using Blender, and bundle them with your gamekit, and DONT call any Blender code, there is no problem”

So the GPL does not apply for .blend files or its python scripts, when used and/or linked with the ZLib/MIT/BSD gamekit.exe.

Only when we would directly link Blender with the gamekit.exe, the GPL applies. Note that we could still create some feature that starts the gamekit from within Blender using “exec” to start the separate gamekit.exe (for example when pressing ‘p’).

Hope this clears up the licensing confusion for gamekit.exe with .blend files/python scripts. Please keep licensing discussions related to Blender (and not gamekit) in a separate topic. This topic is just for gamekit.exe.
Thanks,
Erwin

Surprised at how much of the Dutch I could understand.

License issues are horrible… but it’s a good habit to just try to stick to the “spirit of GNU GPL”… which is mostly about “copyleft”; if you extend Blender’s code and want to spread it, you have to do that under a compliant license. That’s all. It just keeps Blender free to use for everyone, and prevents versions being spread with additional restrictions on Blender. Extending Blender with MIT/Zlib code is well possible BTW, since it’s compliant.

The scripts you make with Blender’s Python API and the .blend files are “just data”. And for as long it remains “just data” you can do what you like. Only if you extend Blender itself, via scripts, to other libraries, and you intend to publish that, it again has to follow the above “spirit”.

Erwin’s case is the opposite; he makes a new piece of code, and will only use the data export from Blender in it (.blend + scripts). For as long he doesn’t link to the blender binary, there’s no limitation other than the license Erwin chooses.

In case Erwin would integrate (like via Python or directly linking) his new engine with Blender, you again have to follow GNU GPL. But that will still keep his standalone player (+ blends + scripts) entirely outside of GNU GPL.

It’s complex, but makes sense, right? :wink:

I had the last version (rev 28) compiling in Linux, although I had to change one CMakeLists.txt in Irrlicht dir (changing CGUICheckbox.cpp and CGUICheckbox.h with CGUICheckBox.cpp and CGUICheckBox.h ) and file IrrCompileConfig.h by commenting #define IRR_LINUX_X11_VIDMODE

it’s running fast and furious (claiming around 1200fps for the physic demo) on my ubuntu laptop - next step is to have it working on my beagleboard … :slight_smile:

oooh, there was that pesky vidmode dependency :smiley: submitted patch: http://code.google.com/p/gamekit/issues/detail?id=2

It is a great decision from Erwin to release the code under the MIT or Zlib license .
This licenses give the developers the freedom to use code in their projects.

The problem with the GPL is that it is a barrier for developers to integrate code.
Like me i am working on an free software under the ZLib license.

In my project i wanted to have an videoplayer, but i cannot use a video player released
under the GPL or i get problems with the lawyers of this projects. So even this project is kind
of “open” and kind of “free” i am not allowed to use it.

I dont have money to employ a lawyer for checking is this ok or is that ok under the GPL. It is studip and i dont want that people who love my software and want to use it
have this limitations.

So thats the big problem for open source developers who want to create really free software and not
limited under the GPL.

just to say : I’ve got it to compile and run on a Beagleboard rev. C with above linux patch (on ubuntu 9.04 for arm)… I have some (big) issues with framerate and display bugs, but it must be due to the peculiar custom 3D driver it use, I’ve to check it back twice … but it runs ! :smiley:

Hey, I just ran through this thread… this is such an excellent project! Thank you Erwin (and others) for the effort!

Ooo! DukDuk on the i-phone!

I’m bookmarking this thread. Thanks for your continued work Erwin.

~Glenn