Geliştirici Günlüğü #8: Modlar oyuna nasıl katılır?

Kısaca: MKA Engine modları oyuna yeni içerik, kural ve davranışlar ekleyebilir. Taşınabilir mod, motorun ayrı bir çalışma ortamında yürüttüğü eklentidir. Ayrıca, oyun adımı sırasında hata veren böyle bir modun durdurulup adıyla raporlandığı bir örneği açıklıyoruz.
Mod özgürlüğü hangi yeni riskleri getiriyor?
Bir strateji oyununun modu yeni bir olay ya da görünüm ekleyebilir; kimi modlar oyunun kurallarını veya düzenli çalışan davranışlarını da değiştirir. Bu özgürlük, başka modlarla aynı içerik öğesinin aynı bölümünü değiştirme ve yanlış veriyle oyunun akışını bozma ihtimalini de getirir. Bu yüzden yalnızca “modlar neler ekleyebilir?” sorusuna değil, değişikliklerin nasıl sıralandığına ve bir hata oluştuğunda hangi parçanın etkilendiğine de cevap vermek gerekir.
İçerik, kurallar ve taşınabilir davranışlar
MKA Engine modlara üç tür katkı için yol açıyor. İlki, olay, karar ve benzeri oyun içeriğini eklemek veya var olan bir içerik öğesinin tamamını ya da bir bölümünü değiştirmek. Modlar belirli bir sırayla uygulanıyor. İki mod aynı içerik öğesinin aynı bölümünü değiştirirse motor çakışmayı bildiriyor; yükleme sırasındaki sonraki değişiklik oyunda geçerli oluyor. Farklı bölümlere yapılan kısmi değişiklikler tek başına otomatik çakışma sayılmıyor.
İkinci tür katkı, oyun kuralları. Bir koşul, bir olayın hangi durumda açılacağını belirleyebilir; bir etki de kararın dünya üzerindeki sonucunu değiştirebilir. Bu yaklaşımın temelini Günlük #5'te anlattığımız kural dili oluşturuyor.
Daha geniş davranışlar gerektiğinde, MKA Engine taşınabilir modların oyun dünyasında çalışmasına izin verir. Böyle bir mod yeni oyun verileri ve dünya ilerlerken çalışan davranışlar tanımlayabilir. Motor, modun hangi verilere hangi koşullarda erişebileceğini sınırlar; her davranış oyunun kendisine açtığı sınırlar içinde kalır.

Çakışma ile oyun adımı hatası nasıl ayrılıyor?
Modlar arasındaki içerik çakışması ile taşınabilir modun oyun adımında hata vermesi ayrı durumlardır. Aynı içerik öğesinin aynı bölümündeki çakışmada motor hangi değişikliğin geçerli olduğunu bildirir. İncelenen örnek oyun adımı hatasında mod durdurulur; raporda modun adı ve adımın olağan çıktısı yer alır.

Bu örnek yalnızca oyun adımındaki bu hata yolunu anlatıyor.
Çok oyunculu oyunlarda her bilgisayarın aynı mod listesiyle çalışması gerekir; yoksa aynı komutlar farklı dünyalar doğurabilir. Kayıt dosyası da hangi modlarla oynandığını saklar. Varsayılan açılış yolu kayıt ile yüklü modlar uyuşmadığında oyunu reddeder. Uyarı vererek açmaya izin veren ayrı bir yol da vardır; bu, farklı modların aynı sonucu üreteceğinin garantisi değildir. Bu tutarlılık gereksinimini Günlük #2'te ele almıştık.
Modları koruyup etkilerini sınırlandırmak
Modların oyun dünyasını genişletmesi, motora sınırsız erişim verilmesini gerektirmiyor. İçerik çakışmasının görünür olması da mod yazarına hangi değişikliğin sonuç verdiğini anlatıyor.
Hata veren modun oyuncuya etkisi
Mod durduğunda oyuncu, onun eklediği bir davranıştan yararlanamayabilir.
Mod desteğinin kapsamı
Bu günlük, modların içerik ve davranış katkılarına odaklanıyor; tam bir mod hazırlama kılavuzu veya performans ölçümü sunmuyor.
Sık sorulanlar
Bir mod oyunun her bölümünü değiştirebilir mi?
Hayır. Mod, motorun ve oyunun kendisine açtığı veri ve davranış alanları içinde çalışır.
Hangi mod değişiklikleri çakışma sayılır?
İki mod aynı içerik öğesinin aynı bölümünü değiştirirse motor çakışmayı bildirir; yükleme sırasındaki sonraki değişiklik geçerli olur. Farklı bölümlere yapılan kısmi değişiklikler tek başına otomatik çakışma sayılmaz.
Taşınabilir mod oyun adımında hata verirse ne olur?
İncelenen bu oyun adımı hatasında mod durdurulur; raporda adı ve adımın olağan çıktısı yer alır. Bu yanıt yalnızca bu örnekle sınırlıdır.
Kayıt başka modlarla açılabilir mi?
Varsayılan yol mod listesindeki farkı reddeder. Uyarı vererek açmaya izin veren ayrı bir seçenek vardır; bu seçenek dünyaların eşit kalacağını garanti etmez.
Kaynaklar ve bağlantılar
- MKA Engine'in mod hazırlama ve çok oyunculu tutarlılık belgeleri.
- Strateji oyunu kuralları nasıl yazılır? — Günlük #5
- Çok oyunculu ve tutarlılık — Günlük #2
- MKA Engine ve geliştirici günlükleri