Günlük: HoI4 - Yapayzeka
#1
z59gAj.jpg
Bir başka Hearts of Iron IV geliştirici günlüğüne hoşgeldiniz, bu haftanın konusu yapayzeka.
Günlük SteelVolt tarafından hazırlanmış, inceleyelim.

Hearts of Iron IV'de yapayzekayı kodlarken özellikle zor olan 2 husus mevcut.
  1. Dinamik bir sandbox oyunu tasarlarken aynı zamanda tarihsel gerçeklikler içerisinde bir sonuç yaratmak.
  2. Oyuncu tarafından çizilen planların AI tarafından başarılı bir şekilde gerçekleştirilmesi, böylelikle bu mekaniğin kullanılması.
Bol miktarda ter, kan ve gözyaşı sonucu bu iki maddeden de başarıyla geçtiğimizi düşünüyorum.

İlk madde için, Hearts of Iron IV'deki yapayzekayı diğer PDS oyunlarındaki yapayzekadan ayıran çeşitli unsurlar var, örneğin zaman dilimi kısıtlamasıyla insanlar Hearts of Iron IV'deki yapayzekanın öyle ya da böyle tarihsel belli gerçekliklere bağlı şekilde davranmasını bekliyor. Hearts of Iron IV serinin daha önceki oyunlarına nazaran daha değişken bir sandbox deneyimi yaşatsa da oyunun başlangıcı tarihsel ve yapayzekanın da tarihteki ülkelerin yaptığı hamleleri yapması için oldukça fazla sebep var. Burada zor olan kısım beklenmeyen bir olayın gerçekleşmesi halinde yapayzekanın bunu iyi bir şekilde analiz edebilip, oyuncuya tarihsel olmasa da düşünüldüğünde mantıklı gelebilecek hamleler yapabilmesini sağlamaktı.

Bu probleme çözüm olarak dinamik yapayzekayı oluşturup yapayzeka ve oyuncu ülkelerinin çeşitli yollarla yönlendirilmesini sağladık. Oyunda ulusal odak adını verdiğimiz sistemden önceki geliştirici günlüklerinde bahsetmiştik, bu yönlendirmelerle yapayzeka henüz savaş başlamadan çeşitli hamleleri yapmış oluyor, peki yapayzeka ulusal odakları nasıl seçiyor? Bunu isterseniz tarihsel olarak ayarlayıp ülkelerin tarihsel ilerleyişleriyle oyun deneyimi yaşayabiliyorsunuz, isterseniz yapayzekanın dinamik olarak kararlar vermesini seçebiliyorsunuz ve yapayzeka bu kararları verirken ülkesinin ve dünyanın durumunu değerlendiriyor.

Oyun içerisinde 200'ü aşkın değişken bulunuyor ve yapayzeka bu değişkenleri kontrol ederek çeşitli kararlar alıyor. Yapayzekanın karar mekanizmasını modlamayla alakalı geliştirici günlüğünde olduğu üzere etkileyebiliyorsunuz. Bu değişkenler dışında yapayzekanın davranışını etkileyen hiçbir kod bulunmuyor.

Örneğin Avusturya'nın Anschluss eventini kabul etme olasılığı aşağıdaki şekilde belirleniyor :

Kod:
ai_chance = {
   base = 30
   modifier = {
       add = -25
       GER = { has_army_size = { size < 20 } }
   }
   modifier = {
       factor = 10
       GER = { has_army_size = { size > 19 } }
   }
}

Eğer Avusturya Anschluss'u kabul etmezse Almanya'nın bu durumla ilgili tepkisi şu şekilde oluyor :

Kod:
anschluss_rejected = {

   # Conditions
   enable = {
       tag = GER
       has_completed_focus = GER_anschluss
       country_exists = AUS
   }
   abort = {
       NOT = {
           country_exists = AUS
       }
   }
 
   # Modification if strategy is enabled
   ai_strategy = {
       type = antagonize
       id = "AUS"          
       value = 300
   }      
}

İşleri biraz daha enteresanlaştırmak istiyorsanız ülkelerin birbirine olan bakış açısını bu etkenleri kullanarak değiştirebiliyorsunuz. Bu etkenler oyun içerisindeki bakanlara, kanunlara ve hatta liderin özelliklerine dahi bağlı olabiliyor. Dolayısıyla ideolojilere bağlı kalmaksızın ülkenin başında kim varsa o ülkenin diğer ülkelerle olan ilişkisi ona göre şekil alabiliyor. Bu durumdan ileride daha detaylı bir şekilde bahsetmeyi planlıyoruz.

Bu bahsettiğimiz husus kod olarak şöyle görünüyor : 

Kod:
warrior_code = {
   random = no
   ai_call_ally_desire_factor = -40
}

Veya şöyle :

Kod:
warmonger = {
   random = no
   ai_focus_aggressive_factor = 0.5
}

Bahsetmeye değer bir başka unsur yapayzekanın barış antlaşmasında neyi nasıl değerli gördüğü. Bu husus tamamen önceden kodlanabiliyor, farklı ideolojiler ve farklı ülkeler için farklı seçeneklerin tercih edilmesi sağlanabiliyor. 

İkinci maddemiz oyuncunun hazırladığı savaş planlarının yapayzeka tarafından düzgün bir şekilde gerçekleştirilmesiyle bu savaş planı mekaniğinin kullanılmaya değer bir hale gelmesiydi. Bir ordunun kontrolünü yapayzekaya verdiğinizde yapayzekanın tüm zayıflığını da devralmış oluyorsunuz, bu durum bir yapayzeka ülkesinde o kadar göze batmasa da, yapayzekanın oyuncunun ordusunu yokedecek şekilde yönetmesi büyük bir sorun teşkil edebiliyor. 

Burada ordu kontrolünü yapayzekaya bırakmanın büyülü bir şekilde kusursuz bir yapayzeka hamleleriyle her savaşı kazandıracak bir mekanikle sonuçlanmasını istemediğimizi de belirtelim. Küçük ayrıntılar önemli olmadığı zaman kontrolü yapayzekaya verebilirsiniz, hem yapayzekanın hem de oyuncunun kritik hususları farketmesi beklenir, ancak her birimi de oyuncunun kontrol etmesine gerek yok. Dolayısıyla bu mekaniğin özetinde hazırladığınız savaş planını yapayzeka gerçekleştirirken yapayzekayı denetlemeniz ve kritik hususlarda işe el koymanız beklenir.

Şimdi gelin hep birlikte yapayzekanın zekasını inceleyelim.

Aşağıdaki durumda Almanya daha yeni Polonya ile savaşa girdi. İncelediğiniz görselde ülkelerin diğer ülkelere olan uzun vadede yaklaşım biçimleri bulunuyor. Gördüğünüz gibi Almanya yakınında bulunan demokrasiyle yönetilen ülkelere hiç hoş yaklaşmazken faşizm yanlısı diğer ülkelere kendisini yakın hissediyor.

dd1-jpg.173986

Öte yandan Hollanda kendisini büyük tehdit altında görüyor. Almanya tarafından tehdit altında olan Hollanda ya Almanların zayıflatılmasını istiyor ya da Almanya ile müttefik olmayı. Gördüğünüz gibi Almanya'ya düşman yaklaşmıyor çünkü olası bir savaş durumunda ezilme riski çok yüksek.

dd2-jpg.173987

Bu esnada İngiltere'ye bakarsak İngiltere'nin Avrupa'da bulunan küçük ve demokratik bir ülke olan Hollanda'yı korumak istediğini görüyoruz.

dd3-jpg.173988

İngiltere bir süre sonra savaşa dahil oluyor, ancak Hollanda hala müttefiklere katılıp Almanya'ya karşı savaşmaya istekli değil. Çünkü Almanya'ya çok yakın bir konumda bulunuyor ve işgale uğrama olasılığı çok yüksek.

dd4-jpg.173989

Son olarak yapayzekanın birimleri nasıl hareket ettirdiğinden bahsedelim.

dd5-jpg.173990

Hangi birimin hangi düzende bulunduğu tamamen dinamik bir şekilde belirleniyor, ne yazık ki buna yönelik bir görsele sahip değiliz.

Yapayzeka kodlayan birinin en gururlu anı muhtemelen kendi kodladığı yapayzekanın onu savaş alanında yenilgiye uğrattığı andır. Benim için o durum 2 hafta önce Almanya ile oynadığım esnada yaşandı. Batı Avrupa'yı rahatlıkla ele geçirmiştim, doğuya odaklanmadan önce İngiltere'yi savaş dışı bırakmak istiyordum bu esnada kıyılarım olası bir D-Day denemesine karşı güvendeydi. Aynı zamanda Sovyetlerle olan sınırım da güvendeydi ve tüm üretimimi Britanya'ya büyük bir deniz çıkartması yapmak üzere yoğunlaştırmıştım. Tam çıkartma planları yaparken İngiltere ve ABD aynı anda İtalya ve İspanya'ya çıkartma yapıp ikisini de yenilgiye uğratıp kendilerine büyük bir üs edindi. Dostlarıma yardım etmek için ordu gönderdiğimde İngiltere ve ABD daha çok asker çıkarıp hem İtalyan/İspanyol ordularını hem de benim yolladığım takviye güçleri yenilgiye uğrattı. Eğer tek birine odaklansaydım muhtemelen birini yenilgiye uğratabilirdim, ancak güney Avrupada o şekilde bir üs edinmeleri başedebileceğimden fazla sorun yarattı.

Son olarak şunları bilmenizde fayda var.
  • Oyun içerisinde hiçbir yerde önceden kodlanmış karar mekanizması bulunmuyor, yani Almanya şunu yaparsa sen de bunu yap gibi bir kod kesinlikle yok.
  • Dinamik yapayzeka kesinlikle hile yapmıyor, yapayzeka da oyuncunun sahip olduğu bilgiler kadarına sahip oluyor ve ona göre hareket ediyor.
  • Başka bir partinin popularitesini yükseltme mekaniği dışında yapayzekanın kısıtlandığı hiçbir mekanik yok. O mekanik de oyuncuya daha çok sandbox bir oyun deneyimi yaşatmak için oyunda bulunuyor, öte yandan başka bir ülkede darbe denemesi yapma mekaniğinde de büyük kısıtlamalar yaptık.
Her ne kadar herkesin beklentilerini tam bir biçimde karşılayan yapayzeka oluşturmak imkansız olsa da, Hearts of Iron IV'deki yapayzekanın çok iyi bir şekilde hazırlandığını ve oyunu çok derin ve eğlenceli bir hale getirdiğini söylemek mümkün.
[+] 1 üye Duman nickli üyenin bu iletisini beğendi.
Cevapla
 


Bu Konudaki Yorumlar
HoI4 - Yapayzeka - Yazar: Duman - 29-04-2016, 13:53



Konuyu Okuyanlar: 1 Ziyaretçi



Strategyturk Forumları

Strategyturk Forumları tüm Türk stratejiseverler için büyük ve kaliteli bir platform olma amacı güder. Forum içerisinde çok sayıda strateji oyunu için bölüm ve bu bölümlerde haber konuları, rehberler, mod tanıtımları, multiplayer etkinlikleri ve üye paylaşımları için alanlar yer alır.