Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Server Paket Optimizasyonu ComputePoint Deneysel

  • Konuyu başlatan Konuyu başlatan [C]Martin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 102
  • Görüntüleme Görüntüleme 19K
5.00 yıldız(lar) 4 Değerlendirme Değerlendirenler

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Öncelikle paylaşım için teşekkürler, computepoint Metin2 kaynak kodları sızdırıldığından beri yazılımcı arkadaşlar tarafından sürekli tartışması yapılan bir konu seneler için bir çok platformda buna benzer alternatif arayışları oldu ama gördüğüm en kapsamlı çözüm alternatifi sizinki dolayısıyla tebrik ederim bir Türk'ten çıkmış olması beni mutlu etti.

Uygulama konusuna gelirsek şuan büyük projelerle bu piyasada olan veya globalde bu işlerle uğraşan çoğu insan Metin2 kaynak kodları sızdırıldığında 2013 yılında aktif olarak official sunucuların alt yapısını oluşturan o dosyalarla hiçbir fix uygulamadan veya optimizasyon yapmadan defalarca kez sunucu açtı ve bazıları anlık 2-3 bin oyuncu gördü şimdi burada söylemek istediğim şu, bu dosyalar bu ilkel haliyle bile iyi bir server ile sorunsuz şekilde aktif olabilir.Tabi ki zamanın getirdiği düzenlemeler, yeni derleyiciler ile optimize etmek, memory leakleri çözmek, bug fixleri vs.vs. yapılmalı ama oyunun çekirdeğinin ana hatlarını oluşturan (örneğin paketler) içerikleri kurcalamak bana pek mantıklı gelmiyor umarım kendimi açıklayabilmişimdir, büyük proje hedefleyen arkadaşların kendi alt yapılarında bu riski almalarını önermiyorum ileride çeşitli paket hatalarıyla uğraşabilirler. Saygılar.
 
Öncelikle paylaşım için teşekkürler, computepoint Metin2 kaynak kodları sızdırıldığından beri yazılımcı arkadaşlar tarafından sürekli tartışması yapılan bir konu seneler için bir çok platformda buna benzer alternatif arayışları oldu ama gördüğüm en kapsamlı çözüm alternatifi sizinki dolayısıyla tebrik ederim bir Türk'ten çıkmış olması beni mutlu etti.

Uygulama konusuna gelirsek şuan büyük projelerle bu piyasada olan veya globalde bu işlerle uğraşan çoğu insan Metin2 kaynak kodları sızdırıldığında 2013 yılında aktif olarak official sunucuların alt yapısını oluşturan o dosyalarla hiçbir fix uygulamadan veya optimizasyon yapmadan defalarca kez sunucu açtı ve bazıları anlık 2-3 bin oyuncu gördü şimdi burada söylemek istediğim şu, bu dosyalar bu ilkel haliyle bile iyi bir server ile sorunsuz şekilde aktif olabilir.Tabi ki zamanın getirdiği düzenlemeler, yeni derleyiciler ile optimize etmek, memory leakleri çözmek, bug fixleri vs.vs. yapılmalı ama oyunun çekirdeğinin ana hatlarını oluşturan (örneğin paketler) içerikleri kurcalamak bana pek mantıklı gelmiyor umarım kendimi açıklayabilmişimdir, büyük proje hedefleyen arkadaşların kendi alt yapılarında bu riski almalarını önermiyorum ileride çeşitli paket hatalarıyla uğraşabilirler. Saygılar.
sen kodu tam okuyup anlamamışsın computepoint içinde gecen tüm poin change headeri ile point güncellemesini cliente göndermek yerine bunları kayıt ediyoruz ardından bunu başka bir paket numarası üzerinden dinamik olarak gönderiyoruz paket yapısına müdahale etmiyoruz sadece topluyoruz ve aynı paketleri gereksiz yere tekrar tekrar gönderilmesinin önüne geçiyoruz sadece 1 pakette işlem bitiyor.

C++:
    for (int i = 0 ; i < WEAR_MAX_NUM; i++)
    {
        LPITEM pItem = GetWear(i);
        if (pItem)
        {
            pItem->ModifyPoints(true, load, compute_point_status);//Fixed_[C]Martin_001
            SET_BIT(m_pointsInstant.dwImmuneFlag, GetWear(i)->GetImmuneFlag());
        }
    }

bu kodu ele alırsak 5 tane itemde hp olsun bunları hesaplarken 5 tane hp için 5 paket gidiyor yani 5 tane update packet demek ama benim yaptığım dinamik yapıda bu tarz compute point içinde yapılan tüm point numaralarını 1 tane pakete toplayıp öyle gönderiliyor ve bu sayede 5 den 1 e düşüyor paket ve 1 kez update point çağrılıyor client de herhangi bir paket hatasına sebebiyet verebilecek birşeye dokunmuyoruz sadece toplayıp toplu olarak gönderiyoruz

kodu ekleyip test edersen daha net anlarsın
 
Son düzenleme:
Kaçınılmaz bir iyileştirme. Oyun içi özellikler arttıkça mecburen paketlerin toplanması gerekiyor.

Birde başka bir mevzu var onu da inceler misin. Metin2 sourceları 32 bit değişkenler ile derlendiği için core başına yaklaşık 2gb lik kapasiteye kadar oyuncu/mob taşıyabiliyor. Bunu şu şekilde test edebilirsin mesela 1000 tane jeon un metni çağırıp weak çektiğinde core sıkışacak memory leak hatası verecektir.

ben bunu şu şekilde çözdüm lakin detaylı incelemedim. Olası sorunlar muhtemel.
1614300082576.png


Burayı kurcalarsan iyi birşeyler yakalayabileceğine inanıyorum.
 
paylaşım için teşekkurler
 

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

Geri
Üst