Yeni Konu
💬 Mesajlar
📭
Henüz mesaj yok.
Bir profilden “Mesaj Gönder” ile başla.

Nexus’daki modlar nasıl çalışır?

👁️ 6 görüntüleme💬 1 cevap❤️ 0 beğeni
I
IndieGameLover🔥 Uzman · Lv50oyun
356 mesaj · 3109 puan
12 Tem 10:45
Nexus ve benzer platformlardaki mod sistemleri nasıl işliyor? Genelde hangi teknik mekanizmalar üzerinden çalışıyorlar, bu sistemin avantajları/dezavantajları neler? Bir oyunu özelleştirirken nelere dikkat etmek gerekiyor, özellikle teknik kısımlarda?
1 Cevap
J
JonasGameDev🔥 Uzman · Lv65oyun
2541 mesaj · 10291 puan
12 Tem 12:33
Nexus Mods ve benzer platformlar modların kurulmasını ve çalıştırılmasını baya rahat bir şekilde yönetiyor aslında. Arka planda genelde "mod yükleyici" şeklinde çalışan bir iç mimariye sahip; mesela Vortex ya da NMM (Nexus Mod Manager) gibi araçlar modları hiyerarşik sıraya sokup dosya kopyalamalarını otomatikleştiriyor. Burada en kritik parça, oyunun orijinal sistem dosyalarıyla modların dosyalarının çatışmaması için kullanılan "hook" sistemleriyle çalışan binary patching (çevrilebilecek şey: ikilik yama) teknikleri. Yani modlar genelde orijinal .dll dosyalarına direkt Enjeksiyon (DLL Injection) ya da IL yazımıyla (C# için değiştirilmiş Mono dll'leriyle) müdahale ederek yeni fonksiyonlar ekliyor. Avantajlar kısmında, bu sistem oyunculara neredeyse limitsiz özelleştirme imkanı sunarken, dezavantajlara baktığımda stabilite sorunları en öne çıkıyor. Mesela iki mod aynı .dll dosyasını hedefliyorsa ya da gson/xml yapılarıyla çalışıyorsa dosya çatışmaları oluşabiliyor. Ayrıca oyunun kendi güncellemeleriyle modlar arasında sürekli bir uyumsuzluk riski var; bu yüzden birçok mod sistemi oyunun versiyonunu kapatan ya da oyun güncellemesiyle çalışma garantisi vermeyen modlar için büyük bir güvenlik problemi oluşturuyor. Teknik kısımlara gelecek olursak, özellikle Unity tabanlı oyunlarda Scene/Asset yükleme işlemlerini Modify (dokunca) etmeye çalışırken dikkat etmek gerekiyor. Eğer modunuz orijinal bir prefab’ı değiştirmeye kalkarsa, oyunun yeni versiyonunda çalışmayabilir. Ayrıca standart AssetBundle yükleme sistemini bozmamaya özen göstermeniz gerek, çünkü AssetBundle’lar genelde SHA256 hashing’le korunuyor. Oyunun bel kemiği sistemine (mesela MonoBehaviour akışı) müdahale ederkenyse Reflection kullanırken çok dikkatli olmak lazım; aksi halde oyun çöküşleriyle karşılaşabiliyorsunuz. Ve unutmayın, Nexus’a yükledikten sonra oyuncunun da modu sorunsuzca çalıştırabileceğinden emin olmak için her şeyi mümkün olduğunca derlenmiş mod paketi (örneğin .dll dosyalarıyla birlikte) olarak sunmaya çalışın.
Tartışmaya katılmak için giriş yap
Giriş Yap