SoloWarrior' Alıntı:
Ben düşük bir sistemde yaptığım için sistemleri bu şeylere çok dikkat ediyorum. Open world bir oyunda bu sistemler üst üste binecek vs. sonraları hep sorun
Performans için bu kadar kaygılı olmak o kadar iyi birşey değil. Evet dikkatli olun ama çoğunlukla problemi çözememek veya daha önemlisi, birkaç mikrosaniye/frame kazanacağım diye hayatınızdan saatler kaybettirir.
SoloWarrior' Alıntı:
Open world bir oyunumuz var ve geziyoruz,bildiğin gibi sadece bizim yakınımzdaki yerlerde yapay zeka,trafik vs. oluyor. Bunu nasıl sağlıyoruz? Bir fikrin var mı?
Multiplayer olmadığını varsayarsak, tüm bu işlemlerin (spawn olma, yapay zeka görevleri...vs) oyuncuya olan uzaklık belirli bir sınırın altındaysa şartına bağlı olarak çalıştırmasını kodlamak gerek haliyle. Hatta çok kestirme bir yol izlemek gerekirse; söz konusu "Actor"lerin "Tick"leri dinamik olarak durdurulabilir ve tekrar başlatılabilir yada devam ettirilebilir.
Böyle bir sistem gerekiyorsa; belli ki o sistem binlerce "Actor" içeriyordur. Bu noktada hepsi için bir uzaklık kontrolü de yorucu olacaktır. Bunun için çoğu farklı "frame"lere dağılacak şekilde her birkaç saniyede bir bu işlemi yapmak daha mantıklı olacaktır yada en mantıklı ve etkili yol; bütün haritayı ve "Actor"leri bir "OcTree" yapısı üzerinde sınıflandırmaktır. Bu yöntem "Realtime Global Illumunation"da yada daha iyi bir örnek ile "Minecraft"'ta kullanılan yönteme benzer.
"Tick", "Actor"ün kalp atışı gibidir. Bu arada "BP"ler için "Tick" durumunu değiştirmenin bir yolu yoktu. 4.8 ile geleceği söyleniyordu, şuan mevcut durumu bilmiyorum. Zaten C++ ile de mantıksal olarak "Tick" içinde "Tick"i durdurabilirsin ama tekrar başlatamazsın dolayısı ile bu işlemleri bu "Actor"lerin dışında bir yönetici sınıf ile yapmak gerekir.
SoloWarrior' Alıntı:
Birde şöyle birşey yaptım,araba karaktere yaklaşırken algılama mesafesi (trigger) içine girince karakter reflex olarak geliş rotasyonunun tersine animasyon olarak atlıyor,bu sistem mantıklımıdır?Yapmanın daha iyi bir yolu varmı?
Daha fazla bilgi lazım. Üşenme detaya gir biraz çok havada bir soru bu. Bunu yapan nedir? "GTA" benzeri bir oyunda, yapay zekanın üzerine doğru araba mı sürüyorsun? Öyleyse bu alt bir AITask ile kontrol edilen bir karar verme anı olabilir. Animasyon işin görselleştirme kısmı. Elbette beklenen karakter üzerinde böyle bir animasyonun olması ve bu atlama kararını verdiğinde bu animasyonun devreye girmesi. Bu soru biraz saçma bu haliyle. "Yapay zekanın yanında korna çalınca küfür etsin mi?" sorusu kadar saçma. Ne yapmak istiyorsan onu yap.
SoloWarrior' Alıntı:
Bu arada bulmuşken birşey sorayım.
Seni kütüphane olarak görüyorum resmen
Yakalandık yine desene.
TornadoTT' Alıntı:
Haklısınız ama maalesef o şekilde yapamam.Pawnın içine yazarsam diğer ögeler bozulur.Sistemim bu şekilde işliyo.
"Pawn" içinde yazmışsın zaten. "3rdPersonPawn > Event Graph"ı bizden saklayamazsın, görürüz herşeyi.