Arkadaşlar zamanında amelelik ederek bir sistem yaptım. Çünkü oyunun bu kadar ilerleyeceğini tahmin edemedim. Alt tarafı bir Flashlight olacak diye bunu Structure bir sistem yerine, boolean ile yaptım.
Yani IsFlashlight? Adında bir değişken var ve bu değişken true ise o an aktif olan eşyamız flashlight oluyor. Fakat bir de işin AIM kısmı var. Flashlı alıyor doğru. Envanterde bulunuyor diye eline gelecek değil sonuçta. Sağ mouse tuşuna basıldığında ise eğer elinde flashlight varsa bu sefer onunla aim alıyor.
Daha sonra bir silah ekleyelim dedik ve bir tabanca ekledik. Bunu da aynı şekilde yapıp bunu da 2 tuşuna basınca aktif ediyoruz. Şimdi silah için üç değişken oldu.
HasPistol? = Silah pickup olarak alınıp envantere geldi mi ? Geldi.
EquipPistol?= Silah envanterdeyse o an aktif olarak seçildi mi ? Yani Equip yapıldı mı ? HasPitol? = True > then EquipPistol?
Şimdi o da var diyelim bu sefer Aim alınıyor mu ona bakılıyor.
Mesela Aim alırken sadece Equip olayına bakılıyor. Çünkü zaten bir şeyin Equip olması için önce ona sahip olunmalı yani çantada bulunmalı.
Bu arada çantadaki eşya Equip modunda ise Visibility ayarı True oluyor eğer değilse ise False oluyor. Equipi değiştirmek için iki şey yapılabilir. Mesela 2 tuşuna basıp pistola geçtim, tekrar basarsam silahı bırakır ve normal no combat moduna geçer. Yani hand modu. Ya da o an equip modu yine silahta diyelim ben 1 tuşuna bastım, silahı bırakır Flashlightı alır. Değişkenler sürekli birbiriyle entegre olacağı için bir ton kod çıktı ortaya.
Daha bir ton ayar var mesela silaha geçince camera lagı ayrı, TPS ise ayrı FPS modu ise ayrı şeyler uygulanıyor. Bu değişkenler kontrol edilirken ayrıca IsDead? gibi şeyler sürekli kontrol ediliyor veya injured modu var oyunda mesela. Yaralıyken hap hariç hiçbir eşya kullanılamıyor. Dolayısıyla IsInjured? Yine devamlı kontrol edilmek zorunda. Hap ise 3 tuşu ile equip olunup eğer Injured moddaysanız E ile direkt kullanıma geçebiliyor.
Yani böylelikle bir performans sorunu çıkıyor. Ayrıca oyuncu hızlı şekilde 1-2-3 gibi şeylere basarsa buga girebiliyor sistem. Mesela o an hem silah hem fener gelebiliyor.
Böyle complex bir sisteme ne önerilir ? Bir de işin içine pusula çıktı. O da direkt C tuşuna basılınca aktif ediliyor cebinden çıkarılıyor. Bu sonradan alınan bir eşya olmadığı için bir pickupu bulunmuyor. Dolayısıyla herhangi bir slotta değil. Ayrıca o an aktif olan equipe göre Widgetta seçilen öğenin ikonu büyüyor ve yeşile dönüyor. Başka bir eşyaya geçince o küçülüyor diğeri büyüyor. Böyle karmaşıklaştı sistem. Şimdi ise buna bir el atmam lazım çünkü daha sırada Pompalı silah ve objektif eşyaları yer alacak. Mesela Melee Combat eklenecek.
Dün ise Lantern ekledim mesela. Elde taşınan fiziksel bir lantern. Ne bileyim böyle bir ton şey eklenebilir. Bu sistemi en iyi nasıl yaparız ? Bu arada son olarak bir bilgi daha vereyim size.
Eşyalar zaten karakterin el slotuna önceden konumlandırılmış, socketler aracılığıyla zaten eklenmiş. Hepsi sıradan birer Mesh. Fakat silah gibi öğelerin skeletal meshi var ve animasyonu mevcut. Yani akıllı bir sistem yok böylelikle yer de kaplamış oluyorlar ayrıca render edildikleri için performans düşüşü de yaratıyorlar. Mesela Flashlightın ışığı önceden spotlight ile eklenmiş. Üzerine tabanca meshi eklenmiş.
Seçim sırasını Switch Enum ile yapmayı düşünüyorum. Fakat öğeleri akıllı şekilde nasıl karaktere ekler ve attach yaparız. Durumları nasıl düzgünce kontrol edebiliriz ? Ayrıca 1-2-3 gibi şeylere rastgele bastığında en son basılan öğenin seçilmesi gibi ince işleri nasıl hallederiz ?
Ve nasıl düzgün bir performans uygularız ? Bu konu hakkında en basit karmaşık olmayan ve hızlıca düzenleyebileceğimiz bir sistemi önerebilecek birisi varsa şimdiden teşekkür ederim.


Bunlar sadece pistol ve flashlight için yazılmış sistemler. Düzenlemek çok zor olmaz benim için çünkü önceden çok grupladım ve commentledim. Bunlar Event Graphta ayrıca Collapsed sistemler.

Ana Event Graph burası. Bu arada bunu kullanın. Eğer kodunuz çok ise açılışta çok fazla performans sorunu yaşarsınız. Fakat her şeyi böyle ayrı ayrı Collapsed yaparsanız ve gruplarsanız hem bulunması kolay olur yani ilgili sisteme kolayca ulaşılır. Hem de %50 performans artışı yaşarsınız. Tabi Farklı Graph bile oluşturabilirsiniz.
Ben burada bir şeyleri nasıl yaparız derken baştan anlatmanıza gerek yok. Ben zaten ileri düzeyde biliyorum fakat benim olayım biraz farklı. Karmaşıklaştı her şey. Sadece mantığını söylemeniz yeterli olacaktır. Zaten bu sistem Replicated bir sistem.
Yani IsFlashlight? Adında bir değişken var ve bu değişken true ise o an aktif olan eşyamız flashlight oluyor. Fakat bir de işin AIM kısmı var. Flashlı alıyor doğru. Envanterde bulunuyor diye eline gelecek değil sonuçta. Sağ mouse tuşuna basıldığında ise eğer elinde flashlight varsa bu sefer onunla aim alıyor.
Daha sonra bir silah ekleyelim dedik ve bir tabanca ekledik. Bunu da aynı şekilde yapıp bunu da 2 tuşuna basınca aktif ediyoruz. Şimdi silah için üç değişken oldu.
HasPistol? = Silah pickup olarak alınıp envantere geldi mi ? Geldi.
EquipPistol?= Silah envanterdeyse o an aktif olarak seçildi mi ? Yani Equip yapıldı mı ? HasPitol? = True > then EquipPistol?
Şimdi o da var diyelim bu sefer Aim alınıyor mu ona bakılıyor.
Mesela Aim alırken sadece Equip olayına bakılıyor. Çünkü zaten bir şeyin Equip olması için önce ona sahip olunmalı yani çantada bulunmalı.
Bu arada çantadaki eşya Equip modunda ise Visibility ayarı True oluyor eğer değilse ise False oluyor. Equipi değiştirmek için iki şey yapılabilir. Mesela 2 tuşuna basıp pistola geçtim, tekrar basarsam silahı bırakır ve normal no combat moduna geçer. Yani hand modu. Ya da o an equip modu yine silahta diyelim ben 1 tuşuna bastım, silahı bırakır Flashlightı alır. Değişkenler sürekli birbiriyle entegre olacağı için bir ton kod çıktı ortaya.
Daha bir ton ayar var mesela silaha geçince camera lagı ayrı, TPS ise ayrı FPS modu ise ayrı şeyler uygulanıyor. Bu değişkenler kontrol edilirken ayrıca IsDead? gibi şeyler sürekli kontrol ediliyor veya injured modu var oyunda mesela. Yaralıyken hap hariç hiçbir eşya kullanılamıyor. Dolayısıyla IsInjured? Yine devamlı kontrol edilmek zorunda. Hap ise 3 tuşu ile equip olunup eğer Injured moddaysanız E ile direkt kullanıma geçebiliyor.
Yani böylelikle bir performans sorunu çıkıyor. Ayrıca oyuncu hızlı şekilde 1-2-3 gibi şeylere basarsa buga girebiliyor sistem. Mesela o an hem silah hem fener gelebiliyor.
Böyle complex bir sisteme ne önerilir ? Bir de işin içine pusula çıktı. O da direkt C tuşuna basılınca aktif ediliyor cebinden çıkarılıyor. Bu sonradan alınan bir eşya olmadığı için bir pickupu bulunmuyor. Dolayısıyla herhangi bir slotta değil. Ayrıca o an aktif olan equipe göre Widgetta seçilen öğenin ikonu büyüyor ve yeşile dönüyor. Başka bir eşyaya geçince o küçülüyor diğeri büyüyor. Böyle karmaşıklaştı sistem. Şimdi ise buna bir el atmam lazım çünkü daha sırada Pompalı silah ve objektif eşyaları yer alacak. Mesela Melee Combat eklenecek.
Dün ise Lantern ekledim mesela. Elde taşınan fiziksel bir lantern. Ne bileyim böyle bir ton şey eklenebilir. Bu sistemi en iyi nasıl yaparız ? Bu arada son olarak bir bilgi daha vereyim size.
Eşyalar zaten karakterin el slotuna önceden konumlandırılmış, socketler aracılığıyla zaten eklenmiş. Hepsi sıradan birer Mesh. Fakat silah gibi öğelerin skeletal meshi var ve animasyonu mevcut. Yani akıllı bir sistem yok böylelikle yer de kaplamış oluyorlar ayrıca render edildikleri için performans düşüşü de yaratıyorlar. Mesela Flashlightın ışığı önceden spotlight ile eklenmiş. Üzerine tabanca meshi eklenmiş.
Seçim sırasını Switch Enum ile yapmayı düşünüyorum. Fakat öğeleri akıllı şekilde nasıl karaktere ekler ve attach yaparız. Durumları nasıl düzgünce kontrol edebiliriz ? Ayrıca 1-2-3 gibi şeylere rastgele bastığında en son basılan öğenin seçilmesi gibi ince işleri nasıl hallederiz ?
Ve nasıl düzgün bir performans uygularız ? Bu konu hakkında en basit karmaşık olmayan ve hızlıca düzenleyebileceğimiz bir sistemi önerebilecek birisi varsa şimdiden teşekkür ederim.


Bunlar sadece pistol ve flashlight için yazılmış sistemler. Düzenlemek çok zor olmaz benim için çünkü önceden çok grupladım ve commentledim. Bunlar Event Graphta ayrıca Collapsed sistemler.

Ana Event Graph burası. Bu arada bunu kullanın. Eğer kodunuz çok ise açılışta çok fazla performans sorunu yaşarsınız. Fakat her şeyi böyle ayrı ayrı Collapsed yaparsanız ve gruplarsanız hem bulunması kolay olur yani ilgili sisteme kolayca ulaşılır. Hem de %50 performans artışı yaşarsınız. Tabi Farklı Graph bile oluşturabilirsiniz.
Ben burada bir şeyleri nasıl yaparız derken baştan anlatmanıza gerek yok. Ben zaten ileri düzeyde biliyorum fakat benim olayım biraz farklı. Karmaşıklaştı her şey. Sadece mantığını söylemeniz yeterli olacaktır. Zaten bu sistem Replicated bir sistem.