BySadoTR60 1
BySadoTR60
Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
kaptanmikro1 1
kaptanmikro1
romegames 1
romegames
Reklam vermek için turkmmo@gmail.com

Client Optimizyasyon, DX9, FoxFS

  • Konuyu başlatan Konuyu başlatan Darqhues
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 175

Türkiye'nin ilk Cross-Platform OldSchool MOBİL & PC 1-99 Sunucusu Lamira2 6 Kasım'da Açılıyor! Büyük Açılışı Kaçırma HEMEN TIKLA!

Tetra Client Performans Paketi
Oyuna girişte donma, yükleme ekranında bekleme, pazarda kare düşüşü… 15 modül, hepsi define'lı.​

Merhaba arkadaşlar,

Kendi sunucumun client'ında aylardır uğraştığım performans ve kararlılık düzeltmelerini paket haline getirdim. Tahminle değil, ölçerek ilerledim: client'a donma profilleyicisi ekleyip her kareyi, her dosya yüklemesini ve her paketi logladım, darboğazı bulup düzelttim.

Ölçülen Sonuçlar
  • Pack'ten dosya okuma: dosya başına 20–85 ms → 0–2 ms
  • Yeni bir ırkın ilk kez ekranda belirmesi: 350–450 ms → 75–95 ms
  • Yükleme ekranı, ırk verisi adımı: 500–670 ms → ~70 ms
  • Karakter seçiminden oyun ekranına: ~8 sn → ~3,4 sn (sabit 3 sn seçim beklemesi kaldırılmadan önceki ölçüm)
Ölçümler tek bir test makinesinde alındı. Sonuçlar disk tipine, pack boyutuna ve haritadaki oyuncu sayısına göre değişir.

Modüller

▸ Yükleme ve Oyuna Giriş
  • Pack Isıtma (TETRA_PACK_PREFETCH): Client açılınca pack dosyaları arka planda, düşük öncelikle bir kez okunup Windows önbelleğine alınır. Oyun içindeki model/doku okumaları diskten değil RAM'den yapılır.
  • Tek Adımlı Pack Arama (TETRA_PACK_LOOKUP_FIX): Dosya başına 4 FoxFS çağrısı ikiye iner. Olmayan dosyalar önbellekte tutulur, her spawn'da tekrar aranmaz.
  • İhtiyaç Anında Hareket Yükleme (TETRA_LAZY_ALL_MOTION): Bir ırk ilk göründüğünde bütün hareket dosyaları (dans, balık, tüm silah modları, beceriler) yükleniyordu. Artık sadece bekleme/yürüme/koşma hemen yüklenir, gerisi ilk oynatıldığında.
  • Ertelenmiş Hareket Önbelleği (TETRA_DEFER_MOTION_CACHE): Yükleme ekranında 4 ırkın yüzlerce hareket dosyası tek tek yükleniyordu. Artık oyun içinde, kare başına ayarlanabilir bir bütçeyle yükleniyor.
  • Hızlı Karakter Seçimi (TETRA_FAST_SELECT): "Başlat"tan sonraki sabit 3 saniyelik Python beklemesi 0,3 saniyeye iner.

▸ Kare Hızı
  • Toplu Yazı Çizimi (TETRA_TEXT_BATCH): İsim, pazar başlığı, sohbet ve arayüz yazılarında her harf ayrı çiziliyordu. Aynı font dokusundaki harfler artık tek komutla çiziliyor.
  • SpeedTree Yaprak Optimizasyonu (TETRA_SPEEDTREE_LEAF_FIX): Aynı detay seviyesindeki ağaçlar için yaprak verisi kare başına bir kez hesaplanır.
  • Performans Düzeltmeleri (TETRA_CLIENT_PERF): Üst üste kare atlama sınırı, kaynak taramasının seyreltilmesi, bulunamayan ırk önbelleği, kapalı mini haritanın güncellenmemesi, oto avda boşuna hedef aramanın kısılması.
  • Arayüz Python Hızlandırma (TETRA_UI_PY_FAST, isteğe bağlı): Her karede, OnUpdate/OnRender'ı olmayan pencereler için Python'a boşuna girilmez.

▸ Kararlılık ve Bellek
  • Bellek Sızıntısı Düzeltmeleri (TETRA_CLIENT_LEAK_FIX): Pack'ten okunan her dosyanın belleği hiç geri verilmiyordu. Uzun oturumda RAM'in şişmesi biter.
  • Ağ Akışı Düzeltmesi (TETRA_NETSTREAM_FIX): Gönderme tamponunun her seferinde baştan şifrelenmesi ve "soket meşgul" durumunun hata sayılması düzeltildi.
  • Client Hata Düzeltmeleri (TETRA_CLIENT_BUG_FIX): Çift silme, boş işaretçi, sınır dışı erişim, sıfıra bölme ve Python referans sayacı hataları.

▸ Görsel Düzeltmeler
  • İsim ve Pazar Etiketi Kırpma (TETRA_TEXTTAIL_CLIP_FIX / _RANGE_FIX): Kamera uzaklaşınca ekranın tepesinde yanıp sönen isimler, arkadaki pazar isminin önde görünmesi ve ufuktaki sohbet balonları düzeltildi.
  • Sohbet Penceresi (TETRA_CHAT_INSTANT_ALPHA): Pencere büyütülünce satırların geç belirmesi ve üstteki boş şerit düzeltildi.

▸ Geliştirici Aracı
  • Donma Profilleyici (TETRA_FREEZE_PROFILER): 50 ms'yi aşan kareleri bölüm bölüm, yavaş dosya/efekt yüklemelerini ve yavaş paketleri dosya adı ve paket numarasıyla loglar. Yukarıdaki ölçümlerin hepsi bununla alındı. Kendi sunucunuzdaki donmayı tahmin etmeden bulursunuz.

Kurulum ve Uyumluluk
  • C++ client kaynağı gerekir (DirectX 9, gömülü Python 2.7, Granny).
  • Pack modülleri FoxFS içindir.
  • Her modül kendi #define'ı içinde, mevcut kodu silmeden eklenir. Define'ı kapatırsanız orijinal davranışa dönülür.
  • Sunucu tarafında değişiklik gerekmez.

Fiyat ve İletişim
Fiyat: 15.000₺
İletişim: Discord: tetra_dev#define
 

En Çok Reaksiyon Alan Mesajlar

Konunuzu uygun bölüme taşıdım. Konunuza sunduğunuz ürünü destekleyici görseller ve videolar eklemenizin faydası olabilir. İyi satışlar dilerim.
Konunuzu uygun bölüme taşıdım. Konunuza sunduğunuz ürünü destekleyici görseller ve videolar eklemenizin faydası olabilir. İyi satışlar dilerim.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst