Unreal Engine’in temel işleyişini öğrenirken Unreal oynanış altyapısının nasıl çalıştığını öğrenmelisiniz. Bu dokümanda Papağan için oyun modunun ve oyun durumu sınıflarının nasıl ayarlanacağını ele alacağız.
Oyun Modu
Oyun modu, oyuncu sayısı veya oyuncuların oyuna katılma şekli gibi temel oyun kurallarını tanımlamaktan sorumludur. Aynı zamanda oyuncu denetleyicisi, gösterge paneli ve varsayılan piyon sınıfı gibi yararlı oyun sınıflarının ayarlanmasına yönelik bir çerçeve sağlar.
Papağan için oyun modunu ayarlamak üzere aşağıdaki adımları izleyin:
İçerik Tarayıcısı’nda, İçerik > Blueprint’ler > Oyun’a tıklayın.
Tarayıcıda sağ tıklayın ve Blueprint Sınıfı’na tıklayın.
Üst sınıfı AGameModeBase olarak ayarlayın.
Sınıfı, “BP_ParrotGameMode” olarak adlandırın.
Yeni oluşturulan blueprint’in tanımladığı ana sınıfları görmek için blueprint’e çift tıklayın. Papağan için bu sınıflardan bazılarının değiştirilmesi gerekir:
Oyun Durumu Sınıfı, BP_ParrotGameState olarak ayarlanmalıdır.
Oyuncu Denetleyicisi Sınıfı, BP_ParrotPlayerController olarak ayarlanmalıdır.
Gösterge Paneli Sınıfı, BP_ParrotHUD olarak ayarlanmalıdır.
Varsayılan Piyon Sınıfı, BP_ParrotPlayerCharacter olarak ayarlanmalıdır.
Düzenle > Proje Ayarları > Haritalar ve Modlar’a gidin ve Varsayılan GameMode’u BP_ParrotGameMode olarak ayarlayın.
Oyun modu ayarlandığına göre artık oyun durumunu ayarlayabilirsiniz.
Oyun Durumu
Oyun durumu, oyunda o anda neler olup bittiğini yönetir. İstemcilerin bilmesi gereken, ancak herhangi bir oyuncuya bağlı olmayan bilgileri yönetir. Örneğin, takım puanlarını burada depolayabilirsiniz.
Papağan için bir oyun durumu oluşturmak üzere aşağıdaki adımları izleyin:
Ana editörde Araçlar > Yeni C++ Sınıfı bölümüne gelin.
Üst sınıfı AGameStateBase olarak ayarlayın.
Sınıfı “AParrotGameState” olarak adlandırın.
İçerik Tarayıcısı’nda + Ekle > Blueprint Sınıfı’na tıklayın.
Üst sınıfı AParrotGameState olarak ayarlayın.
Sınıfı “BP_ParrotGameState” olarak adlandırın.
Oyun modu blueprint’inizde, oyun durumu alanına BP_ParrotGameState’i atayın.
Oyun Modu ve Oyun Durumu Kavram İncelemesi
Oyun modu ve oyun durumu hakkında daha fazla bilgi için Oyun Modu ve Oyun Durumu bölümüne bakın. Geliştirme sürecinde yeni sınıflar oluşturuldukça oyun modunuzu ve oyun durumunuzu güncellemeyi unutmayın.
Oyun modu, her harita için de ayarlanabilmektedir. Papağan’daki ana menü, oyundaki bölümlerin kullandığından farklı bir oyun modu kullanır.
Oyun Örneği
Oyun örneği, motorda sürekliliğe sahip bir sınıf örneği olup proje özelindeki işlevselliği yönetir. Uygulamanızın tüm yaşam süresi boyunca varlığını sürdürür. Oyunun görünüm penceresi istemcisini ve yerel oyuncuyu içerir.
Oyun modu ve durumuyla aynı örüntüyü izleyerek bir temel C++ sınıfı olan UParrotGameInstance’ı ve bir blueprint sınıfı olan BP_ParrotGameInstance’ı oluştururuz. Projeniz için oyun örneği sınıfını Düzenle->Proje Ayarları->Haritalar ve Modlar altında ayarlayabilirsiniz.
Papağan için bir oyun örneği oluşturmak üzere aşağıdaki adımları izleyin:
Ana editörde Araçlar > Yeni C++ Sınıfı bölümüne gelin.
Üst sınıfı UGameInstance olarak ayarlayın.
Sınıfı “UParrotGameInstance” olarak adlandırın.
İçerik Tarayıcısı’nda + Ekle > Blueprint Sınıfı’na tıklayın.
Üst sınıfı UParrotGameInstance olarak ayarlayın.
Sınıfı “BP_ParrotGameInstance” olarak adlandırın.
Düzenle > Proje Ayarları > Haritalar ve Modlar’a gidin ve Oyun Örneği Sınıfı’nı BP_ParrotGameInstance olarak ayarlayın.
Bölüm Akışı (Level Streaming) Örneği
Papağan’da farklı haritalar farklı oyun modlarına özgüdür ve oyun örneği, UParrotMapDataAsset dosyalarını kullanarak oyuna hangi haritanın yüklenmesi gerektiğini söyler. Bunlar, bir harita dosyasına yönelik yumuşak bir obje işaretçisi içeren veri öğeleridir. Bu öğeler oyun örneğinde düzenlenir ve oyuncu oyunda ilerledikçe bunlar arasında geçiş yapılabilir. Bu, oyun örneği üzerinde olduğundan bir sonraki bölümü her zaman istediğiniz yerden akışa dahil edebilirsiniz. Oyuncu denetleyicisi, oyun durumu değişikliklerini dinler ve daha sonra gerektiğinde oyun örneğini çağırır.
Aşağıdaki ekran görüntüsü, yumuşak obje referansını bir ParrotMapDataAsset öğesine asenkron bir şekilde yüklemek için Bölüm Akışı düğümü ile Öğeyi Asenkron Yükle düğümünü kullanan bir blueprint’i göstermektedir. Ardından, bölüm zaten yüklenmiş olduğundan eşzamanlı yüklemeyi beklemeye gerek kalmadan Bölümü Aç düğümü çağrılır. Burada CommonLoadingScreen eklentisi de kullanılır. Yükleme ekranı widget’ı bir sonraki haritanın ön yüklemesi sırasında çağrılacak ve yükleme sonrası sırasında kaldırılacaktır.
Yükleme ekranı ve Papağan’ın burada neden eşzamanlı yerine asenkron yükleme yaptığı konusunda daha fazla bilgi için Papağan’da Kullanıcı Arayüzü dokümantasyonuna bakın.