Yardım View Range Değeri Hakkında

  • Konuyu açan Konuyu açan saban7795
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 10
  • Gösterim Gösterim 237
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

saban7795

Üye
Üye
Mesaj
49
Çözümler
2
Beğeni
8
Puan
49
Ticaret Puanı
0
Game Source tarafında View Range değeri kaç olmalı ? Bendeki game source da 5000 görünüyor. Bu değeri 10000 çeksem sorun yaratır mı ?
 
Bir yazılımcı atasözü ;
Çalışıyosa elleme... 😂

Merhaba, karekterin görüş açısı değilmiydi o değer yaw. Ne yapcan ki artırıp. 5000 güzel değer.
10 k yaparsan eğer görüş açısı çoğalacağı için, Server aynı anda daha fazla entity bilgisini göndereceği için CPU yükü artar, packet trafiği artar, kalabalık alanlarda lag oluşabilir. İlla da artırcam diyosan 6000 yap, fazla değer yaparsan kamera açısına giren obje sayısı artar. Buda sorun yaratır. Ama src ve pack taraflı düzenlemelerle bunuda çözebilirsin. Ama en baştaki notda da dediğim gibi, çalışıyosa elleme.
 
Çalışıyosa elleme... 😂

Merhaba, karekterin görüş açısı değilmiydi o değer yaw. Ne yapcan ki artırıp. 5000 güzel değer.
10 k yaparsan eğer görüş açısı çoğalacağı için, Server aynı anda daha fazla entity bilgisini göndereceği için CPU yükü artar, packet trafiği artar, kalabalık alanlarda lag oluşabilir. İlla da artırcam diyosan 6000 yap, fazla değer yaparsan kamera açısına giren obje sayısı artar. Buda sorun yaratır. Ama src ve pack taraflı düzenlemelerle bunuda çözebilirsin. Ama en baştaki notda da dediğim gibi, çalışıyosa elleme.

Binekle giderken arada moblar geç yükleniyor. Bu sorunu çözmek için sordum aslında
 
Binekle giderken arada moblar geç yükleniyor. Bu sorunu çözmek için sordum aslında
Bunun nedenini diğer arkadaşlarda söylemiş ancak kısaca açıkliyim, sunucu tarafında bulunan binek/model verilerinin istemci ile uyuşmaması durumunda konum tahmini hataları söz konusu olur ve karakterin geri teleport olması ile canavarların geç yüklenmesi hatası söz konusu olur. daha önce bu sorunu yaşayan arkadaşın konusuna bakabilirsin. Orada çözümüde mevcut. Eğer konudakileri anlamadıysan.
 
Bunun nedenini diğer arkadaşlarda söylemiş ancak kısaca açıkliyim, sunucu tarafında bulunan binek/model verilerinin istemci ile uyuşmaması durumunda konum tahmini hataları söz konusu olur ve karakterin geri teleport olması ile canavarların geç yüklenmesi hatası söz konusu olur. daha önce bu sorunu yaşayan arkadaşın konusuna bakabilirsin. Orada çözümüde mevcut. Eğer konudakileri anlamadıysan.
Bu konulardaki çözümlere baktım. Birebir aynı olmasına rağmen sorun hala devam ediyor. Karakterin at üstündeki hareket hızı max 250. VİEW Range değeride 5000. Bu değerlerden kaynaklı oluyor olabilir mi ? Yada elinizde sağlam bir files varsa binek modellerini benimle paylaşabilirseniz değiştireyim
 
Geç yüklenme problemini değil aslında, server bineğin hızıyla animasyonunun kat edeceği mesafeyi hesaplayamadığından kaynaklanıyor bu sorun. Çok basit bir çözümü var, bineğin folder column'una data'daki mobun klasör ismini yazmanız gerekmekte, lakin sadece bu da yeterli değil. Bineğin server'daki data dosyasının içerisinde run.msa dosyasının verileri doğru olmak zorunda.
Güncelleyeceğimiz değerler;
Kod:
Genişlet Daralt Kopyala
MotionDuration
Accumulation

Nerden bulabilirsiniz?
GrannyViewer ile modeli yükledikten sonra run.gr2 dosyasını granny viewer içine sürükleyin. Ardından
1780412994781.webp

Animation List sekmesine gelip buradaki animasyonun olduğu küçük resme sağ tıklıyorsunuz ve ardından "View in Detail" butonuna basıyorsunuz.
Açılan ekranda göreceğiniz değerler
granny_real32 Duration -> MotionDuration
granny_real32 LoopTranslation -> Accumulation
1780413109481.webp

1780413126786.webp


Bu değerler ile
Bash:
Genişlet Daralt Kopyala
MotionDuration        0.666666
Accumulation            0.00    -300.00    0.00
Olarak güncelleyip mob_proto'daki folder kısmına doğru mobun doğru klasörünü girdiğinizde sorununuz ortadan kalkacaktır.


Ekstra: Konunuzda sorduğunuz soruya nazaran VIEW_RANGE değeri oyunda objeler, metin taşları, karakterler oluşurken entity'de create edildiğinde bu oluşan aktör'ün veya her neyse oyuncunun client'ine de eğer tanımlanan alan içerisindeyse oluşturma paketi yollar.
Örneğin 256, 512'de bir mob spawnlandı, siz 306, 512'deyken bu spawnlanan mobu görmeniz, mobun sizin view_range'iniz içinde olmasından kaynaklanır.
C++:
Genişlet Daralt Kopyala
            if (!ent->IsType(ENTITY_OBJECT))
            {
                if (DISTANCE_APPROX(ent->GetX() - m_me->GetX(), ent->GetY() - m_me->GetY()) > dwViewRange)
                    return;
            }
Buradaki dwViewRange değeri;
VIEW_RANGE + VIEW_BONUS_RANGE
olarak tanımlanır.

Bu değeri arttırmanız düşündüğünüzün aksine sunucuya bir yük bindirmekten ziyade, oyuncunun client'inde daha fazla Create çağırıp oyuncunun daha geniş bir çapta actor görmesini sağlar. Tabi bunla beraber Client'te eğer bir optimizasyonunuz yoksa Client'inizi biraz yorabilir.
 
Son düzenleme:
Geç yüklenme problemini değil aslında, server bineğin hızıyla animasyonunun kat edeceği mesafeyi hesaplayamadığından kaynaklanıyor bu sorun. Çok basit bir çözümü var, bineğin folder column'una data'daki mobun klasör ismini yazmanız gerekmekte, lakin sadece bu da yeterli değil. Bineğin server'daki data dosyasının içerisinde run.msa dosyasının verileri doğru olmak zorunda.
Güncelleyeceğimiz değerler;
Kod:
Genişlet Daralt Kopyala
MotionDuration
Accumulation

Nerden bulabilirsiniz?
GrannyViewer ile modeli yükledikten sonra run.gr2 dosyasını granny viewer içine sürükleyin. Ardından
30962 eklentisini görüntüle
Animation List sekmesine gelip buradaki animasyonun olduğu küçük resme sağ tıklıyorsunuz ve ardından "View in Detail" butonuna basıyorsunuz.
Açılan ekranda göreceğiniz değerler
granny_real32 Duration -> MotionDuration
granny_real32 LoopTranslation -> Accumulation
30963 eklentisini görüntüle
30965 eklentisini görüntüle

Bu değerler ile
Bash:
Genişlet Daralt Kopyala
MotionDuration        0.666666
Accumulation            0.00    -300.00    0.00
Olarak güncelleyip mob_proto'daki folder kısmına doğru mobun doğru klasörünü girdiğinizde sorununuz ortadan kalkacaktır.


Ekstra: Konunuzda sorduğunuz soruya nazaran VIEW_RANGE değeri oyunda objeler, metin taşları, karakterler oluşurken entity'de create edildiğinde bu oluşan aktör'ün veya her neyse oyuncunun client'ine de eğer tanımlanan alan içerisindeyse oluşturma paketi yollar.
Örneğin 256, 512'de bir mob spawnlandı, siz 306, 512'deyken bu spawnlanan mobu görmeniz, mobun sizin view_range'iniz içinde olmasından kaynaklanır.
C++:
Genişlet Daralt Kopyala
            if (!ent->IsType(ENTITY_OBJECT))
            {
                if (DISTANCE_APPROX(ent->GetX() - m_me->GetX(), ent->GetY() - m_me->GetY()) > dwViewRange)
                    return;
            }
Buradaki dwViewRange değeri;
VIEW_RANGE + VIEW_BONUS_RANGE
olarak tanımlanır.

Bu değeri arttırmanız düşündüğünüzün aksine sunucuya bir yük bindirmekten ziyade, oyuncunun client'inde daha fazla Create çağırıp oyuncunun daha geniş bir çapta actor görmesini sağlar. Tabi bunla beraber Client'te eğer bir optimizasyonunuz yoksa Client'inizi biraz yorabilir.

Bilgilendirme için teşekkürler :)
 
Geri
Üst