- Katılım
- 11 Mar 2026
- Mesajlar
- 52
- Tepkime puanı
- 5
- Puan
- 8
Unreal Engine'da Player State Nedir, Ne İçin Kullanılır?
Player State Nedir?
Player Controller'dan Farkı Ne?
Ne Zaman Player State Kullanmalısınız?
Blueprint'te Nasıl Kullanılır?
Sık Yapılan Hatalar
Unreal Engine ile çok oyunculu oyun geliştirmeye başladığınızda karşınıza çıkan en önemli yapılardan biri Player State'tir. Pek çok geliştirici bu sınıfın ne işe yaradığını tam anlamadan Player Controller içine veri doldurmaya başlar — ve bu, ilerleyen süreçte ciddi senkronizasyon sorunlarına yol açar.
Player State Nedir?
APlayerState, her oyuncuya ait verilerin tüm istemcilere (client) otomatik olarak replike edildiği özel bir aktör sınıfıdır. Sunucu tarafında oluşturulur ve oyunun her yerine yayınlanır. Multiplayer oyunlarda skorboard verisi, oyuncu seviyesi, takım bilgisi gibi bilgilerin doğru çalışması tamamen Player State'e bağlıdır.
Player Controller'dan Farkı Ne?
Bu iki sınıfı karıştırmak çok yaygın bir hatadır. Aralarındaki fark kritiktir:
| Özellik | Player Controller | Player State |
| Replikasyon | Yalnızca sahip client | Tüm clientlar |
| Map geçişinde kalır mı? | Hayır | Evet (Seamless Travel) |
| Kullanım amacı | Input, kamera, UI | Oyuncu verisi |
Ne Zaman Player State Kullanmalısınız?
- Skor, öldürme/ölüm sayısı gibi tüm oyuncuların görmesi gereken veriler için
- Oyuncunun seçtiği karakter sınıfı veya takım bilgisi için
- Map değişimlerinde korunması gereken oyuncu ilerleme verileri için
- Scoreboard gibi UI bileşenlerine veri beslemek için
Blueprint'te Nasıl Kullanılır?
Blueprint üzerinden Player State'e erişmek oldukça basittir. Herhangi bir aktörden şu yolu izleyin:
Kod:
Get Player Controller → Get Player State → Cast To BP_MyPlayerState → Değişkene Eriş
Kendi değişkenlerinizi eklemek için BP_PlayerState adıyla APlayerState'i extend edin. Replike edilmesini istediğiniz her değişken için Replication: Replicated ayarını açmayı unutmayın. Gerekirse RepNotify kullanarak değer değiştiğinde UI güncellemesi tetikleyebilirsiniz.
Sık Yapılan Hatalar
- Player Controller'a replike edilmesi gereken veriyi koymak — diğer clientlar bu veriyi göremez
- Map geçişinde Player Controller referansı saklamak — controller yeniden oluşturulur, state korunur
- Seamless Travel kullanmadan veri kalıcılığı beklemek
Daha fazla teknik detay için Unreal Engine'ın resmi belgelerine göz atabilirsiniz: Unreal Engine — Player Controllers ve Multiplayer Programming Quick Start
Player State'i doğru kullanmak, multiplayer oyununuzun veri mimarisini sağlam temellere oturtmanın ilk adımıdır. Sunucu yetkisi (server authority) prensibine sadık kalarak bu sınıfı tasarlarsanız, senkronizasyon sorunlarının büyük çoğunluğunu baştan önlemiş olursunuz.
Player State'i doğru kullanmak, multiplayer oyununuzun veri mimarisini sağlam temellere oturtmanın ilk adımıdır. Sunucu yetkisi (server authority) prensibine sadık kalarak bu sınıfı tasarlarsanız, senkronizasyon sorunlarının büyük çoğunluğunu baştan önlemiş olursunuz.