- > Giriş: Oyun Geliştirmede Yapay Zeka ve Davranış Ağaçları
- > Oyunlarda Gerçekçi Düşmanlar Neden Önemlidir?
- > Unreal Engine 5’in Sunduğu Yapay Zeka (AI) Araçlarına Genel Bakış
- > Davranış Ağacı (Behavior Tree) Nedir ve Geleneksel Yöntemlerden Farkı Nedir?
- > Projeye Başlarken: Temel Kurulum ve Kavramlar
- > Gerekli Varlıklar (Assets): AI Karakteri ve Animasyonların Hazırlanması
- > AI Controller (Yapay Zeka Kontrolcüsü) Oluşturma ve Atama
- > Navigasyon Sistemi: NavMeshBoundsVolume ile Yürüme Alanlarını Tanımlama
- > Blackboard (Kara Tahta) Nedir? AI’nin Hafızasını Yönetmek
- > Davranış Ağacının Temelleri: Düğümleri (Nodes) Anlamak
- > Davranış Ağacı ve Blackboard Varlıklarını Oluşturma
- > Temel Akış Kontrol Düğümleri: Selector, Sequence ve Simple Parallel
- > Görevler (Tasks): Yapay Zekaya Ne Yapacağını Söylemek
- > Dekoratörler (Decorators): Davranışların Çalışma Koşullarını Belirlemek
- > Servisler (Services): Arka Planda Sürekli Kontroller Yapmak
- > Adım Adım İlk Düşman Yapay Zekası: Devriye (Patrol) Davranışı
- > Blackboard Üzerinde Devriye Noktalarını Tanımlama
- > Yeni Bir Görev (Task) Oluşturma: ‘FindPatrolPoint’
- > ‘MoveTo’ Görevi ile Hedef Noktaya Hareket Etme
- > ‘Wait’ Görevi ile Devriye Noktalarında Bekleme Mantığı
- > Yapay Zekayı Geliştirme: Oyuncuyu Algılama ve Takip Etme
- > AI Perception Bileşeni ile Görme ve Duyma Hissiyatı Ekleme
- > Oyuncu Algılandığında Blackboard’u Güncelleyen Bir Servis Yazma
- > Dekoratör Kullanımı: Oyuncu Görüş Alanındaysa Takip Et
- > Takip (Chase) Mantığı için Davranış Ağacı Dalını Oluşturma
- > Savaş Mekanikleri: Saldırı ve Geri Çekilme Davranışları
- > Saldırı Menzilini Kontrol Eden Bir Dekoratör Oluşturma
- > Özel Bir Saldırı Görevi (Attack Task) ve Animasyon Entegrasyonu
- > Can Seviyesine Göre Geri Çekilme (Flee) Davranışı Ekleme
- > Environment Query System (EQS) ile Akıllı Siper Alma Noktaları Bulma
- > İleri Seviye İpuçları ve Optimizasyon
- > Davranış Ağacında Hata Ayıklama (Debugging) Teknikleri
- > Farklı Düşman Tipleri için Davranış Ağacı Kalıtımını (Inheritance) Kullanma
- > Performans için Yapay Zeka Optimizasyon Stratejileri
- > Sonuç: Unreal Engine 5’te Davranış Ağaçları ile Sınırları Zorlamak
- > Öğrenilenlerin Özeti ve Oluşturulan Yapay Zekanın Değerlendirmesi
- > Geliştirme için Sonraki Adımlar ve Faydalı Kaynaklar
- > Sıkça Sorulan Sorular
- > Davranış Ağacı (Behavior Tree) ile Durum Makinesi (State Machine) arasındaki temel fark nedir?
- > Kendi görevlerimi (Tasks) C++ ile yazabilir miyim?
- > Environment Query System (EQS) kullanmak zorunlu mudur?
- > Moonline Network’e Katıl
Giriş: Oyun Geliştirmede Yapay Zeka ve Davranış Ağaçları
Oyun geliştirme, oyuncuyu içine çeken dünyalar yaratma sanatıdır. Bu dünyanın inandırıcılığını sağlayan en temel unsurlardan biri ise şüphesiz yapay zekadır (AI). Akıllı ve öngörülemez düşmanlar, dinamik NPC’ler ve yaşayan bir dünya hissi, başarılı bir yapay zeka implementasyonunun sonucudur. Unreal Engine 5, bu karmaşık sistemi yönetmek için bize güçlü bir araç sunar: Davranış Ağaçları (Behavior Trees).
Oyunlarda Gerçekçi Düşmanlar Neden Önemlidir?
Basitçe etrafta dolaşan veya oyuncuyu gördüğünde körü körüne saldıran düşmanlar, oyun deneyimini sığlaştırır. Gerçekçi düşmanlar ise oyuncuya meydan okur, strateji kurmaya zorlar ve zafer hissini paha biçilmez kılar. Bir düşmanın siper alması, takım arkadaşlarıyla iletişim kurması veya canı azaldığında geri çekilmesi, oyun dünyasının yaşadığını ve tepki verdiğini gösterir. Bu durum, oyuncu psikolojisi ve akış durumu (flow state) üzerinde doğrudan etkilidir, oyuncuyu oyuna daha fazla bağlar.
Unreal Engine 5’in Sunduğu Yapay Zeka (AI) Araçlarına Genel Bakış
Unreal Engine 5, yapay zeka geliştirmek için entegre bir ekosistem sunar. Bu ekosistemin temel taşları şunlardır:
- AI Controller: Karakterin beynidir. Oyuncu girdisi yerine yapay zeka mantığının karakteri nasıl kontrol edeceğini belirler.
- Navigation System (NavMesh): Yapay zekanın dünyada nasıl hareket edeceğini, engellerden nasıl kaçınacağını belirleyen yürüme alanlarıdır.
- Behavior Trees (Davranış Ağaçları): AI’nin karar verme mantığını görsel bir ağaç yapısında tasarlamamızı sağlar.
- Blackboard (Kara Tahta): Davranış Ağacının kullandığı verileri (hedef oyuncu, son bilinen konum vb.) depolayan bir hafıza birimidir.
- AI Perception System: Yapay zekaya görme, duyma, hissetme gibi duyusal yetenekler kazandırır.
- Environment Query System (EQS): Çevreyi analiz ederek en iyi siper noktası, en güvenli kaçış rotası gibi stratejik konumları bulmayı sağlar.
Davranış Ağacı (Behavior Tree) Nedir ve Geleneksel Yöntemlerden Farkı Nedir?
Davranış Ağacı, bir yapay zekanın karar verme sürecini hiyerarşik bir düğüm (node) yapısı kullanarak modelleyen bir sistemdir. Geleneksel Durum Makineleri (State Machines) gibi yöntemlerde, her durumdan diğerine geçişler manuel olarak tanımlanır ve proje büyüdükçe ‘spagetti kodu’ dediğimiz karmaşık bir yapıya dönüşebilir. Davranış Ağaçları ise modüler ve okunabilir bir yapı sunar. Bir dal ‘devriye atma’ görevini üstlenirken, başka bir dal ‘savaşma’ mantığını içerir. Ağaç, belirli önceliklere göre bu dallar arasında dinamik olarak geçiş yapar. Bu modülerlik, özellikle büyük ölçekli oyunlarda performans ve ölçeklenebilirlik açısından hayati önem taşır.
Projeye Başlarken: Temel Kurulum ve Kavramlar
Teoriyi bir kenara bırakıp pratiğe geçme zamanı. İlk olarak, yapay zekamızın temelini oluşturacak bileşenleri hazırlayalım.
Gerekli Varlıklar (Assets): AI Karakteri ve Animasyonların Hazırlanması
Projenize bir düşman karakteri ekleyerek başlayın. Bu, Unreal Engine Marketplace’ten alınan bir karakter veya kendi modeliniz olabilir. Karakterin yürüme, bekleme, koşma ve saldırı gibi temel animasyonlara sahip olduğundan emin olun. Bu animasyonları bir Animation Blueprint içinde yönetmek, işinizi kolaylaştıracaktır.
AI Controller (Yapay Zeka Kontrolcüsü) Oluşturma ve Atama
Content Browser’da sağ tıklayarak yeni bir Blueprint Class oluşturun ve ana sınıf olarak ‘AI Controller’ı seçin. Bu, düşman karakterimizin beyni olacak. Ardından, düşman karakterinizin Blueprint’ini açın ve Details panelinde ‘Pawn’ ayarları altında ‘AI Controller Class’ olarak yeni oluşturduğunuz AI Controller’ı atayın.
Navigasyon Sistemi: NavMeshBoundsVolume ile Yürüme Alanlarını Tanımlama
Yapay zekanın haritada nerelerde yürüyebileceğini bilmesi gerekir. Bunun için ‘Place Actors’ panelinden bir ‘Nav Mesh Bounds Volume’ objesini sahnenize sürükleyin. Bu volümü, yapay zekanın hareket etmesini istediğiniz tüm alanı kaplayacak şekilde ölçeklendirin. Klavyeden ‘P’ tuşuna basarak yeşil renkte oluşturulan yürüme alanını görebilirsiniz. Bu alan, yapay zekanın yol bulma algoritmasının temelidir ve NavMesh ve Behavior Tree birlikteliğinin ilk adımıdır.
Blackboard (Kara Tahta) Nedir? AI’nin Hafızasını Yönetmek
Blackboard, Davranış Ağacının karar vermek için ihtiyaç duyduğu tüm verileri saklayan bir hafıza bileşenidir. Örneğin, ‘HedefOyuncu’ (bir Actor referansı), ‘HedefKonum’ (bir Vector) veya ‘OyuncuGorulduMu’ (bir Boolean) gibi anahtarlar (keys) tanımlayabiliriz. Davranış Ağacı, bu verilere bakarak hangi eylemi gerçekleştireceğine karar verir. Blackboard, AI’nin beyninin hafıza kısmıdır.
Davranış Ağacının Temelleri: Düğümleri (Nodes) Anlamak
Davranış Ağacı, farklı görevleri olan düğümlerin birleşiminden oluşur. Bu düğümleri anlamak, sistemi etkin kullanmanın anahtarıdır.
Davranış Ağacı ve Blackboard Varlıklarını Oluşturma
Content Browser’da sağ tıklayın, ‘Artificial Intelligence’ menüsü altından önce bir ‘Blackboard’ ve ardından bir ‘Behavior Tree’ varlığı oluşturun. Davranış Ağacını açtığınızda, sizden bir Blackboard atamanızı isteyecektir. Yeni oluşturduğunuz Blackboard’u seçin. Artık bu iki varlık birbirine bağlıdır.
Temel Akış Kontrol Düğümleri: Selector, Sequence ve Simple Parallel
- Selector (Seçici): Soldan sağa doğru altındaki dalları dener. Biri başarılı olduğu anda çalışmayı durdurur ve kendisi de başarılı olur. Genellikle farklı öncelikteki eylemler için kullanılır (Örn: Önce saldır, yapamıyorsan takip et, onu da yapamıyorsan devriye at).
- Sequence (Sıralayıcı): Soldan sağa doğru altındaki tüm dalları sırayla çalıştırır. Biri başarısız olursa, anında durur ve kendisi de başarısız olur. Birbirini takip etmesi gereken adımlar için idealdir (Örn: Devriye noktası bul -> O noktaya git -> Bekle).
- Simple Parallel: Bir ana görevi çalıştırırken, aynı anda başka bir dalı da sürekli olarak çalıştırır. Örneğin, karakter bir hedefe doğru koşarken (ana görev), etrafını kontrol eden bir servis (yan görev) çalıştırabilir.
Görevler (Tasks): Yapay Zekaya Ne Yapacağını Söylemek
Görevler (Tasks), ağacın yapraklarıdır ve asıl işi yapan düğümlerdir. ‘Move To’ (Bir yere git), ‘Wait’ (Bekle), ‘Play Animation’ (Animasyon Oynat) gibi yerleşik görevler bulunur. Ayrıca, kendi özel görevlerinizi Blueprint veya C++ ile oluşturabilirsiniz. Örneğin, ‘FindPatrolPoint’ veya ‘PerformAttack’ gibi.
Dekoratörler (Decorators): Davranışların Çalışma Koşullarını Belirlemek
Dekoratörler, bir dala veya göreve eklenen koşul ifadeleridir. Altındaki dalın çalışıp çalışamayacağını kontrol ederler. Örneğin, ‘Blackboard’ dekoratörü, Blackboard’daki bir değerin belirli bir koşulu (örn: ‘HedefOyuncu’ set edilmiş mi?) sağlayıp sağlamadığını kontrol eder. Sadece koşul sağlanırsa altındaki dal çalışır.
Servisler (Services): Arka Planda Sürekli Kontroller Yapmak
Servisler, bir dal aktif olduğu sürece belirli aralıklarla çalışan mini programcıklardır. Genellikle çevre kontrolü veya Blackboard’u güncellemek için kullanılırlar. Örneğin, bir servis her saniye oyuncunun görüş alanında olup olmadığını kontrol edebilir ve sonucu Blackboard’daki ‘OyuncuGorulduMu’ anahtarına yazabilir.
Adım Adım İlk Düşman Yapay Zekası: Devriye (Patrol) Davranışı
Şimdi temel bir devriye davranışı oluşturalım. AI, belirlediğimiz noktalar arasında gezinecek.
Blackboard Üzerinde Devriye Noktalarını Tanımlama
Blackboard’unuzu açın ve iki yeni anahtar (key) oluşturun: ‘TargetLocation’ (Vector) ve ‘PatrolPointIndex’ (Integer). ‘TargetLocation’, AI’nin gideceği mevcut devriye noktasını, ‘PatrolPointIndex’ ise devriye noktaları dizisindeki sırasını tutacak.
Yeni Bir Görev (Task) Oluşturma: ‘FindPatrolPoint’
Yeni bir Blueprint Task oluşturun (‘BTTask_BlueprintBase’). Bu görevin amacı, bir sonraki devriye noktasını bulup Blackboard’daki ‘TargetLocation’ anahtarını güncellemektir. Karakterinizin sahip olduğu devriye noktaları dizisinden ‘PatrolPointIndex’i kullanarak bir sonraki noktayı alın, bu konumu ‘TargetLocation’a yazın ve index’i bir artırın.
‘MoveTo’ Görevi ile Hedef Noktaya Hareket Etme
Davranış Ağacınızda bir ‘Sequence’ düğümü oluşturun. Altına ilk olarak yeni oluşturduğunuz ‘FindPatrolPoint’ görevini ekleyin. İkinci olarak ise Unreal’ın yerleşik ‘Move To’ görevini ekleyin. ‘Move To’ görevinin detaylarında, ‘Blackboard Key’ olarak ‘TargetLocation’ı seçin. Bu sayede AI, ‘FindPatrolPoint’ görevinin belirlediği konuma hareket edecektir.
‘Wait’ Görevi ile Devriye Noktalarında Bekleme Mantığı
‘Sequence’ düğümünün sonuna bir ‘Wait’ görevi ekleyin. Bu, AI’nin devriye noktasına ulaştıktan sonra bir süre beklemesini sağlar. Bekleme süresini (örn: 3 saniye) ve küçük bir rastgele sapma (random deviation) ekleyerek davranışı daha organik hale getirebilirsiniz.
Yapay Zekayı Geliştirme: Oyuncuyu Algılama ve Takip Etme
Sadece devriye atan bir AI sıkıcıdır. Şimdi ona oyuncuyu algılama ve peşine düşme yeteneği kazandıralım.
AI Perception Bileşeni ile Görme ve Duyma Hissiyatı Ekleme
AI Controller Blueprint’inize ‘AIPerception’ bileşenini ekleyin. Detaylar panelinden ‘Senses Config’ altında ‘AI Sight config’ ekleyin. Görme açısını, mesafesini ve hangi tür aktörleri (örn: oyuncu) ‘dost’ veya ‘düşman’ olarak algılayacağını ayarlayın. Bu bileşen, algıladığı hedefler hakkında otomatik olarak olaylar (events) tetikler.
Oyuncu Algılandığında Blackboard’u Güncelleyen Bir Servis Yazma
Yeni bir ‘BTService_BlueprintBase’ oluşturun. Bu servisi, Davranış Ağacının en kök (root) düğümüne yakın bir yere koyun ki sürekli çalışsın. Servisin ‘Event Receive Tick AI’ olayında, AI Perception sisteminden algılanan aktörleri sorgulayın. Eğer bir oyuncu algılandıysa, Blackboard’daki ‘TargetPlayer’ (yeni bir Actor anahtarı) anahtarını bu oyuncuyla güncelleyin. Oyuncu kaybolduysa bu anahtarı temizleyin.
Dekoratör Kullanımı: Oyuncu Görüş Alanındaysa Takip Et
Davranış Ağacınızın köküne bir ‘Selector’ düğümü koyun. Bu ‘Selector’ın sol dalına oyuncuyu takip etme mantığını, sağ dalına ise mevcut devriye mantığını koyacağız. Takip dalının başına bir ‘Blackboard’ dekoratörü ekleyin. Bu dekoratörü, ‘TargetPlayer’ anahtarının ‘Is Set’ (ayarlanmış mı?) durumunu kontrol edecek şekilde ayarlayın. Böylece, sadece Blackboard’da bir hedef oyuncu varsa bu dal çalışacaktır.
Takip (Chase) Mantığı için Davranış Ağacı Dalını Oluşturma
Dekoratörün altına yeni bir ‘Sequence’ ekleyin. Bu ‘Sequence’ altında, ‘Move To’ görevini kullanarak ‘TargetPlayer’ anahtarındaki hedefe doğru hareket etmesini sağlayın. Bu kadar! Artık AI, oyuncuyu gördüğünde devriyeyi bırakıp peşinize düşecek, oyuncuyu kaybettiğinde ise ‘TargetPlayer’ anahtarı temizleneceği için ‘Selector’ sayesinde otomatik olarak devriye dalına geri dönecektir.
Savaş Mekanikleri: Saldırı ve Geri Çekilme Davranışları
Takip eden bir düşman iyidir, ama saldıran bir düşman daha iyidir. Şimdi savaş mantığını ekleyelim.
Saldırı Menzilini Kontrol Eden Bir Dekoratör Oluşturma
Takip (Chase) ‘Sequence’ düğümünün içine yeni bir ‘Selector’ ekleyin. Bu ‘Selector’ın soluna saldırı dalını, sağına ise takip etmeye devam etme (‘Move To’) görevini koyun. Saldırı dalının başına ‘Blueprint Base’ bir dekoratör ekleyin. Bu dekoratör, AI ile oyuncu arasındaki mesafeyi kontrol etsin. Eğer mesafe saldırı menzili içindeyse ‘true’ dönsün. Böylece AI, sadece yeterince yakınsa saldırı dalını çalıştırır.
Özel Bir Saldırı Görevi (Attack Task) ve Animasyon Entegrasyonu
Yeni bir ‘BTTask_BlueprintBase’ oluşturarak ‘Attack’ görevinizi yazın. Bu görev tetiklendiğinde, karakterinizin Animation Blueprint’i üzerinden saldırı animasyonunu oynatın. Görev, animasyon bitene kadar ‘In Progress’ durumunda kalmalı ve bittiğinde ‘Succeeded’ olarak kendini sonlandırmalıdır. Bu, AI’nin animasyon bitmeden başka bir eyleme geçmesini engeller.
Can Seviyesine Göre Geri Çekilme (Flee) Davranışı Ekleme
En baştaki ana ‘Selector’ düğümüne en yüksek öncelikli (en solda) yeni bir dal ekleyin. Bu dal, AI’nin can seviyesini kontrol eden bir dekoratörle başlasın (örn: Can < %30). Eğer koşul sağlanırsa, bu dal çalışır. Dalın içine, oyuncudan zıt yönde güvenli bir noktaya kaçmasını sağlayan bir mantık ekleyebilirsiniz.
Environment Query System (EQS) ile Akıllı Siper Alma Noktaları Bulma
Geri çekilme veya siper alma gibi daha karmaşık davranışlar için EQS devreye girer. EQS, çevrede bir dizi nokta oluşturur ve bu noktaları belirlediğiniz testlere (örn: oyuncudan en uzak, oyuncunun göremediği, siper arkasında olan) göre puanlar. En yüksek puanı alan nokta, AI’nin hareket edeceği en iyi stratejik konum olarak seçilir. Bu, yapay zekanıza inanılmaz bir taktiksel derinlik katabilir.
İleri Seviye İpuçları ve Optimizasyon
Davranış Ağacınız karmaşıklaştıkça, performans ve hata ayıklama önem kazanır.
Davranış Ağacında Hata Ayıklama (Debugging) Teknikleri
Unreal Engine’in görsel hata ayıklama araçları hayat kurtarır. Oyun çalışırken Davranış Ağacı editörünü açarsanız, hangi dalların aktif olduğunu, hangi dekoratörlerin başarısız olduğunu ve görevlerin mevcut durumunu anlık olarak yeşil, sarı ve kırmızı renklerle görebilirsiniz. Ayrıca, ‘Gameplay Debugger’ (Apostrof tuşu) ile AI’nin beynindeki verileri oyun ekranında görebilirsiniz.
Farklı Düşman Tipleri için Davranış Ağacı Kalıtımını (Inheritance) Kullanma
Tüm düşmanlarınız için sıfırdan ağaç yapmak yerine, bir ‘Base_Enemy_BT’ oluşturun. Ardından, bu ağaçtan kalıtım (inheritance) yoluyla yeni ağaçlar (örn: ‘Archer_BT’, ‘Swordsman_BT’) türetin. Bu yeni ağaçlar, temel ağacın tüm mantığını miras alır ve siz sadece farklılaşan kısımları (örn: saldırı görevi) değiştirirsiniz. Bu, projeyi yönetmeyi çok daha kolaylaştırır.
Performans için Yapay Zeka Optimizasyon Stratejileri
Onlarca yapay zekanın olduğu bir sahnede performans kritik hale gelir. Servislerin ‘tick’ aralıklarını artırın (her frame kontrol yapmak yerine 0.5 saniyede bir yapmak gibi). AI Perception’ın sorgulama sıklığını düşürün. Karmaşık EQS sorgularını daha az sıklıkla çalıştırın. Unreal’ın ‘AI Profiler’ aracını kullanarak darboğazları tespit edin ve optimize edin.
Sonuç: Unreal Engine 5’te Davranış Ağaçları ile Sınırları Zorlamak
Bu rehberde, Unreal Engine 5’in Davranış Ağaçları sistemini kullanarak basit bir devriyeden, algılama, takip, saldırı ve geri çekilme gibi karmaşık davranışlara sahip bir yapay zeka oluşturmanın temellerini attık.
Öğrenilenlerin Özeti ve Oluşturulan Yapay Zekanın Değerlendirmesi
Davranış Ağaçlarının modüler, okunabilir ve genişletilebilir yapısı sayesinde, karmaşık AI mantıklarını bile yönetilebilir parçalara ayırabildiğimizi gördük. Selector ve Sequence gibi temel akış kontrolcüleri ile davranışların önceliğini belirledik. Task, Decorator ve Service’ler ile AI’mize hem eylem yeteneği hem de durumsal farkındalık kazandırdık. Artık elimizde, oyun dünyasına tepki veren temel bir düşman prototipi var.
Geliştirme için Sonraki Adımlar ve Faydalı Kaynaklar
Buradan sonraki adımlar hayal gücünüzle sınırlı. Takım tabanlı yapay zeka davranışları, EQS ile dinamik siper alma, farklı karakter sınıfları için özel yetenekler gibi konuları araştırabilirsiniz. Kendi oyununuz için özelleştirilmiş görevler ve servisler yazarak yapay zekanızın benzersiz olmasını sağlayabilirsiniz. Bu yolda ilerlerken, Unreal Engine dokümantasyonu ve bağımsız geliştirici toplulukları en büyük yardımcınız olacaktır. Özellikle Moonline Network gibi platformlar, diğer geliştiricilerle bilgi alışverişi yapmak ve projelerinizi sergilemek için harika bir ortam sunar.
Sıkça Sorulan Sorular
Davranış Ağacı (Behavior Tree) ile Durum Makinesi (State Machine) arasındaki temel fark nedir?
Temel fark karar verme yapısındadır. Durum Makineleri, ‘durumlar’ (State) ve bu durumlar arasındaki ‘geçişler’ (Transition) üzerine kuruludur. Bir durumdan diğerine geçiş koşulları katı bir şekilde tanımlanır. Bu, az sayıda durumu olan basit AI’lar için iyidir ancak durum sayısı arttıkça yönetilemez hale gelebilir. Davranış Ağaçları ise hiyerarşik bir görev listesi gibidir. Her ‘tick’te ağacın kökünden başlayarak önceliklere göre hangi eylemin yapılacağını belirler. Bu, çok daha dinamik, modüler ve ölçeklenebilir bir yapı sunar.
Kendi görevlerimi (Tasks) C++ ile yazabilir miyim?
Kesinlikle evet. Blueprint’ler prototipleme ve daha basit görevler için harikayken, C++ en yüksek performansı ve motorun derinliklerine tam erişimi sunar. ‘UBTTask_BlueprintBase’ sınıfından kalıtım alan Blueprint görevleri gibi, ‘UBTTaskNode’ sınıfından kalıtım alan C++ görevleri oluşturabilirsiniz. Özellikle karmaşık hesaplamalar veya sık çalışması gereken görevler için C++ kullanmak performansı önemli ölçüde artırabilir.
Environment Query System (EQS) kullanmak zorunlu mudur?
Hayır, zorunlu değildir. Basit devriye, takip ve saldırı gibi davranışlar için EQS’e ihtiyacınız olmayabilir. EQS, yapay zekanın ‘çevresel farkındalığını’ artırmak ve daha akıllı, taktiksel kararlar almasını sağlamak için kullanılır. Örneğin, ‘en iyi siper noktası neresi?’, ‘oyuncuya saldırmak için en avantajlı pozisyon hangisi?’ veya ‘kaçmak için en güvenli rota neresi?’ gibi soruların cevabını bulmak için idealdir. Projenizin karmaşıklığına göre kullanıp kullanmamaya karar verebilirsiniz.
Moonline Network’e Katıl
Oyun geliştirme yolculuğu zorlu olabilir, ancak bu yolda yalnız olmak zorunda değilsiniz. Projelerinizde karşılaştığınız yapay zeka sorunlarını tartışmak, yeni teknolojiler hakkında fikir alışverişinde bulunmak veya sadece sizin gibi tutkulu geliştiricilerle tanışmak için bir topluluğa mı ihtiyacınız var? Moonline Network, bağımsız oyun geliştiricilerini bir araya getiren, tamamen ücretsiz bir platformdur.
Moonline Network, geliştiricilerden platformu kullanmak, stüdyo kaydı oluşturmak veya oyunlarını yayınlamak için hiçbir zaman ücret talep etmez ve gelirinizden pay almaz. Platform, tamamen geliştiricileri desteklemek ve onlara projelerini hayata geçirebilecekleri bir ekosistem sunmak üzerine kuruludur. Siz de bu büyüyen ve dinamik topluluğun bir parçası olun, deneyimlerinizi paylaşın ve hayalinizdeki oyunu birlikte inşa edelim.
Hemen şimdi aşağıdaki linkten topluluğa katılın!
Moonline Network’e Ücretsiz Katılın