Günlük: EU4 - 1.28 "Spain" Yamasındaki Yapay Zeka Geliştirmeleri
#1
diaryeu4.png
EU4 günlüklerinde bu hafta 1.28 "Spain" yamasındaki ordu yapay zekasında yapılan değişikliklerden, geliştirmelerden ve bu konuda modculara gelen yeni yeteneklerden bahsediliyor.

https://forum.paradoxplaza.com/forum/ind...8.1124066/ :Bugünkü geliştirici günlüğüne hoş geldiniz, benim adım Michael ve bir yıldan uzun bir süredir EU4 ekibinde programcı olarak bulunuyorum.

Birçoğunuz son yamalardan sonra yapay zekânın özellikle de kendi topraklarını koruma ve hangi kaleleri kuşatacağını seçme konusunda istenmeyen şeyler yaptığını söylemiştiniz. O yüzden gelecek Spain yamasında ordu yapay zekâsının o yönlerini biraz geliştirmeye karar verdik. Bu geliştirici günlüğünde yaptığımız bazı değişiklikleri anlatacağım. Gömülü bir şekilde kodlanmış yapay zekâ davranışlarını düzeltmenin yanında modcuların da ordu yapay zekâsının bazı kısımlarını etkileyebilme yeteneği ekledik. Günlüğün sonunda bunun üzerinden kısaca geçeceğim.

Öncelikle şu ana kadar yapılan değişikliklerden ve geliştirilen şeylerden bahsedeceğim. Yama üzerinde hala çalışmakta olduğumuz için bunlar da değişebilir.

Deniz aşırı istilalara giden orduların seçimi artık ülkeye olan tehditleri de göz önüne alıyor ve gerekirse daha küçük bir kuvvet seçiliyor. Yine de yapay zekâ başka türlü kazanacağını düşünmüyorsa hala tüm gücüyle istila etmeye çalışabilir. Gereken güç hesaplamaları geliştirildi ve ne kadar asker gerektiğini konusunda artık daha doğru olmalı.

Orduların bölgelere atanması daha önceden sadece yılda bir kez yapılırdı, rastgele bir şekilde daha uzun sürme olasılığı da vardı. Rastgele ordu atamalarının yanında anavatana olan tehdidin ciddi bir şekilde değişip değişmediği de hesaplanıyor (kuşatmalar, anavatana doğru yol alan birçok düşman askeri vs.).

Anavatan sayılan bölgeler tehdit altındaysa bu bölgeler ordu atamalarında daha da yüksek bir önceliğe sahip olacak. Yeteri kadar asker varsa tehdit altında olmadığında bile ülkenin anavatanı bölge konusunda daha yüksek bir önceliğe sahip olmaya devam ediyor. Bu bölgelerin şehir seviyesinde ise ordular artık nereyi kuşatma, nereleri savunma ve savaş hedefleri konusunda kendi ülkelerine yakın olan şehirleri tercih ediyor.

Daha güçlü bir ordudan kaçan kuvvetler hala güvenli bir yer bulmaya çalışacak ama askeri geçiş izinleri ve uzun yürüyüşler daha düşük bir önceliğe sahip, yeteri kadar güvenliyse de en yüksek önceliği anavatan alacak. Yapay zekâ orduları artık bulundukları yeri koruma konusunda daha istekli olacak, özellikle de çok üstün bir kuvvetle karşı karşıya kaldıklarında ve süregelen savaşı kazanma şansları olmadığında. Daha önceden oyuncular bu orduları askeri geçişlerin kolaylığı nedeniyle dünya etrafında kovalamak zorunda kalıyordu.

Kodlanabilen Ordu Yapay Zekâsı
EU4 ordu yapay zekasının temel kısmı şehirlerin hesaplanmasıdır, orduların nereye ve ne zaman gideceğini belirler. Zaten şu anda bu hesaplamanın sonucu değiştiren birçok kod tanımlamaları var ama gelecek yamayla birlikte bu hesaplamayı istediğiniz “tetikleyiciyi” ile değiştirebilecek veya tamamen üzerine yazabileceksiniz. Common/ai_army klasöründe bazı basit şeyleri yapan kod dosyaları olacak ama istediğiniz kadar da ekleyebileceksiniz.

Bu basit örneğe bakalım:

Kod:
province = {
   war = {
       active = {
           is_at_war = yes
       }
       eval_multiply = {
           modifier = {
               factor = 0.1
               is_in_capital_area = yes
           }
       }
   }
}

Şimdilik en üst seviye kapsam (scope) her zaman “province (şehir)”, daha sonra başka seçenekler ekleyebiliriz. İkinci seviyeye istediğiniz ismi koyabilirsiniz, uygulamak istediğiniz farklı değiştirmeleri ayırmak için kullanılır. Event ihtimalleri gibi bunlar da 1’den başlıyor. İlginç kapsamlar ise “active”, “eval_multiply” ve burada gösterilmeyen “eval_add” ve “eval_overwrite”. Bunlarla birlikte şehir puanı hesaplamalarında yapılan değiştirmeleri kontrol edebilirsiniz. Yukarıdaki örnekteki kod ülke savaşta olduğunda uygulanır.

Şehir hesaplamaları oyundaki tüm ordular için oldukça sık yapıldığı için bu “active” tetiği her şehir hesaplamasında kontrol edilmeyecek (şehir hesaplamaları bir günde yüzlerce kez olabilir).

Bu tetik aşağıdaki şeylerden biri gerçekleştiğinde değerlendirilir:
  • Bir şehrin kontrolünü kazandığınızda veya kaybettiğinizde
  • Bir savaş başladığında veya bittiğinde

Puanı üç şekilde değiştirebilirsiniz: çarpabilirsiniz, bir sayıyla toplayabilirsiniz veya doğrudan üzerine yazabilirsiniz. Puan negatif ve 1.0’dan küçük olabilir bu nedenle ters işlemler de mümkün.

Orduların en düşük puana sahip şehirleri tercih ettiğini unutmayın.

Orduları bu şekilde oldukça fazla kontrol edebilseniz de daha öncelikli olan gömülü kodlanmış şeyler de var ve ordular hala oyun kurallarına uymak zorunda (parçalanmış geri çekilmeler vs.). Yine de güzel bir seçenek ve modlarda nasıl kullanılacağını da görmeyi merakla bekliyorum. Yapay zeka davranışını bozmak baya mümkün, bu yüzden özellikle de “eval_overwrite” ile dikkatli olmanızı öneriyorum.

Kodunuzda hata ayıklama için yapay zekâ haritasını kullanabilirsiniz. Bu haritada seçtiğiniz ordu için yapılan tüm şehir hesaplamalarını görebilirsiniz. Bu haritayı açmak için konsolda "mapmode aieval" yazmanız gerekmiyor.

Capture.jpg

Bugünlük bu kadar! Gelecek hafta daha ismini açıklamadığımız Immersion Pack’teki yeni özelliklere göz atacağız.
[+] 5 üye Ragnvaldr nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#2
Bir İngiltere oyunumda Prusya ve Fransa bütün ordularını Fildişine getirmişlerdi. Sonrada Fransa Hepsini oradan çekip hindistana götürmüştü. Bu saçmalıkları çözmeleri lazım önce. Buda iyi bir ikmal sistemi ile olur. Aslında çok basitce çözülebilir. Başkentin bulunduğu eyaletten uzaklaştıkça orduların aldığı zarar artmalı. Ordu ne kadar büyükse aldığı zararda o kadar büyük olmalı. Böylece dünyanın öbür tarafına yayan giden ordu sapı tutar.
Ara
Cevapla
#3
En çok istedigim özellik. Yemin ediyorum o kadar sıkılmıştım ki yapay zeka ile kovalamaca oynamaktan cogu oyunda salip geçiyordum carpet atsınlar diye.
[+] 1 üye Aeschyli nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#4
(16-10-2018, 17:43)Semavi7 : Bir İngiltere oyunumda Prusya ve Fransa bütün ordularını Fildişine getirmişlerdi. Sonrada Fransa Hepsini oradan çekip hindistana götürmüştü. Bu saçmalıkları çözmeleri lazım önce. Buda iyi bir ikmal sistemi ile olur. Aslında çok basitce çözülebilir. Başkentin bulunduğu eyaletten uzaklaştıkça orduların aldığı zarar artmalı. Ordu ne kadar büyükse aldığı zararda o kadar büyük olmalı. Böylece dünyanın öbür tarafına yayan giden ordu sapı tutar.

Oyun dengelerini alt üst eder böyle bir şey.
Ara
Cevapla
#5
@zencefil neden?
Ara
Cevapla
#6
@Semavi7 Rusya gibi kocaman bir ülkeyi, kolonilicilik ile uğraşan ülkeleri mafeder ve çok güçsüz kılar böyle bir yenilik.
Ara
Cevapla
#7
Ya oldukça basit bir mekanik aslında. Eklenmesi gereken şey ordularda erzak ihtiyacı. Binalar sekmesinde erzak sağlayan bir bina eklenecek ve ordular bu binanın yakınlarında olmak zorunda kalacak. Bu alandan çıkan orduların erzak seviyeleri giderek düşmeye başlayacak. Bu seviye yanlızca düşman şehirlerden erzak çalarak artabilecek veya geri dönüp erzağı yenilemeleri gerekecek. Misal İngiltere eğer Hindistan seferi yapmak istiyorsa oraya çıkarttığı ordunun beslenmesini sağlayacak bir üs edinmesi gerekecek veya başka bir devletle anlaşarak onun depolarını kullanacak. Ve uzak yerlere sefere giden ordular böyle bir masrafa sahip olacaklar. Hem başka ülkelerden gıda alma ihtiyacı hemde bina dikmek zorunda kalacak.
[+] 4 üye Aeschyli nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#8
Ekibi elinde orijinal kod var ve düzgün AI yapamıyor. Kısıtlı modlama imkanıyla bir şeyler çıkacağını sanmıyorum boş. Umarım şaşırtırlar.
Çeviri için teşekkürler.
Ara
Cevapla
#9
Yani bu kaçıncı yama ve eklenti, hala yapay zekanın ordusunu adam gibi kontrol etmesi sağlanamamış. Çünkü adamların tek ilgilendiği konu oyuncuları nasıl sömürürüz. Bu yüzden bıraktım ben oynamayı.
Ara
Cevapla
#10
Adamlara yükleniyoruz yapay zeka konusunda fakat şunu da kabul etmek gerekir ki çok fazla ülkenin olduğu bir oyun bu işlemci yükü çok fazla oluyor yapay zekayı geliştirmek için seçimlerini etkileyen faktörleri artırmak zorundasın bunu yapmakta işlemciye olan yükü artırıyor oyuncu kitlesinin hepsinde 8. nesil i7 işlemci de yok kiminin bilgisayarında çok eski nesil işlemciler var adam onunla oynuyor bu oyunu adam 1.10 sürümünde oyunu oynuyorken aynı bilgisayarla 1.25 te o oyunu oynarken oyun keyfini kaçıracak kadar yavaşlık yaşarsa olmaz bu nedenle işlemci yükünü çok artırmadan yapmaları gerek her geliştirmeyi bunuda eski yaplanları optimize ederek yapay zekanın daha kolay doğru seçimi yapmasını sağlayacak şekilde geliştirmeye çalışıyorlar tabi bu durumda istedikleri yapay zeka perfomansına ulaşmalarının önüne geçiyor teknoloji geliştikçe oyuncu kitlesinde ki bilgisayarların perfomansı artıkça adamlar illaki daha kaliteli oyun yapay zekası sunarlar bize oyunlarında bunu da kabul etmek gerek.
Ara
Cevapla
#11
Her AI algoritması CPU'ya yüklenecek diye bir şey yok. Hatta daha temiz algoritmalar CPU'a daha az yüklenir. Kabul ediyorum bu kadar fazla değişkenin olduğu oyunun AI oldukça hantal ve yapımı zordur ama bizde çok şey istemiyoruz. AI ordusu kovalamayalım yeter. AI yeterince hile yapıyor zaten.
[+] 1 üye fff7 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.