Dom-u verilənlər bazasında təqdim etmək, əlbəttə ki, pis bir fikirdir, Lukas Vogel uzun bir blog yazısında yazır ki, o, necə SQL verilənlər bazasından istifadə edərək Doom-u təsvir etməyə nail olub.
Tamam, bu tamamilə doğru deyil. SQLDoom layihəsi giriş və çıxışları idarə etmək, oyun vaxtını idarə etmək və hər bir çərçivəni ekrana göstərmək üçün kiçik bir Python müştəri istifadə edir. Bunun arxasında, bir sıra CedarDB cədvəllər oyun geometriyasını və vəziyyətini izləyir, 89 ümumi cədvəlin ifadəsi üzrə yayılmış təxminən 1,300 satır SQL sorğuları oyun məntiqini tətbiq edir və saniyədə 35 bitmap framebuffer yaradır.
Bu baxımdan, SQLDoom, ötən il tamamilə SQL-də bir çox oyunçu Doom kimi atıcı qurmaq üçün nəzərdə tutulan Vogel'in əvvəlki DoomQL layihəsinə nisbətən böyük bir təkmilləşdirmədir. Təəssüf ki, bu səylər Wolfenstein 3D-nin sadə 90 dərəcəli açılı xəritələrinə daha çox bənzəyən şayqalanma əsaslı, boz miqyaslı ASCII qrafikası ilə başa çatdı. Digər tərəfdən, daha yeni SQLDoom, orijinal Doom icraatından gəlmiş kimi görünən 640×480 rəngli kadrlar istehsal edir.
Doom'un klassik WAD fayllarını əlaqəli bir verilənlər bazası ilə çevirmək nisbətən sadə və sadə idi, Vogel yazır, çünki orijinal oyun səviyyələri zirvələrə, xəttlərə, sektorlara və s. bölüşdü. Hətta Doom'un məşhur ikili məkan bölmə ağacları da yükləmə vaxtı hər bir mövqe üçün əvvəlcədən hesablanan obyektlər üçün sort_key istifadə edərək SQL-yə bölünə bilər. Masanın bu dəstini istifadə edərək, sadə bir ORDER BY ifadəsi divarın hansı hissələrini göstərmək və hər bir çərçivəni nəzərə almamaq barədə qərar verə bilər. Bu da performansını xeyli yaxşılaşdırır.
Xülasə — davamını mənbədə oxuyun.