Geliştirici günlüğü

Geliştirici Günlüğü #15: Devlet denetimi ve gözlemci rolü

MKA Engine ülke denetimini nasıl kaydediyor, tanımlı komut denetimini ve gözlemci rolünü nasıl uyguluyor?

İçindekiler
Ahşap bir oyun masasındaki ülke jetonu oyuncular arasında el değiştiriyor; boş koltuk gözlemciyi simgeliyor

Kısaca: MKA Engine’in strateji oyunu projelerinde ülke denetimi, oyuncuyla ülke arasındaki bağı kaydeder. Oyun komut türü bu bağı kontrol etmeyi tanımladığında motor komutu işlemden önce denetler; gözlemci rolünün sınırı ayrı bir kuraldır. Başlangıçta ülkeler yapay zekâ rolündeki oyuncuya bağlanır; demir adam kipindeki ülke değişimi özel bir kayıp durumu dışında kapanır.

Sorun ne idi?

Bir strateji oyununda ülkeyi seçmek, yalnızca haritada bir simgeyi işaretlemek değildir. Oyun, hangi komut türlerinin gönderenle ülke arasındaki bağı denetleyeceğini tanımlayabilir. Bu kontrolü kullanan komutlarda motor isteği normal oyun kuralından önce sınar; yalnız seçim ekranına güvenmek, başka yollardan gelen komutları aynı denetimden geçirmez.

Bir de “oyuncu kim?” ile “hangi ülkeyi yönetiyor?” soruları var. Bunları tek kayıt gibi düşünmek, gözlemciyi ülkesiz bir insan oyuncudan ayırmayı ve ülke değişimini tutarlı yürütmeyi zorlaştırır.

Nasıl çözdük?

Oyuncunun rolünü ve ülke denetimini ayrı bilgiler olarak tutuyoruz. Rol, kişinin oyunda insan, yapay zekâ ya da gözlemci olarak mı yer aldığını söyler. Denetim kaydı hangi oyuncunun hangi ülkeyle ilişkili olduğunu tutar; oyun komut türü bu bağı kontrol etmeyi tanımladığında motor komut sırasında bu kaydı kullanır. Bu ilişki ülkenin mülkiyetini değil, oyun içindeki denetimi anlatır.

Yeni oyun kurulduğunda motor başlangıç ülkelerini yapay zekâ rolündeki oyuncuya bağlar. Oyun kuralları bu denetim bilgisini kullanabilir; ancak hangi stratejinin seçileceğini oyunun kendi kuralları belirler. Bir oyun, ülkenin yapay zekâ denetiminde olup olmadığını sorabilir. Motor bunu insan denetimi bulunup bulunmadığına göre yanıtlar; bu işaret, yapay zekânın hangi hamleyi seçeceğini anlatmaz.

İnsan oyuncu bir ülke seçtiğinde motor ülkenin varlığını ve başka bir insanın denetiminde olup olmadığını kontrol eder. Yapay zekâ rolündeki oyuncunun denetlediği ülke insana aktarılabilir. Değişim tamamlanınca seçen oyuncunun önceki ülke denetimleri bırakılır, yeni ülke ona bağlanır ve rolü insan olur.

Örnek çizimde yapay zekâ rolü üç ülkeyi yönetiyor; sonra biri insana geçerken diğerleri aynı rolde kalıyor, gözlemciye ülke bağlanmıyor

Bir komut türü ülke denetimi kontrolünü tanımladıysa, motor normal oyun kuralından önce komutu gönderen oyuncuyla komuttaki ülke arasındaki bağı sınar. Bu ülke kontrolü her komut türüne kendiliğinden uygulanmaz; oyuncu rolüyle ilgili gözlemci kuralı bundan ayrıdır.

Gözlemci nasıl ayrılıyor?

Gözlemci, ülke denetimi olmayan ayrı bir oyuncu rolüdür. Gözlemci olmayı seçince önceki ülke bağlantıları bırakılır. Ardından yalnız gözlemcilere açık komutlar kullanılabilir. Ülke seçme isteği de gözlemciye açık olduğundan, kip izin verdiğinde gözlemci yeniden ülke yönetimine geçebilir.

Denetim kontrolü tanımlı komutlarda motor gönderenle ülke denetimini eşleştiriyor; gözlemci yalnız kendisine açık komutları kullanabiliyor

Bu ayrım önemli: ülke denetimi, komut türü bu kontrolü istediğinde gönderenle hedef ülkenin bağını sınar; oyuncu rolü ise gözlemciye hangi komutların açık olduğunu belirler. Böylece iki farklı kural birbirine karışmaz.

Demir adam kipinde seçim

Demir adam kipi, oyun başladıktan sonra bazı seçimleri kapatan oyun kuralıdır. Bu kip açıkken olağan ülke değiştirme ve gözlemci olma istekleri kabul edilmez. Yeni oyun kurulurken ülke ya da gözlemci seçimi kip açılmadan önce yapılır.

Bir istisna oyuncunun bütün ülkelerini kaybetmesi durumudur: daha önce denetlediği ülkelerin hepsi oyun dünyasından silinmişse yeni bir ülke seçebilir. Baştan beri hiçbir ülkeyi yönetmemiş gözlemci bu istisnadan yararlanamaz; kaybettiği bir ülke yoktur.

Ne gördük?

DurumMotorun yaptığıOyuncunun sonucu
Yeni oyun başlıyorBaşlangıç ülkelerini yapay zekâ rolüne bağlar.Oyun kuralları kendi kararlarını uygular; motor denetim ilişkisini tutar.
İnsan ülke seçiyorUygun ülkeyi insana aktarır, önceki denetimlerini bırakır.Ülke-denetimi kuralı tanımlı komutlarda seçilen ülke adına hareket eder.
Denetim kuralı tanımlı komutNormal oyun kuralından önce, gönderenin komuttaki ülkeyi denetleyip denetlemediğini sınar.Komut bu kontrolü geçerse oyun kuralına ilerler.
Oyuncu gözlemci oluyorÜlke bağlantılarını bırakır ve gözlemci rolünü verir.Yalnız gözlemcilere açık komutları kullanır.
Demir adam kipi açıkOlağan ülke ve rol değişimini reddeder; tüm ülkelerini kaybeden oyuncuya istisna tanır.Oyuncu ancak önceki ülkeleri kalmadıysa yenisini seçebilir.

Oyun durumu, kaydın taşıdığı dünya bilgisidir; oyuncu rolü ve ülke denetimleri de bunun parçasıdır. Bu sayede kaydedip geri dönmek, kimin hangi ülkeyi yönettiği bilgisini korur.

Neden böyle seçtik?

Ülke seçme ekranı farklı görünebilir; oyun hangi komut türlerinin ülke denetimini sınayacağını tanımlayabilir. Bu türlerde motor, gönderen ile komuttaki ülke arasındaki bağı normal oyun kuralından önce denetler. Gözlemci rolü ayrı bir kuralla hangi komutlara izin verildiğini belirler. Başka bir ülke adına hareket etmeyi önleyen kontrol yalnız onu tanımlayan komutlarda çalışır; yapay zekânın hangi hamleleri seçeceğini ise oyun tasarımı belirler.

Bedeli ne?

Ülke denetimi oyun durumunda saklanır. Motorun ülke-denetimi kontrolü yalnız bu kuralı tanımlayan komutlarda çalışır; gözlemci rolü ayrı değerlendirilir. Bu değişiklik için süre ya da bellek ölçümü yapmadık; dolayısıyla hız kazancı iddiasında bulunmuyoruz.

Sırada ne var?

Sonraki günlükte harita aracının görevini, oyun ayarlarının neden oyuna ait olduğunu anlatıyoruz: Oyundan bağımsız harita aracı.

Sık sorulanlar

Yapay zekâ bütün başlangıç ülkelerini mi yönetiyor?

Yeni oyun kurulurken başlangıç ülkeleri yapay zekâ rolündeki oyuncuya bağlanır. Oyuncunun hangi stratejiyle karar vereceğini oyunun kuralları belirler.

Ülke denetimi her komutta mı uygulanır?

Motorun ülke-denetimi kontrolü, ilgili komut türü bu kontrolü tanımladığında çalışır. Gözlemcilere hangi komutların açık olduğu ise oyuncu rolüne bağlı ayrı bir kuraldır.

Gözlemci ülke seçebilir mi?

Evet, ülke seçme isteği gözlemcilere de açıktır. Demir adam kipi açıkken bu istek normalde kabul edilmez.

Demir adam kipinde ne zaman yeni ülke seçilebilir?

Oyuncunun daha önce denetlediği bütün ülkeler oyun dünyasından silinmiş olmalıdır. Hiç ülke yönetmemiş gözlemci bu istisnaya girmez.

Motorun genel yapısı için MKA Engine, çok oyunculu emir sırası için çok oyunculu emirlerin tutarlı işlemesi sayfalarına bakın. Serinin tüm yazıları MKA Engine günlükleri sayfasında; sorular için iletişim bağlantısı burada.

Kaynaklar ve ilgili belgeler

Bunlar da ilginizi çekebilir