Egy fejlesztő működő Doom SQL adatbázis-portot épített, így az 1993-as lövöldözős játék játszható játékká változtatta, amely teljes egészében élő adatbázis-lekérdezéseken keresztül fut a hagyományos játékmotor helyett. A projekt a CedarDB-t, egy modern analitikai adatbázist használja minden képkockának kiszámításához, minden ellenség követéséhez, és még a többjátékos munkamenetek valós időben történő kezeléséhez is.
Kulcs elvitelek
- ✓Egy fejlesztő egy működő Doom SQL adatbázisportot épített a CedarDB lekérdező motor segítségével
- ✓Minden keretet élő SQL-lekérdezések generálnak hagyományos játékmotor helyett
- ✓A port támogatja a teljes színvisszaadást, a játéklogikát és a többjátékos munkameneteket
- ✓A CedarDB egy nagy teljesítményű elemző adatbázis, amelyet egykori egyetemi kutatók építettek
- ✓A projekt csatlakozik a Doom hosszú történetéhez, amelyet valószínűtlen hardverre és szoftverre portoltak
Viccnek hangzik, amíg nem fut a képernyőn. A Doom már régóta az internet kedvenc mércéje a „futtatni tudja-e a Doom” kísérleteket, a terhességi tesztektől kezdve az ATM-ekig és a nyomtatókig mindenhol megtalálható. Ez a legújabb próbálkozás ezt a hagyományt valami idegenbe tolja: egy szoftver, amelyet általában táblázatok és üzleti nyilvántartások tördelésére használnak, most egy első személyű lövöldözős játékot jelenít meg teljes színben, képkockánként, strukturált lekérdezéseken keresztül.
Hogyan működik a Doom SQL adatbázis-port valójában?
Az adatbázis lényegében táblázatokban tárolja az információkat, és lekérdezések segítségével válaszol az információkkal kapcsolatos kérdésekre. A Doom SQL adatbázis-portja ugyanazt a struktúrát veszi fel, és úgy rendeli újra, hogy egy játékvilágot képviseljen. A térkép geometriája, az ellenség pozíciói, a játékos állapota és a fegyverállapotok mind sorokként tárolódnak a táblázatokban, nem pedig változókként a játékmotor memóriájában.
A játékmenet minden egyes képkockája az adatok lekérdezésének futtatásával jön létre, újraszámolva, hogy mi változott az utolsó képkocka óta, és előállítva a megjelenítéshez szükséges képpontokat. Ez magában foglalja a világítást, a sprite-elhelyezést és a színeket, amelyek közül a hagyományos adatbázisok egyikét sem hozták létre. A projekt valóban nehéz része egy lekérdezőmotor létrehozása, amely használható képet hoz létre lejátszható képkockasebességgel, nem csupán egy számtáblázatot.

A játék logikáját, például az ütközésérzékelést, az ellenséges viselkedést és a sebzésszámításokat ugyanúgy kezeli, lekérdezéseken keresztül, nem pedig kézzel írt játékkódon keresztül. A többjátékos mód úgy működik, hogy lehetővé teszi, hogy több kliens egyidejűleg lekérdezze és frissítse ugyanazt a megosztott adatbázis-állapotot, ami közel van ahhoz, hogy már mennyi valós üzleti alkalmazás kezel egyidejű felhasználókat, csak virtuális démonok számára leltárrekordok helyett.
Miért volt a CedarDB a megfelelő eszköz a munkához?
A CedarDB nem hobbiprojekt. A Müncheni Műszaki Egyetem korábbi kutatóiból álló csapat építette, akik éveket töltöttek a nagy teljesítményű lekérdezés-összeállítással, és gyorsabb alternatívaként kínálják a már bevett rendszerekhez az analitikai munkaterheléshez. Ez a sebesség számít itt, mert egy adatbázis, amelyet úgy terveztek, hogy másodpercenként több millió rekordot forgatjon, sokkal alkalmasabb több tucat képkocka létrehozására másodpercenként, mint egy régebbi, lassabb rendszer.
A Doom futtatása a CedarDB-n keresztül hatékonyan a motor lekérdezés-fordítási sebességének nyilvános stressztesztjeként működik, oly módon, hogy az bárki számára azonnal érthető legyen, ellentétben egy tipikus, absztrakt számokkal teli adatbázis-benchmarktal. A nézőnek semmit sem kell tudnia a lekérdezés tervezéséről, hogy megértse, hogy egy lövöldözős játék zökkenőmentesen fut valamiben, aminek egyáltalán nem volt célja grafika megjelenítése.
| Vonatkozás | Tradicionális Doom motor | Doom SQL adatbázis port |
|---|---|---|
| Rendering | Egyedi szoftver renderer | Élő SQL lekérdezéseken keresztül generálva |
| A játék állapota | A memóriában lévő változók | Adatbázis táblaként tárolva |
| Többjátékos | Dedikált hálózati kód | Egyidejű lekérdezések megosztott állapotban |
| Elsődleges cél | Játékmeneti teljesítmény | A lekérdezési motor sebességének bemutatása |
A Doom mindig is az internet kedvenc portolási célja volt
Ez messze nem az első alkalom, hogy valaki úgy dönt, hogy a Doom valahova tartozik, amelyet nyilvánvalóan nem arra terveztek, hogy működjön. A rajongók korábban számológépekre, okoshűtőkre, digitális fényképezőgépekre, sőt még egy kis képernyős terhességi tesztre is rányomták. A fellebbezés részben technikai kérkedés, részben nosztalgia, hiszen az eredeti játék alacsony rendszerigénye és nyitott fájlformátumai szokatlanul elnéző célponttá teszik a kísérletezést.

A Doom SQL adatbázis-portot az különbözteti meg egymástól, hogy a legtöbb korábbi port még mindig valami hagyományos játékhurokra támaszkodik, még furcsa hardvereken is. A játék tényleges logikájának futtatása és az adatbázis-lekérdezéseken keresztüli megjelenítés egy teljesen másfajta kihívás, közelebb áll ahhoz, hogy egy számológépet kérjünk fel zeneszerzésre, mint egy játékot egy kisebb képernyőre zsugorítani.
Mit jelent az újdonságon túl
Azon túl, hogy a Doom valami abszurd helyen fut, a projekt valami valóságosat is elmond arról, hogy a modern lekérdezőmotorok mennyire alkalmassá váltak. Az adatbázisokat általában az alapján ítélik meg, hogy milyen gyorsan tudják rendezni, szűrni és egyesíteni az adatokat, nem pedig az alapján, hogy képesek-e elérni a lejátszható képkockasebességet a 3D környezet renderelése közben. Ennek levonása azt sugallja, hogy a CedarDB lekérdezés-összeállítása valóban gyors, nem csak a régebbi adatbázisszoftverekhez képest.
A játékmegőrzés szerelmesei számára ez arra is emlékeztet, hogy a Doom motorja és fájlstruktúrája mennyire rugalmas marad több mint három évtizeddel a megjelenés után, jóval azután, hogy eredeti kiadója más projektekre lépett. Az adatbázis-mérnökök számára ez egy sokkal szórakoztatóbb demó, mint egy másik táblázatkezelő benchmark, és valószínűleg az elkövetkező években is hivatkozni fognak rá a lekérdezőmotorok teljesítményéről szóló prezentációkban.
Gyakran ismételt kérdések
Milyen adatbázist használnak a Doom futtatásához?
A projekt a CedarDB-t használja, egy nagy teljesítményű analitikai adatbázist, amelyet a Müncheni Műszaki Egyetem korábbi kutatóiból álló csapat épített fel a gyors lekérdezések összeállításához.

A Doom SQL adatbázis-portja teljesen lejátszható?
Igen. Támogatja a teljes színvisszaadást, a szabványos játéklogikát, például a harcot és a mozgást, valamint a többjátékos munkameneteket, amelyek mindegyike élő SQL-lekérdezéseken keresztül jön létre, nem pedig hagyományos játékmotoron.
Miért portolják át a fejlesztők a Doomot szokatlan platformokra?
A Doom alacsony rendszerkövetelményei és nyíltan dokumentált fájlformátumai könnyű célponttá teszik a kísérletezést, és sikertelen futtatása valószínűtlen hardveren vagy szoftveren a fejlesztők számára a technikai tudás bemutatásának jól ismert módja lett.
Ez azt jelenti, hogy az adatbázisok helyettesíthetik a játékmotorokat?
Nem reálisan. A projekt a lekérdezési motor sebességét és rugalmasságát mutatja be, nem pedig a játékfejlesztés gyakorlati megközelítését, mivel a célra épített motorok sokkal hatékonyabbak maradnak a valódi játékokban.