Blender game engine fork UPBGE[EvEE]

I’m not getting it very well… you are saying that all the main legal reasons to not use the BGE, are not real? in which case, why nobody has done a post with the “great news” at blendernation yet? This is very confusing.

So…

Can you do BGE compatible with android?
Can you do BGE compatible with consoles?
Can you make a whole game without sharing not even one character of your code?
Can you use commercial libraries that are closed?
Can you replace for example bullet with Havok that is closed if you want?

If you do this things, probably nobody is going to care.
But if your game goes bigger? Everyone could demand you?
If they can, particularly for what things from that list of questions?

Thanks to anyone with great knowledge and hearth that can answer :slight_smile:

Yes the legal reasons are not real. The problem is moguri’s addons. Everybody uses it becose it’s easy (and becouse nobody cares to look for alternatives). Those addons bundle your game with BGE and then is when you have problems with GPL. If I were Ton the first thing I would do is remove those addons and replace them with a launcher, like the one I use in BGECore (You can even use the same since it is BSD). Other reasons tough…

So…

Can you do BGE compatible with android?
Can you do BGE compatible with consoles?
Can you make a whole game without sharing not even one character of your code?
Can you use commercial libraries that are closed?
Can you replace for example bullet with Havok that is closed if you want?

If you do this things, probably nobody is going to care.
But if your game goes bigger? Everyone could demand you?
If they can, particularly for what things from that list of questions?

Thanks to anyone with great knowledge and hearth that can answer :slight_smile:

BGE needs some work in order to be compatible on Android, there was a project in 2012 that did some progress in this field, but it was dropped. I think that the patches never reached the master, maybe in UPBGE they will reimplement it. Consoles are most likely impossible, nor Blender has a license for them, nor any BGE game or developer. And even if soemone did, a lot of work would be nesscesary.

About sharing, it is complicated. You can use BPPlayer, but it is far from perfect. What happens is that blenderplayer reads non-encripted data, if we want to start using encripted data we need to modify blenderplayer, any other aproax will not be really secure (and still there are methods to extract data from any big game). So again, not really possible right now in a profesional way.

Another reason why moguri’s addons should not be used is becouse they give a false feel of security. When you see no .blend file in your game folder you think it is secure, what you don’t know is that extracting it takes 2 minutes, the .blend file is literally atached to the end of the blenderplayer executable. Not only that, but since since it is now under GPL, you are technically allowed to use any assets there as you please if your project is also GPL compatible.

And yes, you can use comercial libraries that are closed, but of course you need to buy their license, like with any licensed resource (music, art, fonts) you use. An example of that would be BGUI, that uses QT libraries, if you’re gonna make a comercial game you will either need to buy a QT license or disable all BGUI features that uses it.

About havok, since it is a physics engine, it must be integrated inside blender. Here your game has nothing to say in the matter, only the blender foundation can. The same would happen with any other library that is used not directly through your game, but through blender.

And lastly, not everyone can demand you, only the holders of licenses that you are not using correctly (or not using at all when you should). So basically the blender foundation, the ones at havok if you integrate it in blender on your own (maybe their license is free enough, I don’t know), and the owners of any assets you’re using without their respective licenses or permision.

NOTE: I don’t think Mogui is a bad developer, but I must admit that I hate his addon.
EDIT: I just discovered that you can actually use compliled .pyc files instead of python files in your game. Therefore if the only thing you want to protect is the source code you can do that without any modification on blender. What you need to do is use external python files and run the game once. A “cache” folder with pyc files will be automatically created in the same directory than your python modules. You only need to replace those new pyc files with the source files in your project (and rename them), python will automatically use the compiled version instead of the source.

To protect .blend files you can just change their extension. They won’t be really protected but most people will not open them. It worked for me on some versions of blender but I think it doesn’t work anymore. In any case it is not a clean solution.

If you don’t care for GPL issues, why bother getting into conversation?

I am saying if one doesn’t like GPL, UE4 or Unity is a way to go. Not changing license on Blender.

True, changing the lincese of a software that is not a library from GPL to LGPL is idiotic. It is not nesscesary anyway, you can make games in blender without any GPL issues. There are a lot of good reasons to use UE4 or Unity, but becouse Blender uses GPL is not one of them.

As of now, the one reason remaining as to why people might want to use the BGE is its ultra-tight integration with Blender. Another person mentioned Unreal and Unity being poor on Linux, but Godot is free with no GPL restrictions and it has full Linux support.

If one of those alternative free engines got an integration even close to being at the level the BGE enjoys, then it may not take long for much of the userbase to simply vaporize, as it already has so much trouble retaining users that there’s very few who have stuck around after a few years. If that happens then there may well be a commit labeled “remove BGE” because no one is using it anymore (barring a major surprise in development that manages to revive it).

Anyway, there is a chance that UPBGE could turn into what the regular BGE wished it could be, but there’s literally no getting around the GPL issues (that even Ton mentioned is not a good license for game engines) unless you start from a copy of the source code for Blender 2.25 (which really doesn’t provide much of an application compared to what we have today).

@elmeunick9 Thanks! That clarifies a lot.
The fact that it can be used with Android and html5(if someone has the money or the time to make it compatible) and that you can sell the games is something that maybe has to be more clear for users. And yes maybe the BGE doesn’t have the stunning graphics capabilities and performance that UE4 has (why even care about unity? Hehe) but it is waaaay too easy to learn and come on look at that python code…

Attachments


Could you please read my post and tell me where exactly I am wrong? Becouse I don’t see any of those GPL issues you mention. And by the way, the person who complainded about Linux was me, and just before that I said that my main reson for sticking with Blender was Python, Godot is not rally a better alternative than Unity for that.

Last I heard, Python isn’t really the ideal language for games either (it’s pretty slow as far as languages go and its development places no priority on performance simply because the project lead says “it’s fast enough for him”.

This is why a BGE game needs to make use the logic bricks for maximum performance because they’re written in C++. There’s also some Python interpreters out there that reportedly allow scripts to run far faster than the generic one used by default (but we would first need a developer to put in the work to implement it).

Also, your launcher idea, last I read there was a bit of debate over whether it was legal under the GPL terms to place any sort of shell around any code under its terms (some arguing that the GPL even accounts for that which makes it a violation whether or not the shell meets the requirements for not getting infected). At best, this seems to be a grey area, but just that being a fact is enough to still scare a large number of users away.

UPBGE is getting static draw call batching, meaning objects thar share a material can be batched into 1 draw call, instead of 1 draw call per object, it is 1 call for all objects visable with only that 1 material,

They are adding instancing of objecs under x faces, which is great for grass, leaves etc,
They are adding hardware armature skinning。

So in short, the bge will have a huge leap up in graphics, also I noticed HG1 hacked compute shaders in and many more newer advanced shaders.

There will not be much missing ‘candy’,

If there is a technique that you can think.of that will help, go add it to the git,
UPBGE. Reference a paper, or explain in detail, or it will be closed.

Nobody uses the BGE. All the work on bringing it up to the level of commercial (yet in many cases free) game engines is a waste of time.

That time could be spent in making regular Blender better able to make content to work with the game engines that everyone actually uses.

UPBGE is being developed by people who use the bge, I use the bge, many many many people would like to easily sell AAA quality BGE games, It’s not rocket science, we are most comfortable using it.

this is my own project I work on in my spare time (Restarted too many times to count) this last time was to redesign everything to be pickled and saved and play nice when going in/out of inventory :smiley:

all systems seem to be working well, now I need to get my in game map editor finished and then sell it.

BTW - I Coded it, I rigged the model I animated it, Oktow created it, I textured it.

You don’t have to like it, or even can hate it, it still has fans.

1 Like

That´s certainly not true, and people who work on the BGE do it on a voluntary basis, meaning that´s the area they wish to work on, ergo they wouldn´t spend that time developing other areas of Blender anyway. Let´s get that out of the way.

Now, that said, I think most of Blender users wouldn´t care if it´s forked off from Blender into it´s own software. An interactive mode, as proposed by Ton, will be great to have for game developers wishing to prototype quickly. Question is mainly how advanced does it need to be if it´s just for prototyping?

My 2 cents, fork it, strip out all non BGE functionality, make a quick export function between Blender and BGE, but keep under Blender foundation umbrella as long as there are willing developers.

The again, I´m not a developer, so feel free to shred me to pieces :wink:

My knee jerk reaction would be calling this a waste of time and of developer resources but since it is a one-man operation (BPR) the impact on the big picture is zero.

It is one of the important reasons why BGE isn’t used (just like other purely GPL game engines) - you are bound to PC (and Android, if there is Android port). You can’t do iOS, you can’t do consoles, and you can’t use any middleware that can help your game to rake more money (social SDKs, ads, etc.). GPL client app is 100% insecure, since the source is available. So say bye-bye to microtransactions and secure multiplayer.

And yes, please tell me how all of that is not important. /s

It is important, but most of it is either false or not the fault of GPL but of Blender itself.

You’re bound to PC (Android), no iOS, no Consoles: Not related to GPL directly, your game doesn’t need to be GPL after all, it’s most related to their licenses. But it’s true that in general those big companies (Apple, Microsoft, Sony) doesn’t like the GPL too much.

Middleware: You can, as long as it’s directly through Python. You can make a Python binding if you want, so anything that doesn’t need to be integrated directly inside Blender can be used.

GPL App 100% insecure: 100% False. Reading the source is just easier than reading the binary, no one in their sane mind puts vital infrmation there. Also, microtransactions and multiplayer are things that you do inside your game, and as I mentioned before, you CAN compile your python code and therefore not distribuite the source.

So the only real reason is “No mobile devices” (fine with me, those should be made in java anyway) and “No consoles”, (Also fine, I’m not gona buy a license). Everything else is just missiformation.

You are delusional :spin:

sigh Like most of BPR’s threads about the game engine, it starts off with errors with BPR has already been corrected about in the past and continues to go down a well-worn track of what would generally be considered flame-bait were it not for the fact that the man has proven to be singularly obsessed with the game engine… just wilfully ignorant about why others don’t use it and don’t prioritise it’s development the way he does.

GPL
This is a well-worn path that has had everyone from Ton & Campbell themselves agreeing is an issue for distribution, yet people keep trying to pretend it’s not an issue.

Fact: The BGE code & code it links to is GPL. There is no way of turning it LGPL without rewriting the lot. It’s not going to happen.

Fact: Python scripts using the BGE API’s (which is 99.99% of any in a BGE game) will be GPL. No if’s, but’s, maybe’s, or wish fulfillment based denial will get around that. That’s how GPL API’s affect code that is written to use them. I posit any game more complex than a very basic walker/shooter is going to be using these GPL Python scripts at some point.

Fact: You cannot just compile your Python scripts to get around the GPL. That is just like suggesting that one can just compile Blender to get around the GPL. The GPL explicitly and expressly states that distributing binaries compiled from GPL code (which Python used in a BGE game would be) is also subject to the GPL.

Fact: For most consumers of video games, requiring them to download, install, and then run the BlenderPlayer application to load your non-GPL, logic-brick only game data file is not worth their time. Feel free to prove us wrong… but don’t expect us to buy your claims until you do.

Python
No, it isn’t a great language for game development. This is obviously an opinion thing, but one shared by the vast majority of game developers as well given it’s lack of widespread use compared to the alternatives.

Python has a large memory footprint, has no sandbox capabilities, is functionally single-threaded, and easily is outperformed in the vast majority of tasks it doesn’t export to C/C++ (such as how one would use it in a game). There is a reason that, when it comes to scripting languages, the vast majority of AAA games not rolling their own use an alternative like Lua, Squirrel, or AngelScript.

Can you use it for the task? Sure can. EVE Online uses a (much hacked) version of Stackless Python for their client & servers. Civilization IV uses it to. However, that’s about it (unless you count Disney’s line of second-rate panda3d games… in which case, why not use panda3d instead of BGE? :wink: ).

First, this method allows you to avoid GPL completly, Python code included. And it is “Requiering users to install Blender”, that’s all they have to do, they don’t need to know the existence of blenderplayer. Java and Flash player did the same for years, and they still do in most linux distributions.

And my only point is that you can make non-GPL games in Blender, not that you can make AAA games with it, nothing of this can be proved becouse to prove it you would need an AAA game, BGE has other issues than just GPL. About the compiling python code, that of course only applies when using this method, and therefore when your game is not GPL.

Does it really make sense to discuss AAA games in a “indie” development context? I mean, when you have a budget around 200 million dollars you can pretty much take any engine ever made and uplift it to whatever the state of the art is, you just pay a hundred experienced developers to do it.

It’s not about AAA games. It’s about jumping through a lot of hoops to release a game, and making end-user jumpt through hoops to run it. And that still doesn’t solve issue of GPL.

Can someone make a game using BGE and sell it? Yes.
Can BGE-based game used proprietary non-GPL middleware (including Steamworks)? No.
Can BGE-based game be released on consoles/iOS ? No.

In other words, if you are aiming for PC, and don’t see benefits of using Steamworks/middleware, and don’t care if your entire game (minus assets) is under GPL, and don’t care for performance (because your game isn’t going for AAA visuals/scale), and you know Python/BGE inside out or/and you have team who is the same way (and they will stick around till the end for sure), sure BGE can be used for commercial game dev.

If you are doing it also to make money, and you want to maximize end-user’s entertainment value, BGE (or any GPL-based engine) is off the table. Use Unity, period (not even UE4, forget it until they have several smooth releases of AAA titles with UE4).

Now, I still use GPL-based engine for several reasons - I know the engines/pipelines for them, I invested time/money to make them better and I think the right way to go is to finish the projects based on these engines, and use money (if I make any) to migrate (port) one of the projects to Unity to be able to release on iOS/consoles.

If I wasn’t invested into GPL pipeline (and it happened when Unity was still shitty engine and UE4 wasn’t even on the horizon), I’d already abandon them.