GPL + BGE + Godot

Hello fellow Blender friends,

Recently there has been some chat on Blender use of GPL, EEVEE, and future of BGE.

So I’d like to discuss each of these from the viewpoint of a person who values true freedom and ability.

To me, software is a tool that we control ---- not software that controls us. Simply it means, software needs to be: (1) USEFUL, (2) EASY TO USE, and (3) NON-HARMFUL.

Examples of software that violates the above 3 principles are: (a) MAL-WARE, (b) BLOAT-WARE, © SPY-WARE / BACKDOORS.

Out of all the software licenses, the GPL has preserved our freedoms the best. Yes, I agree there are some instances where you do not want to release your source code (eg Game).

Also, the GPL does not address 2 fundamental problems plaguing Sofware ====> (1) BLOAT + (2) MALWARE
But that is not a problem, as I have created a Community License that fixes these problems. But now is not the time to talk about it. I will release it when one of my Projects (Game, Movie, Software) is released in the future.

=======================================================================

Now to discussion about EEVEE. Eevee’s main purpose of being is speed, ie “Realtime rendering”. However, unfortunately the last time I thoroughly tested in on several Computers running GNU, it didn’t work well. On Windows it worked better, but the loading time + Viewport render was not better than Blender 2.76b or 2.78c (ie OpenGL 1.4 & 2.1).

But more important is the ability to COMPILE a portable working BGE. And the most recent version that compiles + works is Blender 2.63a. Note, 2.64 compiled for me, but segment faults when I open a game with it.

=======================================================================

While is is true that on Blender 2.7x I only can reasonably handle only 2 million verts/faces in Viewport. While on other software it is 5-10+ million, it’s OK.

I simply adapted my modelling, texturing, and scene layout to be more optimized. For example, my assets are only 1/10 to 1/100 the size.:yes: Trust me, using 4K textures (4096 x 4086) doesn’t help.

Now regarding GODOT. On my LG G4 (~3 years old) mid-to-high end MOBILE PHONE, I’ve noticed blender 2.63a APK crashes when I load any game (2D or 3D). While it works for older ANDROID devices.

I surmise, the reason is with newer versions of Android (eg 6.0+) the OPENGL 1.4 support is broken. And that I why I use GODOT to target mobile devices.

While Godot 3.0 requires OpenGL ES 3.0, I’ve noticed by looking around on trains, buses, etc that nearly EVERYONE has phones that are modern. Sure they have older phones lying around, but their main computing mobile device is quite fancy. :smiley: Regarding the “third-world” (aka “poor countries”), trust me, they use modern fancy phones. Also, going forward, newer phones will have no problem with GLES 3.0.

Often times, it is not needed to “upgrade” to the “latest & greatest”, especially when overall there is no improvement for your particular use case.

For example, while some addons are useful, I’d prefer to manually model (which is also easier & faster if you practice). There are several noticeable benefits, such as much smaller sizes and the model looking as you intend it to.

The same can be said of Game Engines. Here are my observations:

Modern GE have reached a point where there have not been any PRACTICAL advances in rendering in recent years. However, a major area where gameplay can be vastly improved is AI. Sadly this area is being neglected.

BGE Logic Bricks & bpy is so easy to use. For both non-programmers and programmers alike, this important factor is often overlooked. Let me give you real-life examples why this is important ---------- on CryEngine, Unreal, Unity, if you want to program AI behavior, it is so DIFFICULT and TEDIOUS. You’ve got teams of programmers working on it in a game, yet the AI & Gameplay comes out primitive. With BGE, as a 1-person team, even non-hardcore programmer, you can easily achieve engaging AI Gameplay.


What I am trying to convey is, while BGE limitation is size & complexity of scene size. It has abilities that none of the other GE come close to.

Now there is more to this thread I open up.

It has come time that I give back to Ton & Blender. Ton (and several specialty core developers) are GENIUS PROGRAMMERS, simply the best I have witnessed! Interestingly, Ton appreciates artists and wants to create ARTISTIC WORKS.

Fortunately, as is the case, there is something I can give to him in return for his generosity in creating BLENDER TO BE FREE FOR ANY PURPOSE. FOREVER.

And that is Creative Assets (Music, Textures, Graphic Designs, Models, Scenes, Games, etc). Therefore, I will update this thread when new notable developments occur.

Bye for now…

Taking into account the years and years of discussion in this forum, I have to conclude that the issues facing BGE users who want to distribute and sell their games commercially (especially if they don’t want to release the source code) is precisely one of the core reasons why the engine has failed to gain traction and consequently more development.

The only known way to work around the GPL for PC is to use the BPPlayer by C-106 Delta, but even that has uncertainties to it as to whether you are actually breaking the license. That’s not to mention how the GPL limits your platform options and what gaming hardware you can make use of (at least without jumping through hoops, if there is a way at all). Now it can be argued that no one can flat out redistribute your game with your assets as they are under copyright, but nothing stops someone from giving your game a re-skin and distributing it for free under a different name (which the GPL makes easy).

The GPL in general is designed so you don’t make money from software written under it, but rather you make your revenue from secondary sources such as support services. You generally would not have a professional support service for a game, so the license can’t make sense for most game creators in that area either. Now the one area where the GPL does make sense for a game is if it was intended to be an open source project such as what 0 AD is (and for that purpose it actually works well).

This is not just my opinion, many others have the same conclusion. Even Ton himself has admitted that the license is not the best choice for a game engine.

@TIAN-SKY.com thanks for your passion and support of the BGE.

Thanks for your words of encouragement & appreciation. Surprisingly it is more motivating than I thought.

Here are my thoughts so far. I have several Game Projects (fairly large-scale & high-quality) going at the same time. However, don’t expect anything “AMAZING” for my first few games. My thoughts is, to start simple, and gradually increase Game complexity and size.

These are my game ideas:

(1) KABALA

Simple 1-player game, using Godot 3.0. Available for GNU, Windows, Mobile.

(2) Lily & Tan

1 or 2-player cooperative game, in which your purpose is to defeat the Evil Kabala. Built on Godot or Blender (undecided at moment).

(3) Machine War | War Machine

Exclusive FREE game on my custom “Live” GNU OS. This is a SECURE operating system I custom create that does not require installation (ie No Install Needed). It is 1 to 2-player coop. Excellent Post-Apocalyptic action split-screen game to play with friend or significant other.


(4) Hua Cha — “Manga Cafe”

These next 3 games are the “large-scale” games, what you expect for AAA games. Hua Cha is a CUTE game that appeals to both kids & adults, male & female, so no shame in enjoying it.

(5) GOBI — Paper Planet

GOBI is an action battle platformer multi-player game, on “LAN PARTY”. That means it auto-detects players on same LAN, without need for complex setup. It’s a FUN game for socializing with old friends and making new friends!

(6) Monkey King

MK is based on the legendary (based on real historical account of Buddhist monk) story of “Journey to the West”. This is gonna be the most “BAD-ASS” game in the entire history of the World!!! It will showcase the most advanced and fun gameplay to ever exist. I plan to showcase the A3I (Advanced Adaptive Artificial Intelligence) technology I have been developing. As well, it features beautiful artistic style and a enchanting fantasy world that will leave a last impression on both young & old!


I’m not sure which 2 games I will donate (one to Blender, one to Godot).

My idea is this: The Games’ sales on itch.io will go 100% towards BLENDER + GODOT. However, I will keep 100% the Intellectual Copyright.
I will create a SEPARATE COMPLETE GAME ASSETS (models, textures, worlds, trees, animals, players, etc, MUSIC, design, gameplay, code) which will be gifted to BLENDER + GODOT.

This way, they can have a continual stream of revenue (from game sales) + as well as ASSETS to use for game or movie or whatever purpose they desire. In this way, I am returning the favor rendered towards me. :slight_smile:

INDUSTRY NEWS:::

I will be discussing relevant recent events, as well as my input into its significance and whether or not it affects Blender users / programmers.


(1) Apple is dropping x86_64 and moving their Mac OSX to ARM cpu.

Apple has announced their intentions 5 years ago. And now it seems they are about to make the jump in next few years to ARM. This is a logical step, as sales of their MacOSX products are on a long decline. In fact they pale in comparison to Iphone sales.

Apple’s strategy and thinking, is to have a single OS + Apps for both desktop / laptop and mobile. This makes sense. It’s easier for both user and developers.

However, there is a major problem. It means programs that only run on x86_64 can’t be used on new machines. Users will have to user increasingly OLDER and slower hardware. Not to mention keyboards, mouse, etc get worn out over time.


(2) Microsoft is moving to a “purely” 64-bit OS for their next version of Windows.

MS is dropping support for 32-bit applications, by removing legacy support and drivers. They also want to get rid of legacy code that is expensive to maintain. MS touts the benefits of less bloat and ease of use.

The problem is PC users stick with Microsoft Windows because of certain applications. This means a lot of people will be stubborn and remain on Win 10, just like there are still a lot of Win XP users (due to old games).

This is a once in a lifetime chance for GNU + Linux to capture new users.


(3) Google is also moving to 64-bit in 2018. In few more years, they want Android to be only 64-bit by dropping 32-bit emulation completely.

Their reasons are similar to Apple & MS. This will create further fragmentation in Android. Will Samsung’s Tizen take over??? I also heard Huawei is developing their own custom GNU + Linux ARM OS.

This is a problem for me and regular users. Certain Games & Apps that are only 32-bit will not work on newer devices.

Another issue that may concern BGE developers.

GNU + Linux is good in that it keeps support for much older (but not ancient) hardware. This means that the likelihood of OpenGL 1.4 or 2.1 still working 5 years from now, is good. In 10 years, maybe.

That is a problem. Because when I create games, I want it to work on hardware & software long into the future. I don’t want users to be at mercy of some emulator. The reason I say this is because of problems with Android. Google keeps adding unnecessary changes / bloat / spyware, and removing legacy support for Android.

For example, blender 2.63a for ANDROID works on my old device, but not on my LG G4 (which is 2-3 years old now). Somehow they broke OpenGL 1.4 functionality. The program opens but quickly crashes.

I sure hope 10+ years, x86_64 apps will still work on future Operating Systems. But they way they forced EUFI and pushing out BIOS. The direction Apple, Microsoft, Google is moving. All of these are REAL CAUSES FOR CONCERN.

I am a software user, turned software developer. I simply want my applications to work. It seems wise to stock up on good hardware, and keep them safe. The near future may be one where your useful programs stops working…

The reason I don’t blindly follow fads is because, more often than not it turns out wrong / bad.

The “majority” is not always right — in fact, most often the majority is wrong! WHY???

The simple realty is that to be extremely knowledgeable or skillful at anything — requires a LOT of time, a LOT of effort, a LOT of good circumstances / opportunities, and certain rare character traits.

And so, there are many “fads” in Computer Programming that are counter-productive. Unfortunately, most programmers fall prey to these fads. They think the more “complex” (ie complicated) a programming language is, the better. Please stop it.

The better way is to use a simpler more elegant and efficient solution to solve the most pressing problems. “Do more with less.”

Working towards being “off-line”, off-grid, mobile ----- yet still functional and productive.

I like camping. I like outdoors. I like nature. It’s been like this since I was young.

And I also like to be self-sufficient. And since just over 3 years ago (in Feb of 2015), was when the Evil KABALA began their relentless Cyber Attacks against me. And this only further proved the need to be: (1) offline, (2) offgrid, (3) mobile.

Plus, it’s a good hobby. It’s good to be outdoors and moving about. There are many benefits to survival training. Plus, most guys enjoy this type of activity. I’ve only spent the last (too) many years “couped up inside” ===== because I needed to build up my computing knowledge & skills.

After decades of hard-work, I am a capable person.

The question is: How long can I go being offline??? 1 week? 1 month? 1/2 year?

It’s hard doing so, if you live a lonely life in Canada (like I do). But this is where I start to seriously build up my group of friends, a team of people who like VFX, Animation, Gaming, Programming, Music & Movie creation. :slight_smile:

Anybody thought of using GODOT for app development, both Desktop / Laptop and mobile?!

Yes. GODOT already contains the 2D Canvas nodes, and it’s so much better than using Java or Android Studio.

You just need to learn GDscript which is very easy. GODOT comes with so much (sound, networking, image, video, etc). If you need more functionality, you can program in either C or C++, use the API headers to bind to NativeScript. I’d recommend TCC (Tiny C Compiler) since it is GPL and very easy to cross-compile to Windows, Linux, ARM.

Since 2012 I have invested thousands of hours into Blender. It is my hobby and research thing. I simply love it.

Now after all those years, I am still loyal and building my dream game (a Spartan warrior driven only by the mouse movement),
which I have had in my mind for 25+ years now and only Blender got me there to finally accomplish.

I do this KNOWING that it might never be sold or transferred to mobile, or have multiplayer support. Still, I move on
because the tool is amazing to work with, and for me this is the most important thing = having fun while working.
But this is my priority because I am 46, already have a job, and no ambitions of making game development my career.

A 20 yo ambitious young professional will likely turn away as soon as he finds out that there are “clouds” in the
following areas:

  1. Mobile support
  2. Commercial license to sell games
  3. Multiplayer support

So I believe Blender is perfect for hobbyists like me. But it is unfair because the tool is great to work with.

I do not know why they do not implement those ? Are they too hard or they lack programmers to do it ?
Or they choose not to ?

Whats with all the TEXTBOOK Definitions?
(Im not trolling or hating im just being curious!)

Fred/K.S

And not all 3rd world countries are poor !!!
:frowning: which country are you from?

Blender is Free, so i believe the only way for our games to survive is to be made Free. not to make money, the blender software was not meant to be sold !!! screww all the licensing and porting to Android but Blender is Blender and so our games must be for free.

Use godot or UE4 or Unity if you want to sell your game !!!
Blender games must be for free !!!
(Its just better that way)

All you need to do if yr using BGE:

  • Make a full blender game (complete)

  • Render it as a stand alone (stable and runs great)

  • post it or upload it online (indie, twitch,steam or yr own site etc)

  • Grow a huge fan base if its AAA level (get fans players, and positive game reviews)

  • And make the next title as a sequel to the 1st game who knows … ( you might make a better version of the 1st one)

!!! Just make an awesome Blender game for yrself or to give the software a better name to make it well known and to increase the community !!!

If u wanna sell yr next titles use a better engine that can support all the other platforms you plan on selling on so yeah and if devs dont wanna work on BGE then its fine cuz i dont really see why they should waste time on cycles and Eevee, if they’re not goina sell their work at all !!!
(If they care so much about cycles and Eevee what abt the BGE ?)

Well atleast now we have the tool so lets make good use of it instead of opening up repetitive threads like this one @TIAN-SKY.com

Fred/K.S

Taking into account the years and years of discussion in this forum, I have to conclude that the issues facing BGE users who want to distribute and sell their games commercially (especially if they don’t want to release the source code) is precisely one of the core reasons why the engine has failed to gain traction and consequently more development.

^ that. If I’d known more about licenses earlier then I never would’ve started with Blender. It’s been a massive headache to deal with. C-106 Delta came to the rescue, but it’s pretty risky relying so heavily on just one person.

I started another thread called “Important Question Concerning ADDONS + GPL”, for the purpose of finding a solution.

The GPL allows for commercial use. Also, the GPL does not cover art works, only code.
The PROBLEM most game creators have is they don’t want to release their source code.

This is the solution I have come up with:

Blender’s Python allow you to call programs, much like as Bash Shell Script does. One program does not require the code of another program ---- So you can have your BGE game coded with Logic Bricks and Python call on another Binary program that does the important stuff you want to keep proprietary.

You are only required to release the source for the game relying on BGE. But you don’t need to with that other program. :slight_smile:


This is no different than a Bash script that calls on ‘date’ or ‘ls’.

Fred/K.S, There are many threads about issues with commercial distribution using BGE due to concerns with GPL licensing.

And there is a good reason for that. It’s because this issue has not yet been resolved. As a person who is developing Games, this concern is especially important to me since I am using both BGE & Godot.

While Godot is MIT licensed, there are many things I can only achieve (due to limitations in my skills) with BGE. I also find BGE much more fun and enjoyable.


Lastly, this thread serves to chronologically document my thoughts, intentions, and process of Game Development.
It is here that I announce my game ideas, share & discuss ideas.

This is the solution I have come up with:

Blender’s Python allow you to call programs, much like as Bash Shell Script does. One program does not require the code of another program ---- So you can have your BGE game coded with Logic Bricks and Python call on another Binary program that does the important stuff you want to keep proprietary.

You are only required to release the source for the game relying on BGE. But you don’t need to with that other program. :slight_smile:

Take a read of this link:
https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
It’s the FAQ on exactly what you described. In there, it says you need to write an exception in your GPL license to allow it. Since the license isn’t yours, you’d need to convince whoever licensed the BGE to add the exception for you.

What legal issues come up if I use GPL-incompatible libraries with GPL software? (#GPLIncompatibleLibs) If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. Below are two example license notices that you can use to do that; one for GPLv3, and the other for GPLv2. In either case, you should put this text in each file to which you are granting this permission.

Hi TheDave,

The FAQ (quoted above) only applies to “libraries”.

In other words, it is like a shell script calling “grep”, “ls”, “tar”, “date”, or a program you written yourself (under whatever license you chose) ---- versus a program whose code contains actual header files and links to GPL code.

In another thread, called “Important Question Regarding ADDONS + GPL”, another reader gave an excellent explanation of the difference between calling the program “date” – and – a program using the library “date()”.

The link you provided from FSF deals with mixing GPL-incompatible libraries with GPL software, ie “linking”. The solution is simply not to compile in GPL code ---- Rather, keep them as separate programs. Hope this clarifies the difference for you. :slight_smile:

Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

Furthermore, there is NO linking statically or dynamically with other modules, if both programs are compiled INDEPENDENTLY of each other.

For example, in Blender if I recall correctly, in UV Project modifier there is an option to open up a 3rd Party image editor (Gimp, Photoshop, whatever) to do you editing, saving your edits, and then going back to Blender to use that edited image.

Another example is Web Browsers using 3rd Party proprietary or whatnot PLUGINS to view certain webpages. Firefox could use non-GPL plugins. In the past this was very common, whereas nowadays only Flash is still around.

A third example is a shell script processing files and text by calling grep, ls, tar, or any other non-GPL program.

So as you can see, the GPL applies to code that is compiled with links, statically or dynamically with other modules.

The GPL does NOT apply to independently compiled programs WITHOUT links, statically or dynamically. :slight_smile:

Here are 4 more real-life examples where non-GPL & GPL programs can exist side-by-side, communicating with each other:

(1) Programs like GIMP, Inkscape, Krita can use 3rd party non-GPL plugins to extend their functionality.

(2) You can have non-GPL video drivers (Nvidia, AMD) running on your system. Your programs depends on these drivers to display video.

(3) You can have non-GPL wifi drivers running on your system. Firefox uses these Network Drivers, but it doesn’t force these non-GPL binary drivers to become GPL.

(4) Most GNU + Linux Distributions (in particular Android) contain a mixture of GPL-compatible and non-GPL programs interacting with each other. Very few distrows are pure GPL, they often contain Proprietary programs.


As we can see, what is common in all these examples is that there is NO linking, statically or dynamically, between GPL and non-GPL programs.