Skip to content

Tarayıcıda açık dünya inşa etmek, bölüm 3: Bizi kurtaran gösterişsiz spike'lar

Yazan: Oleg Sidorkin, Cinevva CTO'su ve Kurucu Ortağı

Burada yeni misiniz? Seri rehberine göz atın. Rehber, spike'ın ne olduğunu açıklıyor ve tüm bölümlere bağlantı veriyor.

Bu bölümde parlak ekran görüntüleri daha az, mimari güvenceler daha fazla.

Spike 1 ve 2'den sonra küçük görünen ancak ürün düzeyinde etkisi olan üç risk kontrolü gerçekleştirdik.

İlki, Durable Objects ile yayın fan-out'ıydı. Oyun benzeri tick hızlarında çok istemcili konum dağıtımını test ettik; gecikme dağılımını, tick başına CPU kullanımını ve iletim bütünlüğünü izledik. Bu başarısız olsaydı her adanın tek bir nesneye ait olması yerine erkenden sharding'e geçerdik.

İkincisi, mobil kısıtların doğrulanmasıydı. Bu, adı mobil olarak değiştirilmiş bir masaüstü ön ayarı değil, aynı temel arazi üzerinden oluşturulmuş, açıkça tanımlı düşük maliyetli bir profildi.

Mobil profili yeni sekmede aç ↗ · Kaynak kodunu görüntüle

Segment yoğunluğunu, nesne sayısını, işleme çözünürlüğü üzerindeki baskıyı ve sis mesafesini azalttık. Soru basitti. Bu dünya, tüm işleyiciyi baştan yazmadan mobil sınıfı kısıtlar altında okunabilirliğini ve tepki hızını koruyabilir mi?

Üçüncüsü, içerik üreticilerinin iş akışları için davranış üretiminin güvenilirliğiydi. Geçerli JSON oranını, beklenen temel öğelere göre anlamsal doğruluğu ve yanıt gecikmesini değerlendirdik. Bu başarısız olsaydı katı, form tabanlı davranış yazımına geçerdik.

Bu bölümden çıkardığımız temel ders, bu gösterişsiz spike'ların mimariyi görsel spike'lardan daha hızlı değiştirdiğiydi. Ağ topolojisi, mobil cihazlara yönelik vaatler ve araç kullanıcı deneyimi için kesin sınırlar belirlediler.

  1. bölümde görünür arazi çalışmalarına dönüyor ve yalnızca statik yükleme ekran görüntülerini değil, hareket sırasındaki akış davranışını test ediyoruz.

Bu bölümde değinilen teknolojiler

Cloudflare Durable Objects. Yerleşik kalıcılık ve WebSocket desteğine sahip, uçta dağıtılan durum bilgili sunucusuz örneklerdir. Her Durable Object, bir dünya shard'ının (veya chunk'ının) yetkili durumunu tutar. Oyuncular WebSocket üzerinden bağlanır ve aynı shard'daki diğer oyuncuların konum yayınlarını alır. Oyuncu bitişik bir chunk'a geçtiğinde o chunk'ın Durable Object'ine bağlanır. Durable Objects, durumu otomatik olarak diske kalıcı biçimde kaydeder ve eşzamanlı binlerce örneğe ölçeklenebilir. Cloudflare Durable Objects belgelerine ve çok oyunculu ağ iletişimiyle ilgili tarayıcı 3D teknoloji rehberimize bakın.

Mekânsal sharding. Dünyanın coğrafi bölgelere göre sunucu örnekleri arasında bölünmesidir. Her shard, dünya ızgarasının dikdörtgen bir alanına sahip olur. Oyuncu yoğunluğu değiştikçe shard'lar bölünebilir veya birleşebilir. Shard sınırına yakın oyuncular, shard'lar arası görünürlük sorguları aracılığıyla her iki shard'ın içeriğini de görür. EVE Online binlerce oyuncuyu tek bir evrende bu şekilde barındırır.

WebSocket yayın fan-out'ı. Gerçek zamanlı konum güncellemelerinin tek bir sunucudan bağlı çok sayıda istemciye dağıtılmasıdır. İstemci başına indirme bant genişliği, görebildiğiniz kalabalıkla doğrusal olarak ölçeklenir:

Bclient=Nvisible×bplayer

Oyun benzeri tick hızlarında (20-30 Hz) her oyuncu saniyede yaklaşık bplayer800 bayt konum verisi üretir; dolayısıyla görünümdeki 200 oyuncu, istemci başına 200×800=160 KB/s maliyet oluşturur. Basit tümden-tüme yaklaşımında sunucu maliyeti daha da kötüdür ve N2 oranında büyür. Alaka düzeyi filtrelemesinin (mekânsal ilgi yönetimi) her bağlantıya tick bütçesi içinde veri göndermeden önce Nvisible değerini sınırlamasının nedeni tam olarak budur. Delta sıkıştırma ile güncelleme sıklığı arasındaki dengeler için ağ iletişimi rehberimize bakın.

Mobil işleme kısıtları. Mobil GPU'lar, masaüstü GPU'larının 1/5'i ile 1/10'u arasında işlem kapasitesine, yaklaşık 1 GB bellek sınırına (masaüstünde 2-4 GB) sahiptir ve sürekli yük altında termal kısıtlamaya girer. Mobil kalite profili; segment yoğunluğunu, nesne sayısını, işleme çözünürlüğünü, görüş mesafesini ve gölge kalitesini azaltır. Amaç masaüstüyle eşitlik değil, okunabilirliği ve tepki hızını korumaktır. Gerçek GPU karşılaştırmaları için tarayıcı 3D performans verilerine bakın.


12 bölümün 3. bölümü.
Önceki: Bölüm 2 - Worker fiziği ve girdi gecikmesi korkusu
Sonraki: Bölüm 4 - Gösterişli araziden önce akış
Seri rehberi: /tr/blog/2026-02-25-open-world-browser-series-guide