Günlük: CK2 - Yapayzeka ve Optimizasyon
#1
diaryck2.png

Crusader Kings II geliştirici günlüklerinde bu hafta Meneth yapayzekadan ve optimizasyondan bahsediyor.

https://forum.paradoxplaza.com/forum/ind...n.1050551/ :Herkese merhabalar ben Magne "Meneth" Skjæran, bir başka günlükle yine karşınızdayım. Bu şekilde günlüklere başlarken daha önce ne hakkında günlükler yazdığımdan bahsetmek gittikçe daha çok zaman alan bir eylem haline geliyor, bu sebeple favorilerim olan modlama, optimizasyon ve arayüz geliştirmeleri ile ilgili günlükler yazdığımı belirtmek isterim.

Bugün sizlere bu konulardan biri hakkında, optimizasyon hakkında konuşacağız. Bunun yanı sıra önümüzdeki yamayla birlikte yapayzekayı geliştirmek için neler yaptığımızdan bahsedecek, hatta yamada yapayzeka ile ilgili tüm değişiklikleri sizlerle paylaşacağım. Bu yamadaki yapayzeka değişiklikleri CK2 tarihinde yapayzeka üzerine yapılmış en kapsamlı çalışmalar oldu.

Gelin optimizasyonla başlayalım, hatırlarsanız The Reaper's Due eklentisinin yanında çıkan yamada da optimizasyon çalışmalarımız olmuştu, bu yamadaki çalışmalar o çalışmaların yanına yaklaşabilecek seviyede değil, ancak Tibet'e, Tarim Basin'e, Ortadoğuya eklediğimiz yeni bölgeler doğrultusunda oyunun yavaşlamadığından emin olmak istedik. Geliştirme esnasında oyunu daha hızlı yapabileceğini düşündüğümüz bazı bölgeleri belirledik ve geceleri açık bıraktığımız observer oyunlarımızda oyunun hızını ölçtük.

Sonuç itibariyle kimisi büyük çaplı kimisi ise küçük şeyler olmak üzere 50'yi aşkın farklı değişiklik sonrasında oyunun yavaşlamasını engellemiş olmak bi kenara, oyunu 2.7'deki haline oranla hızlandırmış olduk.

Aşağıda bunu sağlamak için yaptığımız çalışmalardan bazılarını inceleyebilirsiniz:
  • HoI4'ün arayüz optimizasyonunu CK2'ye uyarladık.
  • Birim harita ikonları üzerinde optimizasyonlar yaptık.
  • Saray üyeleri artık 20 günde 1 değil, 50 günde 1 event olup olmadığını kontrol ediyor.
  • Alt ünvanlarda güncelleme yapılıp yapılmamasının gerektiği paralel olarak gerçekleşiyor.
  • Yapayzekayı oyundaki decadence mekaniğini yıllar önce değiştirdiğimize dair bilgilendirdik ve bu doğrultuda artık aile üyelerine sırf vermiş olmak için ünvan vermiyor.
  • Topraksız karakterler artık "konsey üyesi olma" isteğine sahip olamıyor.
  • Decisionlar için ai_check_interval süresi eklendi.
  • Plot ve ambition seçimleri artık paralel olarak yapılıyor.
  • Yağma orduları nereye gideceğini artık normal ordular gibi belirliyor.
Değişiklikler genel olarak çok sayıda küçük değişiklikten ve bazı paralelleştirmeden ibaret.
Bunların yanı sıra oyunda "gereksiz karakter" oluşturulmasını engellemek adına bazı değişikliklerde bulunduk.
  • Oynanabilir karakter için karakter üreten eventler ve decisionlarda kısıtlamalarda bulunuldu.
  • PopulateCourt üzerinde geliştirmelerde bulunuldu, artık konsey üyelerini, mevcut concubineleri daha iyi sayıyor.
  • Saklanan veya hapse atılmış karakterler artık kadınları hamile bırakamıyor.
  • AI baron oluşturma sistemi artık ilk olarak sarayda uygun bir aday arıyor, eğer bulamazsa yeni karakter oluşturuyor.
  • Gemili paralıaskerlerin birimaltı komutanları oluşturmaları hatası giderildi.
2.8 ile birlikte çok sayıda bölge eklenmesine ve çeşitli yollarla Çinli karakter üretilmesine rağmen oyunun hızı 2.7 ile benzer bir seviyede:

rJEGvB.png

Karşılaştırma yapmak gerekirse bu tablo Reaper's Due'da şu şekilde görünüyordu:

7yAjZm.png

Ne yazık ki Monks and Mystics için benzer bir tabloya sahip değilim, ancak Jade Dragon tablosuyla benzer bir şekilde olacağını tahmin ediyorum.

Yukarıda listelediklerimizin yanı sıra çok sayıda küçük değişikikler yaptık ancak bunlardan bahsetmek hem ilginizi çekmeyecek hem de fazla teknik ifade içeriyor.

Genel olarak tüm bu değişikliklerle oyunu 2.7 sürümünden %8 ila %16 daha hızlı hale getirdik, tahmin edebileceğiniz üzere bu fark bilgisayardan bilgisayara değişiyor ancak şunu belirtmek isterim ki test yaptığımız her bilgisayar oyunu 2.7'den daha hızlı çalıştırdı. Asıl amacımızın oyunun yavaşlamadığından emin olmak olmak olduğu için yaptığımız testler sadece oyunun ilk 10 senesindeki hızı net bir şekilde ortaya koysa da, yaptığımız geceboyunca açık bırakmak üzerine testlerde uzun vadede de aynı sonucu gözlemleyebiliyoruz.

Oyunda aynı zamanda oyunun hafıza kullanımını azaltan bazı değişikliklerimiz oldu ancak bunun çok düşük seviye RAM'e sahip bilgisayarlar dışında farkedileceğini sanmıyoruz.

Şimdi gelin yapayzekadan bahsedelim. CK2 yapayzekası her zaman bazı sorunlara sahipti, oyunun karakter odaklı olması bunun oyunu etkilemesini minimalize eden bir unsurdu çünkü düşündüğünüzde insanlar da sorunlu olabiliyor. Ancak bazı hususlarda -özellikle ordu yönetiminde- sıkıntılar, yapayzekanın diğer karakterlere ünvan dağıtırken adamın bir toprağının alakasız yerde diğer toprağının alakasız yerde olmasına sebep olması gibi durumlar bazı değişiklikler yapmamızı şart kıldı.

Aşağıda 2.8 yamasının yapayzeka değişiklikleri kısmını inceleyebilirsiniz:
Kod:
- Fixed one way AI characters that should have AI could end up with no AI
- The AI now actually considers the idea of sending its army to a province if its friends are there or adjacent, even if the province is otherwise a bit boring
- The AI now actually realizes that friendly armies standing near a potential target is a good thing even if it doesn't personally own those armies
- Once the AI gets to its allies it won't decide that if it can't attach due to supply, it is better for everyone if it just packs its bags and goes home. Instead it will now try to stick close
- The AI is now vaguely aware of the existence of tribal vassals when evaluating whether a faction has a real chance of succeeding
- The AI now checks to see exactly how many liege levies it'll deny its liege by revolting, rather than going "eh, half my levies I guess?"
- The AI now takes tribal vassals into account in most decisions where it considers how strong a potential enemy or ally is, rather than simply pretending they don't exist
- Fixed aggression from ambitions having 20 times as big an effect as intended
- AI will now also call allies to arms if the estimated answer is a "maybe," to force them into making a decision.
- Raiding adventurers now realize once they've been settled that maybe, just maybe, they should consider their new realm their base of army operations, and return armies there when they're not up to anything
- AI: Should be snappier to evaluate settlement decisions when needed
- If defensive pacts are disabled, the AI will no longer think no one could possibly be a threat to it
- AI: Made the Pope less reluctant to accept requests for excommunication
- AI (Conclave): Will never pick Heritage or Faith Focuses for children of the right culture and religion
- Tributaries are now always aware that their tributary relationship benefits their suzerain more than them, and that they could potentially break free
- The AI no longer gets increasingly reckless the more "rational" it is; being enlightened by your intelligence turns out not to make your troops any better
- The army AI no longer thinks that just because two destinations are pretty much equally good, it should switch back and forth between the two and thus never get anywhere
- The army AI now understands that if it has bothered to start a siege, maybe there was a good reason to do so, so we shouldn't just run off right after just because another destination looks very slightly better
- Taught the AI that more loot means a province is a better target for looting
- The army looter AI now actually realizes that if all the loot in a province is protected by holdings and the army isn't big enough to siege them, it isn't actually a good loot target
- The AI now considers any strong realm nearby a potential threat
- Taught vassals how to send alliance offers to other vassals
- Informed the AI that we changed how decadence works years ago and it shouldn't give titles to its family members just for the hell of it
- Told the AI that if it is the attacker in a war, it *might* be a good idea to actually go attack the defender even if you're targeting their whole realm rather than a specific title within it, and it is a bit of a long walk
- The AI has learned how to spell, and no longer look for "soceities" missions when they're actually called "societies" missions. With this newfound ability to spell, the AI is better at identifying mission targets
- Taught nomads that if they rise in revolt in response to an attempt to split their clan, maybe they should accept it next time rather than rise again and again
- The AI is no longer deathly afraid of going overseas to help its allies just because the enemy is a bit far away
- The AI no longer thinks that just because a province is *someone*'s capital, it's a good target; it is now more discerning and only cares if it is the capital of an enemy
- The AI is now a bit more aware of just how superior heavy cavalry is to light infantry
- The AI now no longer thinks that enemy armies adjacent to other enemy armies are just on vacation, and won't help out if it were to attack
- Gave the AI a crash course in how to hand out titles
- Gave the AI a crash course in how to transfer vassals in a way that won't make you want to claw your eyes out
- The AI now realizes that just because it has occupied everything it borders, it shouldn't skip out on occupying the non-bordering stuff
- Taught the AI a few things about how supply works, and why a doomstack isn't always the best way to deal with it while travelling to its destination. The AI is hard of hearing, so it only partially understood this lesson, but partial understanding beats no understanding, right?
- Taught the Pope Geography 101, with an emphasis on what "distance from Catholicism" and "size of kingdom" means in the context of Crusades, and why this means that invading India when Egypt is right there might be a bad idea
- Informed the AI that just because their ideal commander can't lead troops right now, doesn't mean they should just skip assigning a commander to the flank they wanted to assign that commander to
- The AI now realizes that once it is landed, it should base its army in its capital rather than have it stand in the middle of nowhere, taking attrition, just because it happened to spawn in the middle of nowhere many years ago
- Betrothed men no longer go "nah, can't fulfill this betrothal" after sending a marriage offer which you accidentally reject. They will also no longer decide to not bother to resend the offer while mumbling "let's see how *they* like being ignored"
- Told just-spawned raiding adventurers "hey, your fleet is right over there" so that they wouldn't disband instantly when spawning on an island with no good raid targets, due to thinking that getting across the sea is simply impossible
- Members of small reformed religions are now a bit more fond of joining Great Holy Wars and the like
- The AI has finally come to the realization that it is allowed to invite its own vassals and courtiers to plots, not just the vassals and courtiers of the target

Özetlemek gerekirse bu değişiklikler askeri yapayzekanın yaptığı bazı fazla basit hataların büyük bir kısmını gideriyor, açıkçası halen bazı problemler sözkonusu örneğin yapayzekanın bir yere ordu gönderip sonra hemen geri çekme hususunu farketmiş olsak da save dosyasına girdiğimizde aynı durumun yaşanmasını sağlayamadık dolayısıyla o duruma neyin sebep olduğunu bilmiyoruz. 

Bunun yanı sıra yapayzeka artık ünvan dağıtmada ve vassal transfer etmede çok daha iyi. Bir yandan mevcut vassalları haddinden fazla güçlendirmemeye dikkat ederken, diğer yandan karakterlerin ve toprağın kültürüne ve dinine daha dikkat ederek paylaşım yapıyor, hanedanını güçlendirmeye çalışıyor. Alakasız yerlerde uzak vassallara bambaşka yerlerden ünvanlar vermiyor. Veraset yoluyla halen alakasız yerlerden topraklar edinebilirsiniz ancak bu tamamen tarihsel bir durum. Son olarak Papa artık dibinde önemli tehditler varken Hindistan'a haçlı ilan etmiyor.

Bugünlük bu kadar.
[+] 4 üye Duman nickli üyenin bu iletisini beğendi.
Cevapla
#2
Bu tür günlükler tek bana mı "Çıkarmış olmak için çıkarılmış" gibi geliyor?
Sic Parvis Magna
Ara
Cevapla
#3
Haftalık formatta her günlükte müthiş yeni içerik tanıtımı yapmalarını beklemek pek mantıklı değil. Örneğin Civilization dlc tanıtıyor, yama çıkarıyor, sonra 3 ay hiç bilgi paylaşmıyor oyunla ilgili. Öte yandan PDX oyunlarına her hafta geliştirici günlüğü yazılıyor ve belli ki filler'larla bile olsa oyun üzerindeki etkiyi tutmak için haftada 1 kere belirlenmiş bir günde günlük çıkartmayı önemli görüyorlar. Bahsedecek bir şey yok diye günlük yazmayı tamamen bıraksalar bir süre sonra günlüklerin tekrar başladığı bilgisini millete duyurmakta zorluk yaşayabilirler. Ancak şimdi "bomboş bir günlük" bile olsa her hafta millet o oyun hakkında geliştiricilerin birşeyler yazacağını biliyor.
[+] 2 üye Duman nickli üyenin bu iletisini beğendi.
Cevapla
#4
Bilemedim. Kalitesiz iş yapmaktansa yapılmamasını tercih ederim şahsen. Bu tarz günlükler de son zamanlarda sıklaştı. Artık yeni bi pazartesi günü günlük çıkacak da okuyacağım gibi heveslerim olmuyor. Aman yine saçma sapan bişey atmışlardır diyip bakmıcam ama belki bir umut diyip yine geliyorum, yine eli boş dönüyorum.
Sic Parvis Magna
Ara
Cevapla
#5
Alıntı:"Saklanan veya hapse atılmış karakterler artık kadınları hamile bırakamıyor."

Gerçekçiliğe darbe vuran bir değişiklik olmuş: http://www.hurriyet.com.tr/duvari-delip-...kti-136215
[+] 2 üye Wickhart nickli üyenin bu iletisini beğendi.
Ara
Cevapla
 




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.