Peter Gostev egy kísérleti projektet készített DOOMQL néven, amelyben a játék logikáját és a képernyő megjelenítését teljes egészében SQL-lekérdezések hajtják végre. A projekt elkészítésében GPT-5.6 Sol volt segítségére. A koncepció szándékosan provokatív kérdésre épül: mi történne, ha az SQLite nem csak adattárolóként, hanem magaként a játékmotor szerepében működne?
Mire képes a DOOMQL?
A DOOMQL egy kisebb, eredeti Doom-szerű játék, ahol az SQL felel a játékos mozgásáért, az ütközés detektálásáért, az ellenségek viselkedéséért, a harcért, a játékmenet előrehaladásáért és a képernyő minden RGB pixeléért. A projektben egy nagy, rekurzív CTE-t (common table expression) tartalmazó SQL-lekérdezés valósít meg egy teljes ray tracerhez hasonló működést.
Telepítés és futtatás
A DOOMQL Python terminál szkriptként futtatható. A szerző által megadott alaplépések a következők:
-
Klónozás és futtatás a /tmp mappában:
cd /tmp git clone https://github.com/petergpt/doomql cd doomql uv run host/doomql.py
Ez a futtatás létrehoz egy SQLite adatbázist a /tmp/doomql/.doomql/doomql.sqlite elérési úton, amelyben a játék állapota tárolódik.
Vizualizálás Datasette-tel
A létrejött SQLite fájl felfedezésére és valós idejű megjelenítésére a szerző a Datasette-et használta. A következő parancs indítja el a Datasette-et a szükséges kiegészítővel:
uvx --prerelease=allow --with datasette-apps datasette /tmp/doomql/.doomql/doomql.sqlite -p 4444 --root --secret 1 --internal internal.db
A --with datasette-apps opció telepíti a Datasette Apps plugint, amely lehetővé teszi egyedi HTML+JavaScript alkalmazások létrehozását, amelyek közvetlenül futtathatnak SQL-lekérdezéseket a Datasette felületén belül.
Interaktív app a képernyő állapotának megjelenítésére
Peter Gostev létrehozott egy Datasette Appot, illetve egy promptot másolt be Claude chat-be (Fable 5), és megkérte a modellt, hogy építsen egy alkalmazást, amely a frame_pixels nézet x, y, r, g, b oszlopaival jeleníti meg a képernyő aktuális állapotát, és másodpercenként frissül. Ennek eredményeként egy működő HTML+JavaScript app jött létre a Datasette felületén, amely közvetlenül tükrözte a terminálban futó játék állapotát.
A fejlesztés után a szerző további kérést tett a chatben: adjon hozzá egy minimapot. Ennek megfelelően a Datasette App immár minimappal együtt jeleníti meg a játék állapotát.
Forráskód és alkalmazás
A szerző megosztotta az alkalmazás HTML kódját, amely bemásolható bármely Datasette példányba a fenti uvx --with datasette-apps recept használatával, így bárki kipróbálhatja a vizualizációt és a játékot.
Miért érdekes ez?
A DOOMQL demonstrálja, hogy egy relációs adatbázis-szerkezet és SQL lekérdezések kreatív módon képesek meghajtani olyan viselkedést és megjelenítést, amit általában játékmotorokkal társítunk. A projekt bemutatja az adatbázisok és a webes vizualizáció kombinációjának rugalmasságát, továbbá példaként szolgál a generatív AI és fejlesztői eszközök (itt: GPT-5.6 Sol és Claude/Fable 5) segédletével készített kísérleti rendszerekre.
Következő lépések
A projekt kódja és a megosztott HTML alkalmazás lehetővé teszi az érdeklődők számára, hogy saját környezetükben kipróbálják a rendszert, megismerjék a megvalósítást, és saját bővítéseket készítsenek a Datasette Apps segítségével.
(Információk a projekt leírása alapján: Peter Gostev, GPT-5.6 Sol, Claude (Fable 5), Datasette, Datasette Apps.)



