top of page

Ağ kodu tuzakları: Sessizce kaybolan mesajlar

Yazarın fotoğrafı: Marcel Dütscher
Marcel Dütscher
21 Haz
1 dakikada okunur

Çok oyunculu oyun hataları başlı başına bir tür: hiçbir şey çökmez, hiçbir hata kaydı yazılmaz; sadece hiçbir şey olmaz. Kendi ağ kodumuzdan en sevdiğimiz iki tuzak, hem uyarı hem eğlence olarak.


Tuzak 1: kaydedilmemiş mesaj. Ağ protokolümüz mesaj sınıflarını bilir: “blok değişti”, “oyuncu hareket etti”, “sohbet”. Her yeni mesaj türü kodlayıcıya kaydedilmeli ki bir kimlik alsın ve serileştirilebilsin. Bunu unutursan olabilecek en kötü şey olur: gönderme çağrısı başarısız olur, ama hata sessizce yutulan bir yerde. Çökme yok, kayıt yok; özellik “sadece çalışmıyor”. Bunun peşinde defalarca hata ayıkladık, sonunda refleks oldu: yeni mesaj sınıfı mı? İlk soru: kaydedildi mi?


Tuzak 2: hayalet blok. Sunucu bir bloğu değiştirdiğinde, örneğin bir betik araziyi yeniden şekillendirdiği için, bağlı tüm oyunculara bunu aktif olarak söylemesi gerekir. Yayını unutursan hayalet blok çıkar: sunucu orada bir blok olduğunu bilir, istemci hava gösterir. Oyuncu görünmez bir duvara çarpar; daha kötüsü, sunucu tarafında artık var olmayan bir yere inşa eder. İki dünyayı yeniden hizalayan tek şey parçayı yeniden yüklemektir.


Ortak payda: çok oyunculu oyunda hep iki gerçek vardır, sunucununki ve istemcinin; ikisini senkron tutması gereken her yer potansiyel bir tuzaktır. Bizim yanıtımız tam olarak bu senkronizasyonu kontrol eden testler ve yeni mesajlar için kontrol listeleri oldu. Gösterişsiz ama hayaletler o zamandan beri nadir görülüyor.

Son Yazılar

Hepsini Gör
Yeni sürüm neden 2026.7.19 ve neden 0.9.2 değil 🗓️

Bugün güncelleyen herkes 0.9.1 sürümünden 2026.7.19 sürümüne atlıyor. Yazım hatası gibi görünüyor ama bilinçli bir karar: sürümleme düzenimizi “anlamsal” sürümlerden tarih tabanlı sürümlere (yıl.ay.sa

 
 

Yorumlar


Bu gönderiye yorum yapmak artık mümkün değil. Daha fazla bilgi için site sahibiyle iletişime geçin.
bottom of page