12 June 2025

Blender Game Engines

Yo Frankie! game cover
Blender has rightfully established itself as one of the leading tools for modeling, animation, and rendering in the market. Its quality, combined with its open-source and free nature, has skyrocketed its popularity, allowing it to stand toe-to-toe with major commercial "giants" like Maya or 3D Studio.

What many people don't know is that Blender was also a game engine. It was called Blender Game Engine (BGE), and it was integrated with Blender from the early 2000s. It allowed the creation of interactive applications directly from Blender, without the need for external tools. For logic, it allowed not only programming in Python but also using a visual language, very similar to the current Blueprints of Unreal Engine.

The engine allowed the creation of both 3D and 2D games, with real-time physics (using the Bullet Physics library). It also allowed the creation of basic shaders and animations. Since it was integrated into Blender, there was no need to export models to other engines.

To demonstrate the engine's capabilities, the Blender Foundation developed the game "Yo Frankie!" in 2008. The game was visually appealing, but it soon became clear that it lagged behind what other engines like Unity or Unreal could offer. Compared to these, the BGE could only offer limited performance in complex projects, lacked support for modern mobile platforms, and its development interface was less polished.

In the end, the Blender Foundation had to make a decision. To keep up with other engines, the BGE required an exclusive team of developers that the foundation could not dedicate. Additionally, the BGE developer community, outside the foundation, was very small, which made the update pace very slow. BGE was falling behind visibly and dragging down the rest of the Blender project. In the end, it was decided to abandon the BGE to concentrate development resources on what Blender did best: modeling, animation, and rendering tools (like Cycles).

The formal elimination of the BGE took place in 2019, with Blender version 2.80. From then on, the foundation recommended using Blender as a modeling tool and exporting assets from there to more advanced engines.

Fortunately, as often happens in the open-source world, the closure of a project is not usually such, but rather its transfer. Other developers, interested in continuing the project, picked up the BGE source code and evolved it from there. Thanks to this, where we once had one engine (BGE), we now have two descendants of it and one strongly inspired by it. Let's analyze them:

UPBGE (Uchronia Project Blender Game Engine)

UPBGE logo
This engine was created, along with other collaborators, by Porteries Tristan, one of the original BGE developers. Initially, UPBGE aimed to be a fork that improved the BGE code, cleaning its base and experimenting with new features, but with a view to eventually incorporating into the main BGE code. However, the elimination of BGE in Blender version 2.80 led UPBGE to acquire its own independent identity. Since then, UPBGE has continued its development, ensuring to synchronize its code with Blender's to maintain compatibility.

UPBGE is fully integrated with Blender, allowing modeling, animation, and game development in a single environment without the need to export assets.

It uses Blender's EEVEE engine for real-time rendering, with support for PBR shading, SSR reflections, GTAO ambient occlusion, bloom, soft shadows, and volumetrics.

It uses the Bullet Physics library for real-time simulations, including rigid bodies, obstacle simulation, and pathfinding.

Additionally, it includes an audio engine based on OpenAL and Audaspace, with support for 3D sound.

For game logic, it maintains the original BGE "logic bricks" system and adds Logic Nodes, facilitating the creation of interactive behaviors without programming. It also supports Python scripting for those who prefer to program by keyboard.

When importing and exporting elements, it allows the same formats as Blender, mainly FBX, Collada, glTF, OBJ, and STL.

It is a very active project, with a small but very involved team of developers, who release regular updates every few months and keep the engine synchronized with Blender's evolutions.

In terms of functionality, developers plan to add modern features like SSAO, depth of field (DoF), online mode tools, or area lights.

Therefore, it is a very interesting and promising project, with only one drawback: the performance that can be expected in complex scenes, with many polygons or rich effects, may be more limited than what can be achieved with engines like Unity or Unreal.

It should also be noted that it inherits the GPL license from BGE. Games developed with UPBGE are not required to be open-source if they only use project data (models, textures, scripts, etc.) and do not distribute the UPBGE executable (blenderplayer). However, if a game includes the blenderplayer or parts of the UPBGE code, it must comply with the GPL and be distributed with the source code.

Range Engine

Range Engine logo
This engine is not a fork of the original BGE, but of UPBGE. It originated in 2022, as a result of certain design decisions made for UPBGE 3.0. Some developers felt that these decisions moved UPBGE away from the spirit of the original BGE, so they decided to split through a fork. For this reason, Range Engine retains an interface much closer to what was in the original BGE. Compared to UPBGE, Range Engine prioritizes ease of use.

Range Engine prioritizes compatibility with old BGE projects and simplicity in the developers' workflow.

Its youth and relatively smaller developer base explain why its features and update pace are lower than UPBGE's.

Even so, it seems they have managed to optimize the animation section compared to UPBGE. On the other hand, performance limitations have also been observed when using this engine with large open scenes.

Like UPBGE, it is licensed under GPL. However, it includes Range Armor, a proxy format that allows game data to be packaged separately from the blenderplayer executable, enabling the creation of games under more flexible licenses like MIT, facilitating commercial distribution without strict restrictions.

Armory 3D

Armory 3D
Unlike the previous two, it is not a direct fork of BGE, but an independent game engine that uses Blender as a complement for modeling, texturing, animation, and scene composition. Additionally, it enriches the above with related tools like ArmorPaint (for PBR texture painting) and ArmorLab (for AI texture creation), both integrated with the Armory engine. It bases its logic editor on Haxe language scripts. Some say this language is more flexible than the Python used in BGE. It also offers a node-based visual editor, to which new nodes for value, vector, and rotation interpolation (tweening), camera drawing nodes, pulse nodes to control firing rates, and improvements in the logical node hierarchy have recently been added.

At the multimedia level, this engine relies on the Kha framework. It uses a physically-based renderer, compatible with HDR pipelines, PBR shading, and post-processing effects, all highly customizable.

Like BGE, it uses Bullet Physics as its physics engine, supporting rigid bodies, collisions, and soft physics. It also allows configuring the Oimo physics engine as an alternative. Additionally, it offers support for particle systems (emitter and hair) with GPU instancing to improve performance.

Armory 3D has greater compatibility for exporting your game to different platforms and offering optimized animation performance. It currently supports Windows, macOS, Linux, Web, Android, iOS, and consoles (with specific configurations).

Unlike the previous ones, Armory 3D is mainly driven by a single developer (Lubos Lenco), and this is reflected in the fact that updates arrive sparingly. Even so, collaborations and external contributions are gradually increasing, forming a nascent core of developers.

In terms of licensing, an advantage over the direct heirs of BGE is that Armory 3D uses the more permissive Zlib license than Blender's GPL, allowing greater flexibility for commercial projects.

Conclusions 

As you can see, game development with Blender is very much alive, not only using it as a complementary modeling and animation tool but as an engine in itself.

Today it does not offer performance comparable to what can be obtained with dedicated engines like Unity, Unreal, or Godot Engine, but the possibility of concentrating both programming and modeling, texturing, and rigging of assets in a single tool can greatly simplify the lives of those who want to get started in the world of video games. Not to mention that languages like Python or Haxe are really easy to learn to implement typical game algorithms.

My advice, if you want to get started with these types of engines, is to start with UPBGE and then try the other two to see what differential value they can offer you.