Yazılım geliştirici Lukas Vogel, klasik oyun Doom'u bir SQL veritabanında çalıştırmayı başardı. SQLDoom adlı proje, CedarDB tablolarında saklanan oyun geometrisi ve durumunu kullanan 1.300 satırlık SQL sorgusu aracılığıyla saniyede 35 kare hızında tam renkli 640×480 piksel görüntüler oluşturuyor.
Veritabanında Oyun Mantığı
Projenin mimarisinde bir Python istemcisi kullanıcı girdilerini alır, oyunun zamanlamasını yönetir ve her kareyi ekrana gösterir. Arka tarafta ise yaklaşık 89 ortak tablo ifadesi arasında dağıtılan SQL sorguları, oyunun tüm mantığını ve görüntü üretimini yürütüyor. Vogel, Doom'un klasik WAD dosyalarını ilişkisel bir veritabanına dönüştürmenin nispeten basit olduğunu ve oyunun zaten köşeleri, çizgileri, sektörleri gibi elemanlar halinde yapılandırılmış olmasının bunu kolaylaştırdığını açıklıyor.
Önceki Projeden Büyük Adım
SQLDoom, Vogel'in geçen yıl geliştirdiği DoomQL projesinden önemli bir ilerleme temsil ediyor. O proje, tamamen SQL ile çok oyunculu bir Doom benzeri oyun yapmayı hedeflemiş ancak ışın izleme yöntemi kullanarak gri tonlu ASCII grafikleriyle sınırlı kalmıştı. Yeni versiyonda ise orijinal Doom'un yürütülebilir dosyasından çıkmış gibi görünen tam renkli çerçeveler elde ediliyor. Vogel, Doom'un ünlü ikili uzay bölme ağaçlarını SQL'de kullanmak için her konuma önceden hesaplanmış bir sıralama anahtarı kullanarak, performansı büyük ölçüde iyileştirmiştir.
Ne anlama geliyor?
Bu proje, bir veritabanının geleneksel veri depolama ve işleme görevinin çok ötesine nasıl genişletilebileceğini gösteriyor. Normalde sayısal veriler, metin ve yapılandırılmış bilgiler depolamak için kullanılan veritabanı sistemleri, belirli koşullar altında gerçek zamanlı grafik işleme gibi yoğun hesaplama görevlerini de yerine getirebilir. Bu, veritabanı motorlarının hesaplama yeteneğinin ve SQL dilinin esnekliğinin ne kadar geniş olduğunu ortaya koymaktadır.
Pratik açıdan, bu tür deneyler yazılım mühendisliğinde sınırları test etmek ve yeni yaklaşımlar keşfetmek için değerlidir. Bir veritabanı tabanlı oyun motoru gerçek dünya uygulamalarında kullanışlı olmasa da, bu metodoloji veri-yoğun simülasyonlar veya karmaşık hesaplamaların veritabanı sistemleri içinde yapılması gereken senaryolarda yeni perspektifler sunabilir. Ayrıca, eski bir oyunun yapısal özelliklerinin modern bir teknoloji üzerinde yeniden uygulanması, ileriye dönük uyumluluğu ve eski yazılımların yeni platformlarda yaşatılmasını düşünmek açısından da ilginç bir alıştırmadır.





Yorumlar (0)
İlk yorumu sen yaz.