The Blender Game Engine (BGE) was the real-time game engine built into Blender, the free 3D creation suite. From Blender 2.00 in 2000 until Blender 2.79, you could model a scene, attach game logic to it, and press P to play it in the same program. The engine was written in C++, scripted with visual logic bricks and Python, and used the Bullet physics library. Blender removed it in 2018, and Blender 2.80 shipped without it in 2019. The engine lives on in UPBGE, a community fork of Blender that keeps it alive and up to date in 2026.
This profile covers where the BGE came from, how it worked, the games made with it, why Blender removed it, and what UPBGE offers today, with a tested UPBGE Python example. Facts were checked against Blender’s and UPBGE’s source history, the Blender manual and the Apricot project pages in November 2026.
What Was the Blender Game Engine?
The Blender Game Engine was the game engine built into Blender from version 2.00 (2000) to 2.79, written in C++ and released under the GPL. Games were made inside Blender with logic bricks and Python and played in Blender or the standalone blenderplayer. Blender removed it in April 2018, before Blender 2.80. It continues today as UPBGE, a Blender fork whose latest release is UPBGE 0.50 (January 2026).
Blender Game Engine at a glance
| What it was | The game engine built into Blender (internal name Ketsji) |
|---|---|
| Introduced | Blender 2.00, August 2000 (NaN) |
| Last official Blender with it | 2.79 (2.79b, March 2018) |
| Removed | April 16, 2018, before Blender 2.80 (July 2019) |
| Written in | C++ |
| Game logic | Logic bricks (sensors, controllers, actuators) and Python |
| Physics | Bullet (added 2005 by Erwin Coumans) |
| Runtime | Inside Blender or the standalone blenderplayer |
| Licence | GNU GPL |
| Known games | Yo Frankie! (2008), Sintel The Game |
| Successor | UPBGE 0.50 (January 2026), a Blender 5.0-based fork |
From NaN to Open Source
Blender began as an in-house tool at the Dutch animation studio NeoGeo. In 1998, Ton Roosendaal founded Not a Number (NaN) to develop and sell it. With venture funding in 2000, NaN released Blender 2.00 in August 2000, which, in the words of the Blender manual, “added the integration of a game engine to the 3D application” (the Blender manual’s history page). Internally, the engine was called Ketsji.
NaN didn’t survive, and Blender became free, open-source software under the GPL in 2002. The game engine then went missing for a while: the manual lists Blender 2.33 (April 2004) with the note “Game Engine returns”. Much of the engine work was done by Erwin Coumans, whose commits in Blender’s history date back to 2002. On July 16, 2005, he added his new Bullet physics library to the game engine, and Bullet went on to become a widely used open-source physics engine in its own right.
How the Blender Game Engine Worked
The BGE was never a separate program. It ran on Blender’s own scene data:
- Logic bricks. Each object could have sensors (a key press, a collision, a timer), controllers (logic such as AND or a Python script) and actuators (move, play a sound, change scene). Wiring them together in the Logic Editor made simple games possible without any code.
- Python. For anything more complex, Python controllers used the
bgemodule to read input, move objects and manage scenes. - Physics through Bullet, with rigid bodies, vehicles, character controllers and constraints, plus navigation meshes from the Recast library for AI movement.
- The blenderplayer, a standalone runtime that played
.blendfiles outside the editor, so games could be shipped without Blender’s interface. - Extras that accumulated over the years, such as video textures (movies playing in-game) and dome (fisheye) rendering, both highlighted in Blender 2.49 (2009).
The engine’s code lived in Blender’s source/gameengine folder: about 500 files at Blender 2.79b, in folders such as Ketsji, GameLogic, SceneGraph, Physics and Rasterizer.
Games Made with the Blender Game Engine
| Game | Year | Notes |
|---|---|---|
| Yo Frankie! | 2008 | The Blender Institute’s open game (Project Apricot), starring the squirrel from the open movie Big Buck Bunny. The team planned to use Crystal Space but switched to the BGE halfway through (Project Apricot). Version 1.1 (July 2009) targets Blender 2.49a. |
| Sintel The Game | 2013 | A community-made adventure based on the open movie Sintel, released under the MIT licence and played with Blender 2.68’s blenderplayer |
Beyond these, the BGE was used mostly for hobby games, prototypes, architectural walkthroughs, teaching and interactive art, often shared on Blender community forums.
Why Blender Removed the Game Engine
On April 16, 2018, Blender developer Dalai Felinto committed “Removing Blender Game Engine from Blender 2.8”. The commit deleted the source/gameengine folder, the blenderplayer, the Logic Editor and the libraries only the engine used: 876 files and more than 193,000 lines of code (the removal commit, preserved in UPBGE’s copy of Blender’s history). It was part of the larger Blender 2.8 overhaul, which also replaced the old Blender Internal renderer with EEVEE and Cycles.
Blender 2.80 was released in July 2019 without a game engine. Blender 2.79 (with its 2.79b update of March 2018) remains the last official Blender with the BGE.
UPBGE: The Game Engine Lives On
UPBGE started in December 2015 as a fork focused on improving the BGE. When Blender removed the engine, UPBGE became its home. Today UPBGE is a complete fork of Blender: the full modelling, animation and rendering suite, with the game engine built back in.
| UPBGE | Released | Based on |
|---|---|---|
| 0.2.5 | May 2020 | Blender 2.79 |
| 0.30 | December 2021 | Blender 3.0 |
| 0.36 | May 2023 | Blender 3.6 |
| 0.44 | May 2025 | Blender 4.4 |
| 0.50 | January 2026 | Blender 5.0 |
UPBGE 0.50 added experimental GPU skinning for animated characters and much faster object spawning. It also reworked 2D filters to run on both OpenGL and Vulkan, and added new logic nodes (GameFromScratch on UPBGE 0.50). Development continues on top of new Blender releases, with weekly builds through October 2026 (UPBGE on GitHub).
Modern UPBGE keeps logic bricks and Python, and adds Python components: reusable classes you attach to an object, with settings shown in Blender’s properties. Another fork, Range Engine, continues an older, 2.79-era version of the BGE.
Hello, UPBGE: A Python Component
This component spins the object it’s attached to. Save it as spinner.py next to your .blend file, select an object, open Properties › Game Components, and register it as spinner.Spinner:
import math
from collections import OrderedDict
import bge
class Spinner(bge.types.KX_PythonComponent):
"""Spins the object it's attached to around its Z axis."""
# Shown as editable fields in the object's Components panel.
args = OrderedDict([
("Degrees per second", 90.0),
])
def start(self, args):
self.radians_per_second = math.radians(args["Degrees per second"])
def update(self):
# update() runs once per logic tick (60 per second by default).
step = self.radians_per_second / bge.logic.getLogicTicRate()
self.object.applyRotation((0.0, 0.0, step), True)
start() runs once when the game begins, and update() runs every logic tick, 60 times a second by default. The args dictionary becomes editable fields in the Properties panel, as the screenshot shows.

Tested: we downloaded the official UPBGE 0.50 Linux build and attached this component to the default cube, along with a small test harness. We then ran the scene in UPBGE’s standalone player on Ubuntu 24.04, using software OpenGL. After 60 logic ticks, one second at the default 60 ticks per second, the cube had rotated exactly 90.0 degrees. On a machine with no sound card, set UPBGE’s audio device to “None” in Preferences first, or the player crashes at startup.
Blender Game Engine Alternatives
- UPBGE: the direct continuation of the BGE, if you want to keep working inside Blender with logic bricks and Python.
- Armory 3D: another engine that runs inside Blender, scripted in Haxe or with logic nodes. See our Armory 3D profile.
- Godot: a free, open-source engine with its own editor that imports Blender files. See our Godot engine profile.
- Panda3D: an open-source engine scripted in Python, with a Blender exporter. See our Panda3D engine profile.
For more open-source engines, see our directory of open-source C++ game engines.
Key Takeaways
- The Blender Game Engine was built into Blender from 2.00 (2000) to 2.79, written in C++ and released under the GPL.
- Games were made with logic bricks and Python, with Bullet physics, and could be shipped with the standalone blenderplayer.
- Its best-known games were the open projects Yo Frankie! (2008) and Sintel The Game.
- Blender removed it in April 2018, and Blender 2.80 (2019) shipped without a game engine.
- UPBGE continues it as a full Blender fork: UPBGE 0.50 (January 2026) is based on Blender 5.0.
- A UPBGE Python component takes about 20 lines, as the tested example shows.
Conclusion
The Blender Game Engine made “model it and play it” possible in one free program long before that was common, and it introduced many artists to game logic. Blender itself moved on in 2018, but the engine didn’t disappear: UPBGE has carried it forward through every major Blender release since, all the way to Blender 5.0.
For more engines across every genre, browse our game development hub.




