Eszközök

DOOMQL: SQLite alapú Doom-szerű játék és Datasette megjelenítés

A projekt főszereplője Peter Gostev, aki GPT-5.6 Sol segítségével hozta létre a DOOMQL nevű kísérleti alkalmazást, amelyben az SQLite maga a játékmotor.

DOOMQL: SQLite alapú Doom-szerű játék és Datasette megjelenítés

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:

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.)