Dieses Transkript behandelt die Veröffentlichung der OLC Pixel Game Engine 3 (PGE3) als Open Beta im Rahmen des One Lone Coder Code Jam 2026, der vom 2D-Game-Asset-Anbieter Craftpick.net gesponsert wird. Der Entwickler erläutert die wesentlichen architektonischen Änderungen und Neuerungen im Vergleich zu PGE2. Zu den Kernmerkmalen von PGE3 gehören eine modulare, interface-basierte Architektur, vollständiges Hardware-Rendering, eine zentrale Konfigurationsstruktur (OLC_PGE3_config), ein vereinheitlichtes olc::Image-System (bei dem jedes Bild als Render-Ziel fungiert), native Unterstützung für affine Transformationen, GLSL-basierte Pixel-Shader sowie grundlegende 3D-Matrix- und Mesh-Funktionen.
Wichtigste Punkte & Zeitstempel
0:00 Code Jam 2026 & Sponsor: Ankündigung des Programmierwettbewerbs "One Lone Coder Code Jam 2026", gesponsert von Craftpick.net (Anbieter von 2D-Spiele-Assets), mit Mitgliedschaften als Preisen für die Top-5-Gewinner.
1:18 PGE3 Open-Beta-Release: Freigabe der Pixel Game Engine 3 als Open-Beta-Version mit knapp 22.000 Zeilen Code, primär vertrieben als Single-Header-Datei über GitHub.
4:34 Zentrale Konfigurationsstruktur: Ersetzung unübersichtlicher Konstruktor-Flags durch die strukturierte Klasse OLC_PGE3_config zur zentralen Steuerung von Bildschirmgröße, VSync, Fenstereigenschaften und Antialiasing.
6:26 Interface-basierte Architektur: Aufteilung der Engine-Funktionalität in dedizierte Interfaces (draw, mouse, keyboard), um die Skalierbarkeit und Wartbarkeit der stark gewachsenen Codebasis zu sichern.
9:11 Hardware-Rendering: Umstellung auf vollständige Hardware-Beschleunigung für alle Zeichenoperationen, wodurch Sub-Pixel-Genauigkeit und integriertes Antialiasing ermöglicht werden.
13:41 Vereinheitlichte Bildverwaltung: Abschaffung der strikten Trennung zwischen CPU-basierten Sprites und GPU-basierten Decals zugunsten des universellen olc::Image-Typs, bei dem jedes Bild dynamisch als Zeichenziel (Draw Target) genutzt werden kann.
21:02 Native Affine Transformationen: Verlagerung von kamerabezogenen Welt-Transformationen (Verschiebung, Rotation, Skalierung) direkt in den Kern der draw-Schnittstelle.
24:02 Benutzerdefinierte Pixel-Shader: Einführung von Support für GLSL-basierte Pixel-Shader, die globale Vollbildeffekte (z. B. Schockwellen-Verzerrungen) ermöglichen.
25:15 3D-Grafik-Unterstützung: Integration von 4x4-Matrizen, 3D-Vektoren und der draw_mesh-Funktion zur Realisierung einfacher texturierter 3D-Geometrien (z. B. rotierende Würfel).
Glossar
Open Beta: Eine öffentlich zugängliche Testphase vor der finalen Produktfreigabe, in der Software von der Community auf Fehler und Usability-Probleme geprüft wird.
Single-Header-Datei: Eine Software-Bibliothek, die komplett in einer einzigen C++-Header-Datei (.h) implementiert ist, was die Einbindung in Projekte erheblich vereinfacht.
VSync (Vertical Synchronization): Eine Technologie zur Synchronisierung der Bildwiederholfrequenz des Monitors mit der Framerate der Anwendung, um Bildzerreißungen (Tearing) zu verhindern.
Interface: Ein Programmierkonstrukt, das eine definierte Schnittstelle bereitstellt, um den Zugriff auf bestimmte subsystemspezifische Funktionen (wie Grafik oder Eingabe) zu kapseln.
Sub-Pixel: Die Darstellung von Grafiken und Koordinaten mit einer höheren Präzision als ganzen Pixeln, um flüssigere Bewegungen und sanftere Übergänge zu ermöglichen.
Antialiasing: Ein Verfahren zur Glättung treppenartiger Kanten an diagonalen Linien und Kurven durch gezielte Farbmischung der angrenzenden Pixel.
Sprite: Ein traditionelles, zweidimensionales Bitmap-Objekt, das im Hauptspeicher (CPU) gehalten und für 2D-Grafiken verwendet wird.
Decal: Eine zweidimensionale Grafik, die direkt im Videospeicher (GPU) resident ist und hardwarebeschleunigt gerendert wird.
Affine Transformation: Eine geometrische Transformation (bestehend aus Translation, Rotation und Skalierung), die Kollinearität und Abstandsverhältnisse von Geraden erhält.
GLSL (OpenGL Shading Language): Eine C-ähnliche Programmiersprache, mit der Shader-Programme direkt auf der Grafikkarte (GPU) zur Bild- und Effektberechnung ausgeführt werden.
Uniform: Eine globale Variable in einem Shader, deren Wert von der CPU an die GPU übergeben wird, um Parameter pro Zeichenvorgang (Draw-Call) zu steuern.
Mesh (Polygonnetz): Eine Ansammlung von Vertices (Eckpunkten), Kanten und Polygonen, die die Form eines dreidimensionalen Objekts im Raum definiert.