# Blender Game Engine

Die Blender Game Engine, abgekürzt oft auch BGE, ursprünglich Ketsji genannt, ist eine Spiel-Engine, die in Blender, einer freien 3D-Grafiksoftware, integriert war. Sie wurde in C++ als eine größtenteils unabhängige Komponente geschrieben und unterstützt Features wie z. B. Python-Programmierung und OpenAL-3D-Sound.

## Geschichte

Erwin Coumans und Gino van den Bergen entwickelten im Jahr 2000 die Blender Game Engine. Ihr Ziel war, ein marktfähiges Produkt zu entwickeln, mit dem Computerspiele und andere interaktive Anwendungen leicht und benutzerfreundlich erstellt werden können. Diese Anwendungen sollten sowohl als Standalone-Version oder mit einem Plug-in auf Websites eingebettet funktionieren. Dieses Plug-in wurde jedoch eingestellt, da es Sicherheitsbedenken mit Python gab, jedoch wurde später versucht, das Projekt wiederzubeleben (es wurde überlegt, eine Alpha-Version für den Internet Explorer und Firefox zu entwickeln und COLLADA zu unterstützen). Ein anderes Plug-in namens Burster tauchte auf, das sicheres Spielen mit Unterstützung von Verschlüsselungen auf Websites ermöglichte.
Da der Code der Physik-Programmbibliothek (SUMO) nicht unter die Open-Source-Lizenz fiel, als der Rest von Blender dies tat, funktionierte die Blender Game Engine bis zur Version 2.37a nicht.
Blender Version 2.41 war fast vollständig der Spiel-Engine gewidmet.
GLSL-Shader und Soft-Body-Spielphysik wurden in Version 2.48 implementiert, um die Spiel-Engine wieder den modernen Spiel-Engines anzunähern. Sie nutzt OpenGL, um mit der Grafik-Hardware zu kommunizieren.
Während des Google Summer of Code 2010 wurden die Open-Source-Navigation-Mesh- und Pathfinding-Programmbibliotheken, Recast and Detour, implementiert. Jedoch wurden diese erst 2011 in den Hauptentwicklungszweig eingefügt. Zudem wurde Audaspace entwickelt, um Python bessere Audiokontrolle zu geben. Diese Programmbibliothek nutzt OpenAL und SDL.

## Ende der bisherigen Game Engine und zukünftige Entwicklung

Ton Roosendaal, der Gründer der Blender Foundation, schrieb noch 2013, dass die Blender Game Engine in der Zukunft als ein „Interaktiver Modus“ für Spiel-Prototypen, Architekturvisualisierungen und wissenschaftliche Simulationen fest in Blender integriert werden soll. Der Blender-Entwickler Martijn Berger gab 2015 an, dass die Spiel-Engine möglicherweise entfernt werde, falls für Blender Version 2.8 keine zufriedenstellende Lösung gefunden wird.
Im April 2018 wurde das endgültige Ende der Game Engine in der bisherigen Form mitgeteilt – man arbeite an einer Alternative, die aber nichts mehr mit der bekannten Engine zu tun haben werde. Die Blender Game Engine wurde vor der Veröffentlichung der Version 2.8 aus Blender entfernt.

### UPBGE

Die UPBGE ist ein Fork von Blender, die von Tristan Porteries und einigen Freunden im September 2015 gegründet wurde.
Er wurde gegründet mit dem Ziel, den offiziellen Blender Game Engine Code aufzuräumen und zu verbessern und mit neuen Funktionen zu experimentieren. Dabei übernehmen die Entwickler regelmäßig aktuelle Veränderungen aus dem offiziellen Blender Quellcode.
Am 4. Dezember 2021 wurde UPBGE 0.3.0 offiziell als Stable veröffentlicht.

### Range Engine

Die Range Engine ist ein Fork der UPBGE.
Sie wird entwickelt mit dem Ziel, die Blender Game Engine zu optimieren sowie neue Features einzubauen.

## Funktionen

Die Blender Game Engine nutzt ein System grafischer Bausteine, sogenannter „Logic Bricks“. Es gibt drei Arten von Logic Bricks:
* Sensoren(Sensors): Sie kontrollieren, ob der Benutzer Eingaben (Tastendrücke etc.) tätigt, oder etwas im Spiel verändert wird. Ist eine bestimmte Bedingung gegeben, wird ein Signal an die verbundenen Controller gesendet.
* Controller: Sie sind die „wichtigsten“ Logic Bricks. Sie steuern die Sensoren und Actuatoren, indem sie die Signale weiterverarbeiten. Dies kann mithilfe von logischen Operatoren oder Python-Skripten umgesetzt werden.
* Actuatoren (Actuators): Sie führen bei Aktivierung durch ein entsprechendes Signal eine Aktion aus.
Zu den Funktionen bzw. Bestandteilen der Blender Game Engine gehören:
* der grafische Logik-Editor zum Festlegen von Verhaltensweisen ohne Programmieren
* Kollisionserkennung von Objekten und Spielphysik mit der Bullet-Physik-Engine, die für die PlayStation 3 entwickelt wurde
* eigenständige Kollisionserkennung für Rigid-Body-Simulationen
* Unterstützung von Fahrdynamik inklusive Feder-Reaktionen, Abdämpfung, Reifenreibung etc.
* eine Python API für komplexere Aufgaben wie z. B. künstliche Intelligenz
* Unterstützung aller OpenGL-Lichtarten inklusive Transparenz, animierten Texturen sowie Reflexion-Mapping
* Unterstützung für Textur-„Blending-Modes“, pixelbasierte Beleuchtung, dynamische Beleuchtung, viele Mapping-Arten, GLSL Vertex Painting, Cel Shading (ohne Umrandungen) und Normal Mapping sowie Parallax Mapping
* Wiedergabe von Spielen und interaktiven Anwendungen ohne Kompilieren oder Präprozessor
* Wiedergabe von Audio
* Möglichkeit, Szenen auf unterschiedliche Ebenen zu legen, um z. B. eine grafische Benutzeroberfläche darzustellen

## Systemanforderungen

Um alle Funktionen von Blender angemessen nutzen zu können, sollten die Mindestanforderungen gegeben sein:
Unterstützte Betriebssysteme:
* Windows (Vista und höher)
* Mac OS X (10.6 und höher)
* Linux
| | Mindestanforderungen | Empfohlene Hardware | Optimale Hardware |
| Prozessor | 32-Bit-Dual-Core-Prozessor mit SSE2-Unterstützung | 64-Bit-Quad-Core-Prozessor | 64-Bit-Eight-Core-Prozessor |
| RAM | 2 GB RAM | 8 GB RAM | 16 GB RAM |
| Grafikkarte | OpenGL 2.1 kompatible Grafikkarte mit mindestens 512 MB RAM | OpenGL 3.2 kompatible Grafikkarte mit 2 GB RAM | zwei OpenGL 3.2 kompatible Grafikkarten mit 4 GB RAM |
| Bildschirm | 24-bit-Bildschirm (Mindestauflösung: 1280 × 768 Pixel) | 24-bit-Bildschirm mit Full-HD-Auflösung (1920 × 1080 Pixel) | zwei 24-bit-Bildschirme mit Full-HD-Auflösung |
| Eingabegeräte | Maus oder Touchpad | Maus mit drei Maustasten | Maus mit drei Maustasten und Grafiktablett |

## Galerie

* Blender Game Engine 2.42 Screenshot
* Blender Game Engine 2.42 Screenshot
* Blender GLSL Shader Node-Editor 2.42 Screenshot
* Logic Bricks und Python-Programmierung
* Screenshot aus Yo Frankie!

## Spiele (Auswahl)

* Yo Frankie!
* Dead Cyborg – Ein kostenloses, spendenbasiertes Sci-Fi Abenteuer-Spiel.
* Sintel The Game
* Boro-Toro – Ein von DarkMatter Designs entwickeltes Side-Ccrolling Plattform-Puzzle-Spiel, welches 2009 den BAFTA „Ones to Watch“ Award gewonnen hat.
* Krum: Edge of Darkness – Ein auf Steam verfügbares Hack-N-Slash-Abenteuer-Spiel.