Geliştirici günlüğü

Geliştirici Günlüğü #15: Devlet değiştirme, gözlemci modu ve yapay zekâ oyuncusu

MKA Engine'de oyuncu, gözlemci ve yapay zekâ devletleri nasıl paylaşır? Devlet değiştirme, demir adam kuralı ve geliştirici konsolu.

İçindekiler
Ahşap bir oyun masasında el değiştiren bir jeton, boş bir koltuk ve yanan bir fener

Kısaca: MKA Engine'de her oyun bir yetki tablosu taşır: bir oyuncu yalnız denetlediği varlığa komut verebilir, gözlemci ise yalnız gözlemcilere açık komutları verir. Yeni oyunda bütün başlangıç devletlerini yapay zekâ oyuncusu oynar; bir insan oyuncu devlet seçince o devlet yapay zekâdan alınır. Demir adam (ironman) kipinde devlet değiştirmek ve gözlemci olmak reddedilir.

Bir strateji oyununda iki kişi aynı dünyada oynuyorsa, herkesin neyi yönetebileceğini bilmesi gerekir. Aksi hâlde biri başkasının ordusuna emir verebilir. Motorda bu kural bir masa düzeni gibi çalışır: her oyuncunun önünde kendi devleti vardır ve masanın öbür ucundaki devlete dokunamaz. Bu günlük, bu masa düzenini nasıl kurduğumuzu ve devlet değiştirme ile gözlemcinin neye mal olduğunu anlatıyor.

Masada kimin neyi var?

Her proje oyunu sekiz oyuncu satırı taşır. Satırların biri yapay zekâya ayrılmıştır. Yeni bir oyun kurulduğunda yapay zekâ, dünyadaki her başlangıç devletini denetler. Bu devletlerin hiçbirini bir insan oyuncu denetlemez; yani oyun ilk gününde herkes yapay zekânın yönettiği bir dünyayı izler.

Bir insan oyuncu bir devlet seçtiğinde iki şey olur: oyuncu o devletin denetimini alır ve yapay zekâ o devletten çekilir. Başka bir insanın denetlediği devlet seçilemez. Var olmayan bir devlet de seçilemez.

Gözlemci ise hiçbir devleti denetlemez. Gözlemci dünyayı izler, yalnız gözlemcilere açık olan komutları verebilir.

Neden ayrı bir tablo?

Kilit adım (lockstep) denen çok oyunculu düzende her makine aynı komutları aynı sırayla alır. Yetki kuralı bu yüzden motorun içinde olmalı: her makine aynı kararı verirse oyuncuların oynadığı dünya ayrışmaz. Yetki durumu da dünya durumunun parçasıdır: kaydedilir, yüklemede geri gelir. Yani kayıttan dönen bir oyuncu, kaydettiği devletin sahibi olarak devam eder.

Demir adam kipi

Demir adam kipinde elle kayıt alınamaz ve koşu bozulabilir olarak işaretlenir. Bu kipte yetki tarafında iki şey kapalıdır: devlet değiştirmek ve gözlemci olmak. Tek istisna şudur: oyuncunun denetlediği devletlerin hiçbiri kalmamışsa, oyuncu yeni bir devlet seçebilir. Yani bir oyuncu devletini kaybettiyse koşuyu tamamen bırakmak zorunda kalmaz.

Sıra da önemlidir. Yeni oyunda devlet seçimi, demir adam kipi açılmadan önce yapılmalıdır. Kip açıldıktan sonra seçim reddedilir.

Geliştirici konsolu

Aynı çalışmada motora bir geliştirici konsolu da eklendi. Konsoldaki her satır, kullandığı içeriğin kapsamlarıyla derlenir. İki tür komut var:

  • Okuma komutu yalnız sorar ve doğru ya da yanlış döner. Dünyayı değiştirmez.
  • Etki komutu dünyayı değiştirir. Bu komut yalnız hata ayıklama kapısı açıkken çalışır.

Demir adam kipinde konsol tamamen kapalıdır. Konsolun ekranı ön yüzün işidir; motor satırı derler, komut adlarını tamamlar ve geçmişini tutar.

Bedeli ne?

  • Hız ölçülmedi. Yetki kontrolünün gün süresine etkisini bu çalışmada ölçmedik.
  • Gerçek ağ oturumu denenmedi. Doğrulama motorun kendi sınamalarıyla yapıldı; birden çok makineli gerçek bir oturum bu çalışmanın parçası değil.
  • Oyun kararları oyunundur. Hangi devletin hangi kuralla kimin olacağı, oyunun tasarımıdır. Motor yalnızca kuralın uygulanmasını garanti eder.

Sık sorulanlar

Yeni bir oyunda bütün devletleri yapay zekâ mı yönetir?

Evet. Kurulduğunda bütün başlangıç devletlerini yapay zekâ oyuncusu denetler. Bir insan oyuncu bir devlet seçtiğinde o devlet yapay zekâdan alınır.

Gözlemci ne yapabilir?

Gözlemci hiçbir devleti yönetmez; dünyayı izler ve yalnız gözlemcilere açık komutları verir.

Demir adam kipinde devlet değiştirilebilir mi?

Hayır, bir istisna dışında. Oyuncunun denetlediği devletlerin hiçbiri kalmadıysa yeni bir devlet seçebilir.

Kayıttan dönen oyunda yetki kaybolur mu?

Hayır. Yetki durumu dünya durumunun parçasıdır; kayıt onu taşır ve yükleme geri getirir.

Motorun bu ayrıntıları için MKA Engine sayfasına bakabilirsiniz. Çok oyunculu düzenin zemini için önceki bir yazı: Kilit adım ve senkron kaybı. Sorularınız için iletişim sayfasından bize ulaşabilirsiniz.

Kaynaklar ve ilgili belgeler

Bunlar da ilginizi çekebilir