· kaynak Hacker News – Front Page (native)
BZFlag, bzo projesi sayesinde tarayıcıda masaüstünde, telefonda ve VR'da çalışıyor
Açık kaynaklı bzo client'ı, BZFlag'in çok oyunculu tank savaşlarını masaüstünde, telefonda ve WebXR headset'lerinde tamamen tarayıcı içinde oynanabilir kılıyor; kurulumsuz bir şekilde mevcut BZFlag client ve server'larına katılıyor.
Çok oyunculu tank oyunu için tarayıcı client'ı
bzo, Battlezone Online'ın kısaltması, tamamen tarayıcıda çalışan — masaüstünde, telefonda ya da VR headset'inde — özgür bir 3D çok oyunculu tank oyunu ve projenin GitHub repository'sine göre mevcut BZFlag client ve server'larıyla birlikte çalışabiliyor. timriker GitHub hesabı altında yayınlanan proje, 21 Ekim 2026'da Hacker News'in ana sayfasına ulaştı ve bz.rikers.org adresinde hiçbir şey kurmadan şimdi oynanabilir.
bz.rikers.org/list adresindeki yardımcı sayfa, public bzo server'larını ve proxy görevi gördükleri BZFlag server'larını gösteriyor. Bir satıra tıklamak oyuncuyu doğrudan o oyuna sokuyor.
Nasıl inşa edildi
Repository, server'ı Node.js, client'ı Three.js olarak tanımlıyor; WebSockets, WebTransport ve WebRTC üzerinden bağlanıyorlar. Bir bzo server'ı sıradan BZFlag server'larını proxy'leyebildiği için, tarayıcıdaki oyuncular ayrı bir yalnızca-tarayıcı topluluğunun oluşmasını beklemeden native ekosistemde hâlihazırda çalışan oyunlara katılabiliyor. Öteki yönde, liste sayfasındaki başlatma linkleri bir oyunu Linux, Windows ve macOS'ta bzflag:// linkleri aracılığıyla kurulmuş bir native BZFlag client'ına devredebiliyor. Dokümantasyon ayrıca polling sitelerinin ve server tarayıcılarının istatistik için sorgulayabileceği bir HTTP API tanımlıyor.
VR doğal şekilde destekleniyor
VR modu native WebXR kullanıyor ve immersive-vr oturum tipini destekleyen bir tarayıcı ile headset gerektiriyor. Remote dağıtımlar HTTPS üzerinden sunmak zorunda ve sayfa güvenli olduğunda client WebSocket bağlantısı için otomatik olarak wss://'e geçiyor.
README oldukça titiz bir başlatma yolunu anlatıyor: xr-launch.js adlı bir script, client'ın geri kalanı yüklenmeden önce immersive oturumunu istiyor ve böyle bir oturumun ihtiyaç duyduğu kullanıcı aktivasyonunu taşıyabilecek her sinyalde yeniden deniyor — window load, focus, page show, visibility change ve Launch Handler. Bunlardan hiçbiri sonuç vermezse bir VR Mode düğmesi kalıyor. XR'de metin girişi headset'in sistem klavyesine yaslanıyor; bunu Quest Browser 26.1 ve sonrası sağlıyor. Klavyesi olmayan headset'lerde etkilenen satırlar yalnızca masaüstü olarak işaretleniyor ve server bir isim atıyor. Tek dokunuşlu VR düğmesi telefonlarda gizli, çünkü Android'de Chrome her cihazda Cardboard üzerinden immersive-vr desteği iddia ediyor; bu yüzden orada VR Mode ayarlar menüsünde kalıyor. Kısıtlayıcı bir Permissions-Policy header'ı gönderen dağıtımların xr-spatial-tracking=(self)'e izin vermesi gerekiyor. WebGPU rendering, projenin doğrulama listesinin açıkça dışında tutuluyor.
Her flag, tek bir tuhaflıkla
bzo, BZFlag'de olan her flag'i taşıyor. README, WA (Wide Angle)'ı tuhaf durum olarak öne çıkarıyor: görüş alanını genişletiyor ama VR'da projeksiyonu headset'in kendisi yaptığı için flag orada fiilen hiçbir şey yapmıyor. Gerekçe projenin flags referansında belgelenmiş. Kontroller klavye ve fare, ekran üstü dokunma, gamepad ve XR controller'larını kapsıyor; klavye haritası oyun içinde / veya ? ile gösteriliyor.
Operatörler ve sürümler
Self-host edenler için her etiketli release; changelog'tan üretilmiş notlar, bir kaynak tarball'ı ve GitHub Container Registry'deki Docker image'larıyla birlikte bir GitHub release olarak yayınlanıyor. Image'lar Ubuntu 26.04 üzerinde, Ubuntu'nun kendi Node.js 22 paketi kullanılarak, linux/amd64 ve linux/arm64 varyantlarında ve sürüm etiketlerinin yanı sıra hareketli etiketlerle derleniyor. Release etiketleri yalnızca stable SemVer izliyor ve dokümanlar kurulum, reverse proxy'ler, server'ınızı listeleme ve BZFlag server'larını proxy'leme konularını kapsıyor.
Bir lisans uyarısı
Kod AGPLv3 ama asset'ler karışık bir hikâye: bir kısmı kendi lisansı altında BZFlag projesinden geliyor, bir kısmı bzo için yapıldı, bir kısmı da kaynağı hiç kaydedilmemiş katkılarla geldi. README, ağaçtaki her dosyanın kendi dokümantasyon çıtasını karşılamadığını ve kaynağı kaydedilmemiş asset'lerin hâlâ açık bir soru olduğunu açıkça söylüyor.
Neden önemli
İlginç olan kısım başka bir oyunun daha tarayıcıda çalışması değil, bunun hâlihazırda var olan altyapıya takılması. Tarayıcıdaki oyuncular bir proxy üzerinden canlı BZFlag server'larına katılabiliyor ve native client kullanıcıları hiç değişmeden çalışmaya devam ediyor; böylece bzo ekosistemi çatallamak yerine onu genişletiyor. Aynı zamanda web platformunun bir games runtime olarak ne kadar ileri gittiğinin kompakt bir gösterimi: Three.js rendering, WebTransport ve WebRTC dahil üç transport seçeneği ve oturum aktivasyonu ve sistem klavyeleri gibi gerçek headset tuhaflıklarının özenli biçimde ele alındığı, standartlara dayalı WebXR. Yalnızca native client sunan diğer açık kaynak oyunların maintainer'ları için bu, kurulum gerektirmeyen bir front end eklemenin işleyen bir şablonu. Ve dürüst lisans bölümü, eski oyun projelerini canlandırırken asset provenance'ının çoğu zaman kod lisansının kendisinden daha dağınık olduğuna dair faydalı bir hatırlatma.
- #bzflag
- #browser-game
- #webxr
- #open-source
- #webtransport