Doom 64 kilobayta sığar mı? Commodore 64'te açılan koridorlar
Doom'un 1999'da GPL ile açılan kodu, oyunu her cihazın sınav tahtasına çevirdi. Bu sonbaharın iki ucu: 1 megahertzlik Commodore 64 ve tek bir SQL sorgusunun içinde çalışan bir kopya.
Commodore 64'ün ekranında dokulu bir koridor uzanıyor. Kapı açılıyor, asansör zemini yukarı taşıyor, tavan yüksekliği yer yer değişiyor. Bu görüntüyü üreten makinenin içinde 1 megahertz hızında bir 6510 işlemci ve 64 kilobayt bellek var. 1993'te Doom'un istediği asgari bellek ise 4 megabayttı: tam 64 katı.
Görüntü, Steve McCrea'nın aylardır sürdürdüğü bir uğraşın ara karesi. McCrea rastgele bir hobici değil. Hardware Busters'ın derlediği özgeçmişine göre 1996'da Final Doom'un seviye tasarımcılarından biriydi, ardından üç Metroid Prime oyununda mühendislik yaptı, Resident Evil 4'ün Quest için hazırlanan sanal gerçeklik sürümünde çalıştı. Şimdi aynı oyunu, Doom'dan on bir yıl eski bir ev bilgisayarına sığdırmaya uğraşıyor ve projesini Kweepa adıyla paylaşıyor.
-
Yemek tarifleri
Malzeme listesi, adım adım yapılış, süre ve porsiyon bilgisiyle. Çorbadan tatlıya kategoriye göre gez ya da aradığını doğrudan ara.
Tariflere bak → -
Nasıl yapılır rehberleri
Telefon ayarlarından resmî işlemlere, hesap güvenliğinden günlük hayattaki küçük sorunlara: numaralı adımlar ve tahmini süreyle anlatılmış rehberler.
Rehberleri gör → -
Program arşivi
Tarayıcılar, güvenlik araçları, ofis ve medya yazılımları. Her kayıtta ne işe yaradığı, sürümü ve indirme bağlantısı.
Programlara göz at → -
Sesli ve görüntülü sohbet
Odalarda grup görüntülü sohbet, birebir sesli arama ve canlı yayın. Tarayıcıdan çalışır — eklenti, uygulama ya da kurulum gerekmez.
Odalara gir →
Aynı haftalarda bambaşka bir alandan ikinci bir deneme geldi. Veritabanı şirketi CedarDB'nin mühendisi Lukas Vogel, 22 Eylül 2026 tarihli blog yazısında Doom'un hem oyun mantığını hem de çizim motorunu SQL'e taşıdığını duyurdu. Oyunun bu kopyası bir programın içinde değil, bir veritabanı sorgusunun içinde çalışıyor. İki proje, otuz yılı aşkın süredir sorulan tek bir soruya verilmiş iki ayrı yanıt: "Bunu Doom çalıştırır mı?"
Bir oyun nasıl ölçü birimine dönüştü
Doom 10 Aralık 1993'te MS-DOS için çıktı. Dağıtım yöntemi kaderini belirledi: ilk bölüm ücretsizdi, gerisi id Software'den doğrudan satın alınıyordu. Wikipedia'nın aktardığına göre bu model şirkete günde 100 bin dolar getiriyordu. Ama oyunun her yere yayılmasının asıl nedeni sonra geldi. id Software kaynak kodu 1997'de ticari olmayan bir lisansla, 1999'da GNU Genel Kamu Lisansı ile serbest bıraktı.
O karardan sonra Doom bir oyun olmaktan çıkıp bir ölçü birimine dönüştü. Yeni bir ekranlı cihaz çıktığında ilk sorulan şey teknik özellikleri değil, Doom'u çalıştırıp çalıştırmadığı oldu. Wikipedia bu durumu "uzun soluklu bir internet şakası" olarak tanımlıyor ve akıllı termostatlardan piyanolara uzanan portları örnek veriyor. İşin bir arşivi bile var: canitrundoom.org, bilinen portları katalogluyor ve sayfanın üstünde şu cümle duruyor: "Her şey DOOM'u çalıştırabilir, ama o seni çalıştırabilir mi?"
Bu şakanın içinde pek konuşulmayan bir ayrıntı var. "Doom çalışıyor" denen şeylerin çoğu, 1993'te yazılmış kodu çalıştırmıyor. Yapılan iş genellikle oyunun verisini — harita dosyalarını, dokuları, sesleri — alıp o donanımın diliyle yeni bir motor yazmak. Aşağıdaki üç projenin ortak noktası da bu: üçü de aynı haritada yürüyor, hiçbiri aynı yoldan gitmiyor.
64 kilobayta sığan ilk bölüm
McCrea'nın yöntemi, orijinal Doom'un tercihinin tam tersi. Doom sahneyi çizmek için ikili uzay bölünmesi ağacı (BSP) kullanıyordu: harita, önceden hesaplanmış bir ağaç yapısına bölünür, oyuncu nerede duruyorsa ağaç o noktadan dolaşılarak hangi duvarın önde olduğu bulunur. McCrea bunun yerine ızgara üzerinde ışın atma (ray casting) yapıyor. Ekranın her dikey sütunu için gözden bir ışın gönderiliyor, ışın hücre hücre ilerliyor, çarptığı ilk duvar o sütunun yüksekliğini belirliyor. Hesap daha kaba ama 1 megahertzlik işlemciye uygun.
Kodun kökeni de ilginç: McCrea bu motoru, C64'ten önce gelen VIC-20 için yazdığı The Keep adlı birinci şahıs zindan oyununun kodundan geliştirdi. VIC-20'nin standart belleği 5 kilobayttı.

Hardware Busters'ın aktardığına göre McCrea'nın elinde, her şey yerleştikten sonra yaklaşık 15 kilobayt boş yer kalmış. Çalışan kapılar, asansörler, sektör bazlı ışıklandırma, yerde kalan bedenler, gökyüzü katmanı, kaydırılabilir otomatik harita ve PC hoparlörünün özgün ses verisinden alınmış efektler var. Hedef, ilk bölümün tamamı: E1M1'den E1M8'e sekiz harita. Eksik olan tek büyük parça müzik; McCrea C64'ün SID ses yongası için beste yapacak birini arıyor. Henüz indirilebilir bir sürüm yayımlanmadı.
Aynı bilgisayarın 64 kat hızlandırılmış hâli
İkinci proje aynı makineyi hedefliyor ama farklı bir sürümünü. Honza Slesinger'in Hondani adıyla yürüttüğü DOOM C64U, 2025'ten sonra satılan resmî Commodore 64 Ultimate donanımı için yazıldı: 6510 uyumlu işlemci 64 megahertze kadar çıkıyor, yanında 16 megabaytlık bellek genişletme birimi (REU) var. Yani ortam, 1982'nin C64'ü değil, onun modern yeniden üretimi.
Bu bütçeyle Slesinger orijinalin yolunu izleyebiliyor: motor BSP ağacını gerçekten önden arkaya dolaşıyor, görüş alanı dışında kalan geometriyi küre sınırlarıyla ve arka yüz ayıklamayla atıyor, renk derinliğini Bayer deseniyle taklit ediyor. Tüm hesap sabit noktalı aritmetikle, yani ondalık sayıları tam sayı gibi tutan yöntemle yapılıyor. Çıktı 160'a 176 piksellik bir tampon ve proje sayfasındaki ölçüme göre kilitli 16,6 kare/saniye; kare başına 59,85 milisaniyelik bütçenin yaklaşık 11 milisaniyesi hâlâ boş. E1M1 baştan sona yürünebiliyor: dokulu duvarlar, animasyonlu kapılar, hareketli sektörler, canlı nesneler, elde taşınan nesnenin görünümü, durum çubuğu ve REU'dan akan SID müziği.
Proje sayfası bir ayrıntıyı özellikle vurguluyor: motorun içinde "id Software kodundan 0 satır" var. Dağıtım CC BY-NC-SA 4.0 ile, ticari olmayan bir hayran işi olarak yapılıyor.
Hondani kanalının yayımladığı görüntüde E1M1 baştan sona oynanıyor.
Doom'un veritabanı sürümü
Üçüncü proje, donanımı değil hesaplama ortamını değiştiriyor. SQL, veritabanlarına soru sormak için tasarlanmış bir dildir; döngü kurmak, değişken tutmak, adım adım ilerlemek onun doğasında yok. Vogel'in yaptığı iş, bu dili bir oyun motoruna dönüştürmek.
Temel yapı taşı ortak tablo ifadesi (common table expression, kısaca CTE): bir sorgunun içinde geçici bir ara tablo tanımlayıp sonraki adımlarda ona isimle atıfta bulunma yöntemi. Birbirini besleyen CTE'ler dizisi, aslında bir boru hattı kurar. Özyinelemeli CTE ise bu ara tablonun kendi çıktısını yeniden kendisine beslemesine izin verir; SQL'de döngünün karşılığı budur ve ağaç gibi iç içe yapıları dolaşmak için kullanılır.
Vogel'in yazdığına göre Doom'un WAD dosyasındaki tepe noktaları, çizgiler ve sektörler tablolara aktarıldı. Oyun mantığı yaklaşık 5.900, çizim motoru yaklaşık 1.300 satır SQL; toplam 7.200 satır civarında. Tek bir çizim sorgusu 89 CTE'den oluşuyor ve çıktısı 320'ye 200 piksellik kare.
İlginç olan BSP ağacının ele alınışı. Her karede ağaca yeniden inmek yerine, kökten alt sektörlere giden tüm yollar önceden hesaplanıp her kararın sonucu bir bigint sayısının bit konumlarına kodlanıyor. Bu sayılar sözlük sırasına göre dizildiğinde ortaya önden arkaya doğru doğru çizim sırası çıkıyor. Yani klasik özyinelemeli iniş, tek bir toplama ve sıralama işlemine indirgenmiş oluyor — veritabanlarının zaten en iyi yaptığı iki şey.
Python kodu da var ama rolü sınırlı: klavyeyi yoklamak, oyunun 35 hertzlik zamanlamasını tutmak ve veritabanından dönen bitmap'i ekrana basmak. Oyun mantığı ve çizimden hiçbir parça Python'da değil. Ölçüm, AMD Ryzen 7 7840U işlemcili bir dizüstünde çizimin 60 kare/saniyeye kadar çıktığını, kalabalık sahnelerde 35'e düştüğünü söylüyor. Dört kişilik ölümüne oyun kipi de çalışıyor; oyuncuların durumunun tutarlı kalmasını veritabanının atomik işlemleri sağlıyor.
Vogel'in kendi değerlendirmesi, projeden çıkan en kalıcı cümle: "Doğrusunu söylemek gerekirse, oldukça karmaşık oyun mantığını SQL'de ifade etmenin ne kadar kolay olduğuna şaşırdım."
Üç deneme, üç ayrı sınır
Üç projenin verileri kendi sayfalarından ve geliştiricilerin paylaştığı ölçümlerden derlendi:
| Proje | Ortam | Çözünürlük | Hız | Durum |
|---|---|---|---|---|
| Steve McCrea (Kweepa) | Standart C64, 1 MHz, 64 KB | Belirtilmedi | Belirtilmedi | E1M1-E1M8 hedefi, sürüm yayımlanmadı |
| DOOM C64U (Hondani) | C64 Ultimate, 64 MHz, 16 MB REU | 160x176 | 16,6 kare/saniye | İki aşama tamam, E1M1 oynanabilir |
| SQLDoom (CedarDB) | CedarDB veritabanı + Python arayüz | 320x200 | 35-60 kare/saniye | Tek ve dört kişilik kip çalışıyor |
Sırada ne var
Üç projenin hiçbiri bitmiş değil. McCrea'nın sekiz haritası tamamlanmadı ve elinde müzik yok; indirme bağlantısı çıkmadan önce C64 sahnesinden bir SID bestecisinin katılması gerekiyor. Hondani'nin motoru tek haritada duruyor, kare bütçesindeki 11 milisaniyelik boşluk ikinci bir haritanın mı yoksa düşmanların yapay zekâsının mı eklenebileceğini belirleyecek. SQL tarafında ise soru teknik değil, felsefi: Vogel'in gösterdiği şey bir oyunun veritabanında çalışabileceği değil, veritabanı dillerinin sanıldığından çok daha genel amaçlı birer hesaplama ortamı olduğu.
Bu da "Bunu Doom çalıştırır mı?" sorusunun otuz yıl sonra hâlâ işe yaramasının nedeni. Soru cihazın gücünü değil, elindeki aracın sınırlarını nereye kadar zorlayabildiğini ölçüyor.
Fotoğraf: Evan-Amos, Public domain, Wikimedia Commons