31-05-2017, 20:27
Hearts of Iron IV geliştirici günlüklerinde bu hafta Dan Lind, oynanışı Death or Dishonor ile yenilenen Çekoslovakya'dan bahsediyor.
Aynı zamanda SteelVolt yapayzekada yapılan geliştirmelere dair 2. yazısını yayımlamış.
https://forum.paradoxplaza.com/forum/ind...2.1026194/ :Merhabalar, bu hafta sizlere Death or Dishonor eklentisiyle birlikte oynanışı geliştirilen son ülkeden, Çekoslovakya'dan bahsedeceğim. Çekoslovakya'dan bahsettikten sonra sözü SteelVolt devralacak ve size yapayzekada yaptığımız geliştirmelerden bahsedecek. Fazla uzatmadan hemen konuya girelim.
Çekoslovakya
Savaş öncesi periyoda dair "peki ya şöyle olmasaydı?" gibi soruları belki de en rahat sorabileceğiniz ülke Çekoslovakya. Ya ittifak güçleri kayıplar yaşayıp Çekoslovakya'yı terketmeseydi? Veya Çekoslovakya Hitler ile bir tür "antlaşma" yolunu seçseydi? Versaillles'i savunmayı başaramamış Fransa ve Britanya'ya güvenmek yerine kendi ittifaklarını kursalardı nasıl olurdu?
Tabi ki eğer Almanya'ya zıt gidiyorsanız, bunun hazırlığını öncesinde yapmış olmanız gerek ve Çekoslovakya mevzu buraya gelmeden evvel çözmek zorunda olduğu bazı dertlere sahip. Çekler ve Slovaklar birbirlerinden pek hazzetmiyorlar, Almanya ile oldukça geniş bir sınırınız var ve savaşacak mısınız yoksa teslim olacaksınız buna karar vermek için çok fazla zamanınız yok. Nereye odaklanacağınız, hangi sorunu çözeceğiniz oyunun erken döneminde karar vermeniz gereken önemli hususlardan biri.
Sudetenland bölgesindeki tahkimatınız düşmanı yavaşlatıp size bir miktar zaman sağlayabilir ve bu esnada batılı güçlerin yardımınıza yetişmesini umabilirsiniz ancak her zaman bir şeyler başarabilmek için ordunuzu modernize etmeniz, hava kuvvetlerinizi güçlendirmeniz ve endüstrinizi kurmanız gerek.
Tarihte Çekoslovakya kendi kapasitelerinin oldukça üstünde bir askeriyeye sahipti, çok sayıda ana güç ile hem havacılıkta hem de zırhlı birimlerin üretiminde mücadele edebiliyordu. Bu durum oyunda Çekoslovakya'ya özel "Skoda Works" spiritiyle yansıtılıyor. Bu spirit aktifken fabrika üretiminiz normalin çok üstünde oluyor. İhracat odağıyla birlikte üretim savaşında Almanya ile mücadele etmeniz bir süreliğine olsa da mümkün.
Diplomaside iki seçeneğiniz var. Ya Almanya'ya boyun eğeceksiniz ya da Almanya'ya karşı mücadele edeceksiniz. Burada bir tercihte bulunduktan sonra farklı alt seçenekleriniz var, eğer Almanya'ya karşı mücadele etmeyi tercih ediyorsanız batıdan mı yardım bekleyeceksiniz? (spoiler: tarihte bu seçenek pek işe yaramadı) yoksa Yugoslavya ve Romanya ile birlikte bir pakt mı kurmaya çalışacaksınız? Eğer pakt kurmayı tercih ederseniz Macaristan ile aranız bozulacak.
Alternatif olarak devrimin bir parçası olup Sovyetler Birliği'nden yana bir tercihte bulunabilirsiniz ancak bunu yaptığınızda neredeyse tüm komşularınızla aranız bozulacak.
Ancak Almanya'ya boyun eğme seçeneğiniz de var, Almanya'ya Sudetenland'ı verip Almanya'nın bir kuklası haline dönüşebilirsiniz. Ancak Hitler batılı güçleri aşağılama peşinde olduğu için kimi zaman bu gibi basit bir çözümü yeterli bulmayabilir. Son olarak faşist olup Almanya ile iyi ilişkilere sahip olmaya çalılşabilir, Mihver'in bir parçası olabilir veya Almanya'nın uydu devleti haline gelebilirsiniz. Almanya'nın uydu devleti olmaya dair ayrıntılı bilgiyi önümüzdeki geliştirici günlüklerinde paylaşacağız.
Çekoslovakya'da yapılan değişiklikler aynı zamanda birimler için özel ses komutları, yeni 3 boyutlu modellemeler ve lider portreleri de içeriyor.
Yapayzeka Güncellemesi #2
Merhabalar, SteelVolt yine karşınızda.
Yapayzekadaki geliştirmelere dair bir başka geliştirici günlüğü yazmanın vakti geldi. İlk olarak PDXCON'daki konuşmama katılan herkese teşekkür etmek isterim. Konuşma odasına dahi zar zor sığdık, çok güzel sorular sordunuz, keşke biraz daha vaktim olsaydı daha çok soru cevaplayabilmek için.
Bugün sizlere 1.4 için yaptığımız ikinci büyük yapayzeka geliştirmesinden bahsedeceğim, roller. Bu oldukça büyük bir değişiklik, genel olarak yapayzekanın ne gibi durumlarda nasıl hareket edeceğini belirliyor. İlk olarak modculardan özür dilemek isterim çünkü eski dosyalarda bir hayli değişiklik yapmanız gerekecek. İyi haber ise artık dosyalardaki ufak değişiklikleriniz yapayzekayı daha net bir şekilde etkiliyor.
İlk olarak, yapayzeka artık ekipmana dayalı dizayn yapmaya çalışmıyor. Bu durum yapayzekanın çoğu kez ordu tecrübe puanlarını israf etmesiyle sonuçlanıyordu. Bunun yerine artık farklı roller için gruplanmış farklı şablonlar mevcut. Bunun nasıl yapıldığını ve örnekleri aşağıdaki spoiler kısmında görebilirsiniz.
Farklı türdeki ekipmanlardaki ilerleyiş, örneğin zırh türleri tek bir grup içerisinde toplanabiliyor. Üretim ve konuşmanla yapayzekası artık belli bir role göre üretim yapıyor, dolayısıyla kod olarak üreitmin %'lik belli bir kısmını spesifik bir role ayırabiliyorsunuz. Yine aynı şekilde kod aracılığıyla bazı roller kapatılıp açılabiliyor.
Bir rol içerisidne çok sayıda hedef şablon bulunabiliyor ve tüm bu şablonlarda ufak farklılık değerleri yer alabiliyor, bu değerler arasında üretim öncelik değeri gibi şeyler mevcut. Tüm bu değişiklikler hem yapayzeka şablonlarının daha etkili olmasını hem de ürettiği şeyin daha isabetli olmasıyla sonuçlanıyor.
Tüm bunlar oyunun ana sürümü için geliştirilmş olsa da modcular daha fazla zaman harcaması durumunda daha başarılı şeyler ortaya çıkarabilir. Bu değişikliklere dair son husus ise yapayzekanın bu rolleri nasıl kullandığı, şimdilik pek bir statik yapıda, garnizon rolüne sahipse bir birlik, garnizon rolüne atanıyor. Bonus olarak aşağıdaki ekran görüntüsünde artık kodlanabilir iki yeni şeyi görebiliyorsunuz, bölük ikonu ve takviye önceliği.
Bu özellikle birlikte rollere verilen emirleri de tam anlamıyla kodlanabilir hale getirebiliriz ancak önümüzdeki yama için henüz tam anlamıyla hazır olan bir şey değil. İlerideki güncellemelerde daha net bir şekilde bu konu üzerine eğileceğiz.
Eski AI kodunu yeni koda nasıl geçirebileceğiniz kısmı aşağıda yazıyor:
Kod:1. The new 'role' scope;
armored_GER = {
This can be named anything. It should not even matter if they have the same names across multiple files for different countries. This example will encompass all the target template entries related to this role. If you want several different armored roles, you are free to make multiple entries for armored. Really, it is all up to you.
But before we get to the templates themselves, there are a couple of things that need to be set for the role:
2. Who is this available for:
Code:
available_for = {
GER
}
Doing this means that this role is available only for Germany. Adding any tags will make it available for them as well. If you do something like this:
Code:
blocked_for = {
GER
}
Means that the role is blocked for Germany, and available for everyone else. This field also takes an arbitrary number of tags.
If neither of these are set, the role will be available for everyone.
3. What actual roles is this entry supposed to fill:
This one is important, because it is what the production and deployment AI will be looking at.
roles = {
armor
}
While you CAN use multiple roles, in the typical case it is recommended to stick to only one. The garrison role would have one looking like this:
Code:
roles = {
garrison
}
And this would make the AI really want to put them in the garrison order.
4. Which existing templates should be included in this role:
match_to_count = 0.50
Pretty straight forward. There needs to be a way for the AI to guess which template belongs and which does not. Be careful with this one. Make sure you test it to get a limit that works well for your setup.
5. How important is this role right now:
Code:
upgrade_prio = {
factor = 2.0
modifier = {
factor = 5
OR = {
has_tech = basic_medium_tank
}
}
modifier = {
factor = 2
has_tech = main_battle_tank
}
}
Setting the base factor to the same for all your roles means that a small random factor will make the AI update different roles each iteration. The modifiers are all multiplied in with the factor given that all the triggers in them are tested as true.
And with that, you can paste your existing template entries into the scope. Here are a couple of new features in those scripts:
1. The template entry name:
light_armor_default_GER = {
This used to be vital to be correctly formated. This has no effect anymore, as it is no longer trying to match it to equipment. So name it whatever you want, even the same name within the same role should not matter. You're welcome ;)
2. Upgrade priority:
Code:
upgrade_prio = {
factor = 2
modifier = {
factor = 2
}
}
This is completely analogous to the role one, except it is only compared to the other templates within the same role, and has not effect on which role is updated, only which template.
3. But which template to focus production on:
Code:
production_prio = {
factor = 1
modifier = {
factor = 1
}
}
The AI will build the template with the best score for the role it is assigning to a deployment line. This score can be altered with this. You can use triggers in the exact same way as you would the upgrade prio seen higher up.
And that is it! The rest is exactly as it used to, only more reliable. Since bugs have been fixed in the match score functionality, you may need to tweak the balance of some numbers, but there is no other new functionality in the system.
Tüm bunların yanı sıra çok sayıda hata giderimi ve şablon tasarım kodu üzerinde çalışmalarda bulunduk. Her şeyi geride bıraktığımızda tüm bu değişikliklerin HoI4'teki oynanışınızı daha güçlendirecek tarzda şeyler ortaya çıkardığını düşünüyorum. Haftaya sizlere çok sayıda ufak şeyin yanı sıra Mihver ülkeleri için yeni vassal seviyelerinden bahsedeceğiz.