Skip to content

Unity 6.6, WebGPU'yu deneysel statüden çıkarıyor ama kapalı tutuyor

Unity, Unity 6.6'yı 1 Eylül'de yayımladı. Bu bir "Desteklenen" sürüm; yani 6.7 gelene kadar LTS ile aynı kararlılık taahhüdünü alıyor ve söz konusu LTS öncesinde Unity 6 serisinin son durağı oluyor. Tarayıcıya oyun yayımlayanlar için asıl önemli haber, Web Graphics ekibinin bir hafta önceki gönderisinde yer alan tek bir cümle: "Unity 6000.6 itibarıyla WebGPU grafik API'si artık deneysel değil, tam desteklenen bir özellik."

Unity, 2025'in başlarında çıkan 6.1'den bu yana WebGPU'yu deneysel bir arka uç olarak kullanıyor. O dönemde bunu ele almış, ardından Safari'nin WebGPU'yu kullanıma sunmasından tüm büyük tarayıcıların destek sağlamasına kadar tarayıcı tarafındaki gelişmeleri izlemiştik. Artık oyun motoru tarafı da yetişti.

Unity'nin 6.6'daki yeniliklere ilişkin kendi turu

WebGPU neleri etkinleştiriyor?

WebGPU'nun özellikle Unity açısından önemli olmasının nedeni compute shader'ları. WebGL 2 bunları hiçbir zaman desteklemediğinden GPU hesaplamasına dayanan tüm Unity özellikleri web derlemelerinde tamamen eksikti. WebGPU seçildiğinde web derlemeleri; GPU Resident Drawer ve GPU occlusion culling, Spatial-Temporal Post-Processing ölçek yükseltme, GPU simülasyonlu parçacıklara sahip VFX Graph, Adaptive Probe Volumes ve compute skinning desteği kazanıyor. Unity'nin gönderide kullandığı demo sahneleri, yoğun ve stilize bir kasaba olan Fantasy Kingdom ile VFX Graph parçacıklarıyla dolu bir uzay gemisi iç mekânıydı; ikisi de tarayıcıda çalışıyordu.

Unity'nin GPU simülasyonlu VFX Graph parçacıkları içeren uzay gemisi demo sahnesinin tarayıcıda WebGPU ile çalışması

VFX Graph parçacıkları GPU'da simüle edildiği için WebGL 2'de hiçbir zaman kullanılamıyordu. Görsel: Unity.

Ayrıca WebGPU desteği bildirdiği hâlde tüm özellik kümesini çalıştıramayan donanımlar için daha hafif bir uyumluluk modu da bulunuyor. Böylece geliştiricinin herhangi bir şey yapmasına gerek kalmadan aynı derleme daha fazla cihaza ulaşabiliyor.

Unity bilinçli olarak neyi yapmadı?

WebGPU varsayılan olarak etkin değil. WebGL 2, web derlemeleri için varsayılan grafik API'si olmaya devam ediyor. WebGPU'yu kullanmak için Web oynatıcı ayarlarını açmanız, otomatik grafik API'si seçeneğinin işaretini kaldırmanız ve WebGPU'yu listeye eklemeniz gerekiyor. Unity, çalışma zamanında API'leri öncelik sırasına göre deniyor ve ilki kullanılamadığında sıradakine geri dönüyor.

WebGPU'nun WebGL 2'nin üzerine eklendiği Graphics APIs listesini gösteren Unity Web oynatıcı ayarları

WebGPU'nun Graphics APIs listesine elle eklenmesi gerekiyor. Görsel: Unity.

Gönderideki iki uyarı, gözden kaçırıldıklarında insanlara bir güne mal olabilecek türden. Birincisi, tarayıcılar WebGPU'yu yalnızca güvenli bağlamlarda kullanıma açıyor. Dolayısıyla yerel bir dosyadan veya düz HTTP kullanan bir sunucudan sunulan derleme sessizce WebGL 2'ye geri dönüyor ve compute özelliklerinizin neden kaybolduğunu merak ediyorsunuz. İkincisi, Unity'nin kendi ifadesiyle: "WebGPU desteği bildiren tüm cihazlar tutarlı deneyimler sunmuyor." Bu nedenle 6.6, sorun çıkardığını belirlediğiniz belirli tarayıcılar, GPU'lar veya sürücüler için geri dönüşü zorunlu kılan bir kurallar kümesi olan Graphics Device Filtering'i ekliyor.

6.6'daki web geliştirmelerinin geri kalanı boyut ve bellekle ilgili. WebAssembly64, Chrome ve Edge 128 veya daha yeni sürümler ile Firefox 129 veya daha yeni sürümlerde bir tarayıcı derlemesinin eski 4 GB sınırı yerine 16 GB'a kadar belleği adresleyebilmesini sağlıyor. Progressive Asset Loading, varlıkları baştan tek bir indirme olarak sunmak yerine sahne bazında yüklüyor; böylece geri kalan içerik aktarılırken oyuncu ilk sahnede oyuna başlayabiliyor. Bu iki özellik, Unity web oyunlarının geçmişte tercih edilmesini zorlaştıran iki temel sorunu ele alıyor: büyük olmalarını ve belleklerinin tükenmesini.

Sürümün geri kalanı

Tarayıcı dışında Fast Enter Play Mode artık yeni projelerde varsayılan ve sahneyi domain reload yapmadan yeniden yüklüyor. Unity bunu, Unity 7'nin CoreCLR'a geçişine hazırlık olarak konumlandırıyor. Dictionary'ler sonunda Inspector'da yerel olarak serileştirilebiliyor. Yeni Build Analysis penceresi derleme geçmişini ve metriklerini takip ederken Content Directories, Addressables entegrasyonu ve Windows ile Xbox'ta DirectStorage desteğiyle yerel içeriği düzenliyor. Unity'nin shader çalışmaları için verdiği örnek, keyword varyantlarının dinamik dallara dönüştürülmesinden sonra derleme süresinin 1 saat 46 dakikadan 32 dakikaya düştüğü bir proje.

Bu, web oyunlarını nereye taşıyor?

Biz doğrudan three.js ve WebGPU üzerine geliştirme yapıyoruz; dolayısıyla Unity'nin arka ucunu tam destekli hâle getirmesi rekabet tehdidinden çok bir doğrulama niteliğinde. Tarayıcıda GPU hesaplaması artık en geniş kurulum tabanına sahip oyun motorunda desteklenen bir yol. Bu da daha fazla oyunun bunu bekleyerek yayımlanacağı, daha fazla oyuncunun uyumlulukla ilgili uç durumlarla karşılaşacağı ve tarayıcı üreticilerinin bu açıkları kapatmak için daha fazla baskı hissedeceği anlamına geliyor. WebGPU ile WebGL'nin oyunlar açısından karşılaştırmasını ve web için oyun motoru seçeneklerini ele aldık; her ikisindeki öneriler de geçerliliğini koruyor: WebGPU açık ve WebGL 2 geri dönüşü hazır şekilde yayımlayın, gerçek düşük seviye donanımlarda test edin ve "tarayıcı desteklediğini söylüyor" ifadesini sorunun cevabı değil, başlangıcı olarak görün.

Unity'nin desteklenen bir sürümde WebGPU'yu varsayılan olarak kapalı bırakması doğru karar ve aynı zamanda önemli bir işaret. API hazır. Cihaz ekosistemi henüz tek tip değil ve tüm bu cihazlarda çalışmak zorunda olan oyun motoru bunu herkesten daha iyi biliyor.

Kaynaklar