Lukas Vogel schreibt in einem ausführlichen Blogbeitrag, wie es ihm gelungen ist, Doom mithilfe einer SQL-Datenbank zu rendern. Das SQLDoom-Projekt verwendet einen kleinen Python-Client für die Ein- und Ausgabe, die Steuerung des Spieltimings und die Anzeige jedes Frames. Dahinter verfolgt eine Reihe von Cedar DB-Tabellen die Spielgeometrie und den Spielzustand, während etwa 1300 Zeilen SQL-Abfragen über 89 allgemeine Tabellenausdrücke die Spiellogik implementieren und 35 Bitmap-Framebuffer pro Sekunde erzeugen.
SQLDoom ist eine deutliche Verbesserung gegenüber Vogels vorherigem Doom QL-Projekt, das „einen Multiplayer-Doom-ähnlichen Shooter vollständig in SQL“ erstellte, aber mit Graustufen-ASCII-Grafiken endete. Das neuere SQLDoom erzeugt vollfarbige 640×480-Frames, die der ursprünglichen Doom-Ausführungsdatei ähneln.
Die Umwandlung der klassischen Doom-WAD-Dateien in eine relationale Datenbank war einfach, sagt Vogel, weil das Spiel die Level in Scheitelpunkte, Linien und Sektoren unterteilte. Dooms binäre Raumpartitionierungsbäume können mithilfe eines für jede Position vorberechneten sort_key in SQL zerlegt werden. Damit bestimmt eine einfache „ORDER BY“-Anweisung, welche Teile der Wände in jedem Frame angezeigt werden.
Wichtige Entitäten: Unternehmen: Ars Technica | Personen: Lukas Vogel
Quelle: Ars Technica · Zusammengefasst von HeadlinesBriefing