Could blender itself be a game engine?

I was making a slight thought experiment.

Blender can.

  • generate meshes on the fly by scripts.

  • can animate armatured characters.

  • be fully scripted by python.

  • render in real time with relatively good performance at lower settings.

  • can play audio files.

  • we can modify its keymap and interface

  • can have a full screen 3D view with no overlays or headers

  • can simulate rigid bodies.

  • can simulate cloth and soft bodies

  • have collision detection and ray cast, bvh trees and kd trees built in.

What else do we need in a game engine?

So could it be that we can make a game in blender without using BGE or any other engine just by using blender+python itself as a game engine?

That question is already being tested with this fork.

What the UPBGE guys are working toward is essentially turning Blender itself into a more powerful version of the BGE (ie. Blender is the game engine, not a 3D app. with an engine attached). However, the GPL being the license means extra steps need to be taken to minimize the risk of someone changing out the assets in your game and selling it under a different name (which is why the majority who want to use FOSS, but have commercial ambitions use an engine like Godot instead).

Now I am not saying that commercial games have not been done with UPBGE (as there are a few titles on Steam actually), but you are required to provide unrestricted access to all of the .blend files used in the title (which the player can reverse engineer and modify freely).

Yeah, I was under the impression that GPL complicates things up.

But from a technical stand point, I suspect that the vanilla blender is already a game engine.

Maybe its possible to pack all the meshes and logic into cython modules and compile them to make it harder to inverse engineer.

The only thing is that the module would gave to be distributed separatelly for GPL to not apply to it also.