- 2003 tarihli, yalnızca Windows’a özel TPS oyunu GunZ: The Duel,
→ WebAssembly + WebGL tabanlı olarak tarayıcıda çalışabilir hale getirildi
- Kurulum gerekmeden Chrome’da yalnızca URL’yi açarak hemen oynanabiliyor https://gunz.sigr.io/
- Linux, macOS ve mobil dahil neredeyse tüm ortamlarda çalışıyor
- Mevcut C++ kodu neredeyse hiç değiştirilmeden korundu
- Yeni yazılan kodun yaklaşık %99’u yapay zeka tarafından üretildi
Neden önemli
- Mevcut PC oyunlarında:
- indirme/kurulum gerekir
- Windows’a bağımlıdır
- Bu sonuçta ise:
- tamamen aynı oyun tarayıcıda çalışıyor
- “benzer bir uygulama” değil, orijinalin birebir taşınmış hali
- Geçmişte bu, “teoride mümkün ama pratikte imkânsız” görülen bir alandı
Geçmiş denemeler ve başarısızlıklar
- Önceki yaklaşım:
- JavaScript + Three.js ile motoru baştan uygulamak
- Sonuç:
- yalnızca harita render etmeye kadar başarıldı
- tüm motoru yeniden uygulamanın zorluğu çok yüksek olduğu için durduruldu
- Sonuç olarak:
- “yeniden uygulama yöntemi” pratikte neredeyse imkânsızdı
Temel sorun: Windows bağımlılığı
- GunZ, C++ tabanlı ve Direct3D’ye bağımlı
- Sorun:
- Direct3D, yalnızca Windows’a özel bir API
- tarayıcıda (WebGL) doğrudan kullanılamıyor
- Basit bir wasm derlemesiyle bu çözülemiyor
- Yani:
- yalnızca platformdan bağımsız kod wasm’e taşınabiliyor
- grafik API’sine bağımlı kısımlar en büyük engeli oluşturuyor
Mevcut yaklaşımların sınırları
- Oyun kodunu doğrudan değiştirmek
- on binlerce satırın değiştirilmesi gerekir
- bakımı imkânsız hale gelir
- Otomatik dönüşüm (D3D → WebGL)
- API anlam farkları nedeniyle mekanik dönüşüm mümkün değil
- Sonuç:
- mevcut yöntemlerin tamamı gerçekçi değildi
Temel fikir: “çeviri katmanı”
- Yaklaşım:
- oyun kodu olduğu gibi korunuyor
- Direct3D çağrıları yakalanıyor
- gerçek zamanlı olarak WebGL’e dönüştürülüyor
- Uygulama:
- D3D9 API’siyle aynı arayüze sahip bir WebGL wrapper’ı
- oyun ile grafik API’si arasına yerleştiriliyor
- Etkisi:
- oyun kodunda neredeyse hiç değişiklik gerekmiyor
- Windows bağımlılığı ortadan kalkıyor
- taşıma maliyeti “wrapper’ı uygulama” ile sınırlanıyor
Yapay zekanın rolü
- Kullanılan araçlar:
- Google Antigravity
- Claude Code (Max planı)
- Sonuç:
- büyük ölçekli kod analizi ve düzenleme otomatikleştirildi
- haftalar sürecek sorunlar birkaç saat içinde çözüldü
- fiilen insanın yapamayacağı işleri üstlendi
- Özellikle:
- D3D → WebGL wrapper’ının büyük kısmını yapay zeka üstlendi
Kısa özet
- Bu, “oyunu yeniden yapmak” değil,
→ mevcut kodu olduğu gibi yaşatacak şekilde çözmek
- Temel teknolojiler:
- WebAssembly
- Direct3D → WebGL çeviri katmanı
- Temel değişim:
- yapay zeka sayesinde büyük ölçekli legacy porting gerçekçi bir işe dönüştü
- Çıkarım:
- bundan sonra eski oyunların/yazılımların web’e taşınma zorluğu keskin biçimde düşebilir
10 yorum
Yapay zeka da etkileyici ama bence asıl pay, D3D9'un arayüz olarak iyi ayrılmış olmasında. Doğrudan referanslarla iç içe geçmiş olsaydı, muhtemelen çok daha zor olurdu.
Sanırım bunu Direct3D çeviri katmanı kurup işleyerek yapmışlar; dün mü ne Inven’deki haberi görmüştüm.
Test edeyim diye 1 dakikadan bile kısa bir süre bakmışken görüntü kalitesinin pek iyi olmadığı düşüncesi bende epey baskındı, ama bunu sıfırdan yeniden yapmak yerine çeviri katmanından geçirip olduğu gibi kullandıklarını düşününce bunun anlaşılır olduğunu düşünüyorum...
Yine de, orijinal blogu biraz riskli bir şekilde işletmeyi planlıyor gibiler. Bunun bir çeviri yazısı olduğunu ya da orijinal kaynak olduğunu belirtmeleri gerekirken... sanki kendileri yazmış gibi davranıyorlar hissi oldukça güçlü... Yorumlarda da buna işaret eden bir kısım vardı ama yanıt yok.
(En başta, orijinal blogdaki referans yazılarının hepsi Japonca tarafında.)
Mantıksız olan bir nokta da, Hanwha bazında Anti Gravity Money için aylık 3000 wonluk bir plan yok. Görsellerde vb. her yerde Japonca görünüyor. Hatta bazı görsellerde İngilizce de var.
Öyle olacaktıysa en baştan Koreceye çevirip kullanırlardı diye düşünüyorum.
Ödeme yaptığını söylediği şey 5x, ama ekran görüntüsü 20x gerçi; yine de Japonya'da yaşayan biri olabilir tabii, neyse...
Okudukça kişinin kendisi mi acaba diye düşündüren bir his de veriyor.
sigr.ioya girince görünen ifade de aespa'nın bir şarkı sözü,Gunz proje adı da aespa şarkı adı olan Whiplash Gunz,
velog handle'ı da aespa olarak tutarlı biçimde aespa'yı seviyor gibi bir izlenim verince, acaba çeviri yaptırıp velog'a kendisi mi yükledi diye düşünmeden edemiyorum.
Bunu yapan kendisi değilmiş.
Ama Guns'ın Steam sürümü çıktıysa... hukuki bir sorun yok mu diye düşündürüyor.
Vay canına, gerçekten harika.
Çok sevdiğim bir oyundu, onu yeniden hayata döndürdüğünüz için teşekkürler.
Ama galiba bağlanan kimse yok.
Sanırım bunun nedeni sunucunun da tarayıcının içinde çalışması. Birden fazla kişiyle birlikte oynamak istiyorsanız, oyuna katılacak kişilerin kendi aralarında bilgi alışverişi yapıp birbirlerine WebSocket üzerinden bağlanmaları gerekiyor gibi görünüyor.
Harika, yapay zekanın gerçek kullanım alanı gibi görünüyor.