Günlük: CK3 - Modlanabilirlik
#1
zD5fF.gif

Crusader Kings III geliştirici günlüklerinde bu hafta oyunun modlanabilirliğine dair bilgiler veriliyor.

https://forum.paradoxplaza.com/forum/thr...s.1410656/ :Herkese merhabalar, Crusader Kings III için kaleme alınmış 37. geliştirici günlüğüne hoş geldiniz.

Ben Matthew, Crusader Kings III ekibindeki programcılardan biriyim. Bugün sizlere Crusader Kings III'ün modlanabilirliğinden söz edeceğim.

Modlar bizim için çok önemli, benim için ise ekstra ayrı bir yönü var keza Paradox'a İçerik Tasarımcısı olarak katılmam Crusader Kings II için yaptığım bir mod sayesinde mümkün olmuştu. Şimdilerde bir zamanlar modladığım oyunun devam oyununda görev alıyorum ve bu sektöre katılmama olanak tanımış topluluğa bir teşekkür olarak oyunun modlanabilirliğine büyük önem veriyorum. Ekipte yer alan birçok diğer arkadaşımın da benimle benzer hikayelere sahip olduğunu biliyorum.

İlk olarak oyunda modlamayla değiştirilebilir unsurları genişletmeyi hedefledik. Oyunda 80'i aşkın veritabanı klasörüne sahibiz (bu klasörlerin bazıları alt klasörler dahi içeriyor), çok daha esnek bir event sistemine, tamamen değiştirilebilir bir GUI sistemine, tarih dosyalarına, yerelleştirme, ses ve müzik sistemlerine sahibiz. Anlayacağınız üzere oyunun büyük bir kısmını istekleriniz doğrultusunda değiştirebiliyorsunuz.

common_folder.png

Günlüğün geri kalan kısmında neler yapabileceğinizden bahsedip CK2 modçularını heyecanlandıracağını düşündüğüm bazı özellikler tanıtacağım.

Imperator ve Crusader Kings III Jomini adını verdiğimiz, kendi geliştirdiğimiz bir script diline sahip. Bunu bir bakıma Clausewitz motorunun üstüne Grand Strategy odaklı bir katman daha eklenmiş gibi düşünebilirsiniz.

Imperator çıktığında direkt olarak Jomini kaynaklı olan dolayısıyla her iki oyunda da ortak bir biçimde yer alan hususlara dair bir bilgi konusu açmıştım. Eğer modlamayla ilgileniyorsanız bu konuyu okumanızı öneriyorum. Bunların yanı sıra eğer event modlamayla ilgileniyorsanız 30. geliştirici günlüğümüz sizin için önemli bilgiler içeriyor.

Karakter Etkileşimleri
CK2'ye nazaran modlamadaki en büyük değişikliklerden birisi karakter etkileşimleri üzerinde.

CK2'nin modlanabilirliğinden biraz bahsetmek gerekirse, bu etkileşimlerin büyük bir kısmı hardcode şeklinde oyuna eklenmişti. Evlilik yapmaktan savaş açmaya, ittifak kurmaktan daha birçok etkileşime kadar birçok şey modlanabilir değildi. Birkaç yama sonra "hedefli kararlar" şeklinde bir özellik eklendi. Bu özellik kabaca karakterlere modifier ekleyebilmenizi veya mevcut modifieri değiştirebilmenizi sağlıyordu, dolayısıyla hardcoded ana etkileşimler halen modlanabilir durumda değildi.

CK3'te tek bir ortak karakter etkileşim sistemine sahibiz, her etkileşim script üzerinden gerçekleşiyor. Böylelikle kodlamaya girmektense birkaç metin dosyasında değişiklik yaparak yapay zekanın hareketlerini dengeleyebiliyoruz, bu etkileşimleri kimin kullanabileceklerini vb. hususları daha kolay belirleyebiliyoruz. Tüm bu husus modcular için de geçerli.

Yapay zeka oluşturulan custom etkileşimleri kullanmak üzere de kodlanabilir, kimin iyi bir hedef olduğunu, ne sıklıkla bu etkileşimi değerlendirmesi gerektiğini belirleyebilirsiniz (performans için oldukça önemli)

Halen özellikle yapay zekanın çok elzem olmayan kullanım alanlarında çeşitli hardcoded unsurlar yer alıyor. Bu etkileşimlerin hangileri olduğu net bir şekilde işaretlenmiş durumda fakat olur da silmeye kalkarsanız oyunu açtığınızda bu etkileşime ihtiyaç duyulduğuna dair bilgilendirme mesajı alıyorsunuz. Bu durum tüm hardcoded veritabanı unsurları için geçerli.

Aşağıda yapay zekanın bir etkileşimi değerlendirirken neleri gözönünde bulundurabildiğini görebiliyorsunuz:


Birden Fazla Mod
Birden fazla modu aynı anda aktifleştirmek ezelden beri sıkıntılar çıkartabilen bir durumdu. Bu noktada oyuncunun modlarda değişiklikler yapmasını gerektirmemek veya azaltmak adına bazı değişikliklerimiz oldu. İlk olarak veritabanı satırlarının eğer bir satır başka bir dosyada yer alıyorsa bir key aracılığıyla birbirinin üstüne yazılabilmesini sağladık. Bu demek oluyor ki Deli özelliğini değiştirmek için artık tüm kodları kopyalayıp bunun üzerinde değişiklik yapmanıza gerek yok, kendi kodunuzu yazıp örneğin aşağıda gösterdiğim gibi Öğrenim, Dövüş ve Çekicilik gibi alanlarda bonuslar verebiliyorsunuz:

lunatic_override.png


lunatic_override_in_game.png

Bu durum farklı modlar için de geçerli, eğer sizin modunuz önce yükleniyorsa farklı modlardaki özelliklerin veya diğer veritabanı unsurlarının üstüne yazabiliyorsunuz. Henüz tamamen üstüne yazma gibi bir özelliği desteklemiyoruz keza bunun için geniş çaplı bir çalışmanın ardından birçok şeyi test etmemiz gerekiyor fakat gelecek için aklımda tuttuğum şeylerden biri olduğunu söyleyebilirim.

Uyarılar, Sorunlar ve Bildirimler
16. geliştirici günlüğünde bahsettiğim üzere oyunu açıklama görevi gören arayüz unsurları tamamen modlanabilir. Bu durum CK2'deki gibi hardcoded olmasından ziyade her şeyi modlayabileceğiniz, yeni şeyler ekleyip değiştirebileceğiniz veya silebileceğiniz anlamına geliyor.

En basitleri onlar olduğu için bildirimler ve kadeh kaldırmalardan bahsedeceğim. Common dosyasında bildiriminiz için bir veritabanı satırı oluşturuyorsunuz, ardından bu satırın kullanım efekti olarak send_interface_message veya send_interface_toast_effect yazıyorsunuz.

Bu etkiler mesajın türünün yanı sıra veritabanındaki kodların yerine unvan ve metin yazılarını gösteriyor. Bunla birlikte istediğiniz sayıda etki aktifleştirebiliyorsunuz ve bunlar metin şeklinde gösteriliyor, elbette ciddi uzunlukta mekanik bir metin görmektense custom bilgi çubuğu oluşturmanız daha isabetli olacaktır.

Uyarılar, tavsiyeler ve mevcut sorunların hepsi "önemli eylemler" sistemi üzerinden şekilleniyor, aralarındaki en büyük fark sahip oldukları tür. Bu tür onların görünümünü ve konumunu belirliyor. Bu önemli eylemler check_create_action ve etki blokuna sahip, ikisi de arayüz etkileri (multiplayerda oyun gamestate'ini değiştirmeyen, yerel arayüz unsurları) üzerinden çalışıyor.

check_create_action için ana arayüz etkisi try_create_important_action, bu belli eylem türünde bir arayüz unsuru oluşturuyor. Etki bloku olarak eğer oyuncu hareketine göre şekillenen bir tavsiye ise start_tutorial_lesson kullanmanız daha isabetli, uyarılar ve sorunlarda open_view_data daha faydalı.

custom_alert.png

Dipnot: Bu günlüğü yazarken oyunun 1.0 sürümünde bildirimler için custom ikon modlamanın çalışmadığını fark ettim, mevzubahis sorun 1.1'de çözüldü fakat oyun çıktığında bu günlüğe gelerek çalışmadığını yazabilecek kişiler için önceden belirtme ihtiyacı hissettim.

Öneriler önemli eylemlere benzer bir şekilde çalışıyor ancak her önerinin oyuncu için ne kadar önemli olduğuna dair çeşitli değerleri bulunuyor. Örneğin hak iddiası üretme önerisi, etrafınızda hak iddiası üretebileceğiniz bir unvan varsa karşınıza çıkıyor. Burada mevzubahis unvanın gelişmişlik seviyesi, hak iddiası üretseniz bile fethedip fethedemeyeceğiniz gibi faktörler ele alınıyor.

GUI Scriptleri
Tıpkı Imperator gibi arayüz de oldukça modlanabilir vaziyette. GUI Script dili farklılıklar barındırsa da normal veritabanı ve event kodları oldukça esnek. Oyundaki neredeyse tüm arayüz unsurlarının konumlarını, görünümlerini ve kullanım alanlarını değiştirebiliyorsunuz. Aynı zamanda bir GUI debug moduna sahibiz, buradan dosyaları açıp neyin hangi satırda yer aldığını görebiliyorsunuz.

Şimdilik yeni bir GUI penceresi oluşturma özelliğimiz yok (ama bu da sonu gözükmeyen listemin bir parçası), burada yapabileceğiniz şeylerden birisi pencereyi ana HUD penceresinin altında yapmak. Jomini Modlama konusunda bahsettiğim gibi pencerelerle normal kodlamalar arasında bağlantı oluşturabiliyorsunuz, dolayısıyla farklı şeyleri denemek için bir pencere yaratıp denemeler gerçekleştirebilirsiniz.

Aşağıda farklı mezhepten yetişkinlere yönelik kullanılabilen cinayet butonumu görebilirsiniz:

murder_button.PNG

murder_confirmation.PNG

murder_script.PNG

murder_gui.PNG

Okuduğunuz için teşekkürler, bu günlüğün alıcı kitlesinin nispeten daha dar olacağının farkındayım. Eğer oynanışa dair bilgiler almak istiyorsanız önümüzdeki CK3 yayınını kaçırmayın.
[+] 6 üye Duman nickli üyenin bu iletisini beğendi.
Cevapla
 


Bu Konudaki Yorumlar
CK3 - Modlanabilirlik - Yazar: Duman - 11-08-2020, 17:07
CK3 - Modlanabilirlik - Yazar: TheMuyu - 01-09-2020, 18:02



Konuyu Okuyanlar: 2 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.