Herkese merhabalar, 1 aylığına yapayzeka ve optimizasyon alanında bazı geliştirmeler yapmak üzere EU4 ekibinden HoI4 ekibine geçtim, bugün sizlere bu konular üzerinde konuşacağım.
Yapayzeka
Genel olarak zamanımın büyük bir kısmını kimi zaman tuhaf görüntülere sebep olabilen garnizon düzenine ayırdım. Örneğin Berlin yerine Magdeburga yerleştirilen 2 birim başkentin açıkta kalmasına sebep olabiliyordu. Bunun yanı sıra yeterli birime sahip olmadığınızda bu birimlerin daha efektif bir şekilde kapatılması gereken tüm noktaları kapatmasına yönelik bazı geliştirmelerimiz oldu.
İlk olarak birim yöneticisinin ne işler peşinde olduğunu görsel olarak analiz edebilmemizi sağlayacak bir araç oluşturdum.
Bölge bazlı öncelikler
Eyalet bazlı öncelikler
Bunun ardından garnizon düzeninde ve birimlerin nasıl atandığını baştan kodladım. Bu hususta muhtemelen oyun içerisinde şahit olduğunuz çeşitli sorunlar vardı, birimleri karıştırmak, yanlış bölgelere öncelik vermek gibi sorunlar vardı. Eski mantıkta hangi birimin nereye gitmesini belirlemek yerine nefret ettiğim bir şeyle bu duruma çözüm ürettim: Matematik. Artık her eyalette o birimi oradan kaldırmanın ülkeye ne kadar zarar verebileceğine dair hesaplama yapılıyor ve ortaya nihayetinde bir sonuç çıkıyor.
Bu durum yukarıdaki resimlerde de görebileceğiniz gibi hangi birimlerin nereye öncelik vermesi hususunda daha kolay bir kontrol şansı tanıdı. Uzun zamandır yapmak isteyip yapamadığımız şeylerden birisi yapayzekanın oynanışını kontrol etmek için daha esnek bir yol üretmek. Artık AI Stratejik Planları isminde bir sistem kullanıyoruz ve bu sistem basit bir biçimde belli ulusal odaklarda yapayzekanın belli bir şekilde hareket etmesini sağlıyor, bunun tam olarak ne anlama geldiğini olarak anlatması için sözü Bratyn’e bırakıyorum:
Bratyn :Yeni strateji planları sistemiyle birlikte yapayzekayı örneğin tarihseldışı Almanya’yla karşılaşması durumunda bunla uyumlu bir şekilde oynaması üzerine kodlayabiiyoruz. Avrupa’da birçok yapayzeka davranışı Almanya’nın faşist olması üzerine kurulu, bu basitçe İtalya yapayzekasının Almanya’yı her zaman dostu olarak göreceği ve Fransa’nın İngiltere’yle birlikte hareket edeceği gibi oynanışlar ortaya çıkmasına veya yapayzekanın tamamen tahmin edilemez hareket etmesine ve dolaylı yoldan hem planlama hem de öngörü hususunda hoş olmayan bir ortamın oluşmasına sebep oluyor.
Strateji planları sistemiyle yapayzeka ülkelerinin değişen dünya yapısına daha uyumlu bir şekilde hareket etmelerini sağladık. Sonuç olarak demokratik bir Almanya ile oynadığınızda hem İttifak güçleriyle hem de Sovyetlerle düşman olmanız mantıklı değil. Bunun yerine artık Almanya Oppose Hitler focusunu tamamladığında Fransa’nın Almanya’ya olan bakış açısı değişiyor ve Almanya oyuncusunun politik olarak ülkesine verdiği yön Fransa’nın Almanya’ya karşı yeni tutumunu belirliyor.
- Eğer Almanya Kaiserreich’in yolundan gider ve gerçek düşmana odaklanmaya karar verirse yükselişte olan Alman koloniciliğine karşı Fransa Britanya ile birlikte hareket etmeye devam ediyor. Bu senaryoda Almanya’nın faşist değil de tarafsız olması dışında herhangi bir fark yok. Savaş yüksekle ihtimal aynı tarzda gelişecek, bir tarafta İttifak güçleri diğer tarafta Sovyetler.
- Eğer Almanya Kaiserreich’in yolundan gider de gözünü komünistlere dikerse bu komünistler Fransa’ya geçip Fransa’da nationalist spirit yoluyla komünizmi yayıyorlar, bu senaryoda Fransa komünist olup Sovyetlerle birlikte İngiltere – Almanya ittifağına karşı hareket ediyor.
- Eğer Almanya demokratik bir yol izlerse Fransa’nın ne yol izleyeceği yapayzekaya gelmiş, isterse komünist olup kendi paktını kurabilir veya Sovyetlerle bir olabilir, isterse faşist olup İtalya ile birlikte hareket edebilir. İsterse yeni focuslardan demokrasiyi ortadan kaldırma seçeneğiyle Almanya’nın üstüne gidebilir.
Bu stratejik plan sistemini aynı zamanda Çin yapayzekasının enflasyon mekaniğini kontrol altında tutması ve Komünist Çin’in barış yoluyla Çin’i ele geçirmeye çalışması durumunda savaş çıkartmaması gibi şeyleri sağlamak için de kullandık. Bu sistemi geliştirerek ülkelerin daha mantıklı ve akıllıca hareket etmelerini sağlamaya devam edeceğiz
Performans
Oyunun son dönemlerinde yaşanabilen performans sorunları birçok oyunumuzda rastladığımız ve genellikle giderilmesi zor bir problem. Cornflakes yamasıyla birlikte bu konuda yapabildiğimizi yapmaya çalıştık.
Performans olarak aşağıdaki görselde hangi scriptlerin oyunun ne döneminde ne kadar performans harcamasında bulunduğunu inceleyebilirsiniz:
Çok sayıda değişiklik yaparak performans geliştirmelerinde bulunduk. Yapayzeka artık çok daha az pathfinding uyguluyor, oyun otomatik olarak çekirdekler arasındaki işyükünü dengeliyor ve cephe sistemi artık performansa daha az yük oluşturuyor.
Aşağıda yaptığımız çalışmalar sonrası yeni grafiği inceleyebilirsiniz.
Hem oyundaki bazı unsurları daha etkili kılar hem de işlemci çekirdeklerinin daha iyi kullanılmasını sağlarken genel olarak oyunun performansında hatrı sayılır ilerlemeler katettiğimizi düşünüyoruz, ancak bu performans çalışmalarının bittiği anlamına gelmiyor, gelecekte bu konu üzerine eğilmeye devam edeceğiz.
Bugünlük bu kadar, twitch üzerinden yaptığımız Three Day War yayınlarını kaçırmayın. Waking the Tiger’ın çıkışına kısa bir süre kala bazı yayıncıları da yayınlarımıza davet ettik.
Quill18, Alex the Rambler, Marbozir, Enter Elysium, Solar Gamer, Spiffing Brit, Drew Durnil, The Prussian Prince, Bratyn, Da9L, Shen Plays ve Jay’s Gaming bu multiplayer oyununu kendi kanallarından yayınlayacak , bizler de Paradox Twitch kanalında observer olarak oyunu takip edeceğiz: https://www.twitch.tv/paradoxinteractive
Önümüzdeki hafta bu zamana kadar bahsettiğimiz mekaniklerin kısaca üstünden geçip bu zamana kadar günlüklerde bahsetmeye fırsat bulamadığımız bazı özellikleri tanıtacağız, görüşmek üzere!