- Katılım
- 11 Mar 2026
- Mesajlar
- 52
- Tepkime puanı
- 5
- Puan
- 8
Unreal Engine'da Game State Nedir, Ne İçin Kullanılır?
Game State Nedir?
Kısaca şöyle düşünebilirsiniz:
Ne Tür Veriler Tutulur?
Tipik kullanım örnekleri:
Blueprint'te Nasıl Kullanılır?
Game Mode ile Farkı Neden Önemli?
Özet
Unreal Engine ile oyun geliştiriyorsanız, bir noktada Game State kavramıyla karşılaşmak kaçınılmaz. Peki bu sınıf tam olarak ne işe yarıyor, neden var ve ne zaman kullanmalısınız?
Game State Nedir?
AGameStateBase (veya türevi AGameState), oyunun o anki genel durumunu tüm istemcilere (client) ileten özel bir sınıftır. Unreal'in ağ mimarisinde sunucu otoritatiftir; Game State ise sunucudaki bu bilgiyi tüm oyunculara otomatik olarak replicate eder.
Kısaca şöyle düşünebilirsiniz:
- Game Mode → Sadece sunucuda çalışır, kuralları yönetir
- Game State → Hem sunucu hem tüm clientlarda mevcuttur, anlık durumu yayar
- Player State → Tek bir oyuncuya ait verileri taşır
Ne Tür Veriler Tutulur?
Game State içinde tutulacak veriler şu soruyla belirlenir: "Bu bilgiye tüm oyuncuların eş zamanlı erişmesi gerekiyor mu?" Eğer cevap evetse, yeri Game State'tir.
Tipik kullanım örnekleri:
- Oyun sayacı (kaç dakika kaldı, maç ne zaman başladı)
- Genel skor veya takım puanları
- Maç fazı (WaitingToStart, InProgress, WaitingPostMatch)
- Aktif oyuncu listesi (PlayerArray bu sınıfta tutulur)
- Global event durumları (boss spawn edildi mi, kale düştü mü vb.)
Blueprint'te Nasıl Kullanılır?
Blueprint tarafında Game State'e erişmek oldukça kolaydır. Herhangi bir Blueprint içinden şu yolu izleyin:
Kod:
Get Game State → Cast To BP_GameState → Değişkene Eriş
Kendi Game State sınıfınızı oluşturmak için AGameStateBase'den türeyen yeni bir Blueprint yaratın. Ardından Project Settings → Maps & Modes altında ya da ilgili Game Mode'un detaylarından bu sınıfı atayın.
Replicate etmek istediğiniz değişkenleri tanımlarken değişkenin detaylarından "Replicated" seçeneğini aktif etmeyi unutmayın. Aksi hâlde değer yalnızca sunucuda kalır, clientlara yansımaz.
Replicate etmek istediğiniz değişkenleri tanımlarken değişkenin detaylarından "Replicated" seçeneğini aktif etmeyi unutmayın. Aksi hâlde değer yalnızca sunucuda kalır, clientlara yansımaz.
Game Mode ile Farkı Neden Önemli?
Yeni başlayanların sıkça yaptığı hata, replicate edilmesi gereken verileri Game Mode içine koymaktır. Game Mode client tarafında hiç var olmaz; dolayısıyla oraya koyduğunuz bir skoru UI'da görüntüleyemezsiniz. Multiplayer projede bu ayrımı net kurmak, onlarca saatlik debug acısından sizi kurtarır.
Konuyla ilgili resmi Unreal Engine belgelerine göz atmak için: Epic Games — Game Mode and Game State
Konuyla ilgili resmi Unreal Engine belgelerine göz atmak için: Epic Games — Game Mode and Game State
Özet
Game State, Unreal Engine'in ağ mimarisinin temel taşlarından biridir. Multiplayer oyunlarda global verileri tüm istemcilerle paylaşmak için doğru ve güvenli yoldur. Projenizin büyüklüğünden bağımsız olarak bu sınıfı doğru konumlandırmak, ileride yaşanacak mimari sorunların önüne geçer.