Make game exe

Is there a tutorial on how publish a Blender game separating all creator content from the Blender game engine ?

This is something someone suggested :

  • make Blender files per level , encrypt them
  • encrypt your code files

This to keep all your content copyright, while Blender game engien keeps it’s own separate license.

look into libload

if you use something from the bge module then those scripts are gpl bound.

This means those nodes are also under the gpl as using bge modules ?
https://blenderartists.org/t/blender-game-logic-nodes-upbge-compatible/1131906/97

Woudl this be too comple or not possible to make a game without using bge modules ?

I don’t understand how the game “Krom arean” did to avoid the Blender gpl licensing ?

to extend further. if you can manipulate bits around then make your own format and handler for three dee models, then load them in at gametime, you wouldnt have to distribute blends and be the only one that knows how to crack the hexdump into coherent data. if your games are popular, some one will break the code. simple as that.

you want to look into sending binary data to LibLoad. that is my recommendation.

but it takes processing any of these files by your own soft, before ever using one of them. its not just easier, but more performant, to use blends.

edit: little mistake.

I read this and some others interesting links.

https://blender.stackexchange.com/questions/21364/licensing-game-in-bge

https://docs.blender.org/manual/en/2.79/game_engine/licensing.html

## Standalone Games

In case you save out your game as a single “Standalone” the blend-file gets included in the binary (the BGE player). That requires the blend-file to be compatible with the GNU GPL license.

In this case, you could decide to load and run another blend-file game (using the Game Actuator logic brick). That file then is not part of the binary, so you can apply any license you wish on it.

This means you have keep separate all your content (Blender files, textures, sounds, code) from .exe files.

I found this link also explaining the same thing.
https://www.katsbits.com/smforum/index.php?topic=643.0

/myBGEgame/ 
 - bge.exe (2MB) 
- /assets/ (200MB) 
- - /models/ 
- - /audio/
 - - /textures/
 - - /etc.

Instead of this

/myBGEgame/ - bge.exe (202MB)

The most complex will be how to handle separate files and scenes loading and unloading.
How to manage the Blend files and the code files separatly.

The other issue is logic bricks, if you use them , are they making your separate Blend file Gpl licensing ?

I would want to avoid to use loadlib , some people had issues with it , and i’m not sure it is up to date with latest Blender versions.

I think the best would have been some new addon that would automatically handle user content separate from .exe files, and that would propose loading and unloading scenes on the lfy without any issues.
To make it straightforward.

Meanwhile i will have to make some tests and see how it goes before starting something big in Upbge.

/myBGEgame/ 
 - bge.exe (2MB) 
- /assets/ (200MB) 
- - /models/ 
- - /audio/
 - - /textures/
 - - /etc.

is the way to go, then with libload you load in the /models and /assets .blends into your own .blend

No, everything you make into your .blend is yours. only thing that binds gpl to it is if you do not use a ‘launcher’ to launch your game (blend wich made the .exe will be gpl) and scripts where you use anything from the bge module.

I got a few samples in resource section about launcher and libload look it up.

You can basically just have 2 things in the folder - a .blend with your game and a .exe that launches the player, which immediately loads the .blend and your game. That way you can put whatever license you want on your own .blends, while the launcher .exe is under GPL.

However, encryption is another complicated thing.

A lot of what you read about this debate was written back when BGE used GPLv2. For that licence, it was a fuzzy grey area when it came to what kind of linking caused the licence to cover everything. This is mainly because no one had ever tested it in court, and it was widely regarded that neither the Blender Foundation nor (the people that write these licences) would ever sue you.

More recent versions of BGE use GPLv3, where they cleared that up entirely by saying any kind of linking, such as “import bge”, causes your code to be covered by the licence too.

I still don’t understand why the devs changed licence… Especially after telling us they couldn’t change it to an easier to distribute with licence because they’d need too many (unreachable) contributors to agree to it.

i have stated this in an other topic before but from: https://www.blender.org/support/faq/

Can i license .blend files myself?
Yes. The output of Blender, in the form of .blend files, is considered program output, and the sole copyright of the user. The .blend file format only stores data definitions.
In case you embed the .blend file with Python scripts, and the scripts provide bindings to other libraries or facilities, the next topic applies.


what about add-ons or my Python scripts?
If you share or publish Python scripts they have to be made available compliant to the GNU GPL as well, if they use Blender Python API calls.


So i can make games without having to worry about the GPL, right?
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.

these have always been on that page.

From https://www.gnu.org/licenses/gpl-3.0.en.html

For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. … The Corresponding Source for a work in source code form is that same work.

My emphasis added above. Because the game cannot be used without the Blender API, that means it’s covered under the Corresponding Source section.

Your middle quote even backs me up:

I don’t know about you guys, but all the best stuff in my game is driven by Python.

yup, thats why gpl is so awesome! sharing is caring! all my code and hard work is up on a github repo for all to learn from.

Not if you want to make a commercial game. Imagine how much more use the BGE would’ve seen if it could be used properly to sell games.

you sell games like people sell addons. you either get over yourself and accept the fact open source means exposing inner workings, or go somewhere else.

a game without artwork is pretty useless by the way. when you sell your game, you are selling an experience. as stated many times, artwork is not gpl’d if you dont want it to be.

I did go somewhere else. Anything commercial that I do doesn’t involve the BGE.

I’m still here because I enjoy making my hobby game (SpellShips) in the BGE. Also, BGE is how I got into game making and programming, so I feel I owe it to the community to help others where I can and to develop SpellShips into a working usable example of a multiplayer game.

How many people like me made that switch all those years ago but didn’t hang around for personal reasons?

You can sell games made with the BGE, but you often have to jump through hoops to make it less than trivial for someone buying it to reskin the thing and distribute it for free under a different name (as the GPL does not allow you to copyright your code). It is even harder to do so now because the GPL was upgraded to version 3, which removes a few workaround options (hence why you see people with outlandish proposals such as building a server farm to deliver a game via the cloud).

There are other open source engines meanwhile that use licenses like the MIT or Zlib, they allow users to seal up their code and sell their game in a neatly made encrypted package. No private server farms or convoluted launchers needed.

The only way is to create a new echo system, Upgbe own physics and logic Api engine and drop all BGE nodes and code.
Get Upge using Eevee, but only read Blend files data ( models, materials, collisions, particles) and use it’s own physic, input and other game logic handling.

Upbge would need to be redesigned by default to create projects with user content and code by default separated from BGE and Gpl. As menyionned above thes best would be to keep Eevee, reading Blend files data, but have Upbge using it’s own physics and logic api.

A smaller issue is the lack of some publishing automated pipeline; because it’s not Unity, one click on the “publish” button and you got all your project content and code packed and encrypted in a ready to go directory.

This is sad, i like a lot Upbge 0.3 and the ability to use all Blender tools and just run the engine without needing lot of exports to a 3D Engine.

But we prefer Upbge 0.3.
Until it gets it’s own game Api to get rid of any GPL issue, unfortunatelly you are right.

doing these things is not only an unrealistic amount of work, but would make it no longer the “bge”.

this was tried once before with “Armory” engine. an addon to blender with all its own stuff that ran right from blender, but had its own renderer.

you say you want to keep eevee, but guess whats licensed as gpl? thats right, eevee. and guess what has to talk to the gpl eevee to update frames? thats right, logic code. and guess what the game devs api uses? thats right again! the logic.

Going back to the original topic, BPPlayer is a solution for encrypting your blends. Unfortunately, his resource thread was destroyed when the forums migrated and I don’t think it’s been recovered yet.

I found a web archive link for the thread here:
http://web.archive.org/web/20141211060727/http://blenderartists.org/forum/showthread.php?130089-BPPlayer-BGE-Security-(1-06-Win32-Linux64-MacOSX)

@moderators
Is the BPPlayer thread really gone forever? It was one of the greatest resources ever made for Blender.
(original link: https://blenderartists.org/forum/showthread.php?130089-BPPlayer-BGE-Security-(1-07b-Win32)-Blender-2-78-support/page1 )

Looks like that was one of the few threads that got lost in the migration to Discourse a couple years ago. Unfortunately, unless you can find it somewhere like on archive.org, it’s lost to the ether.