Rain World için ORGA Hub’da bulunan 9 özellikli trainerin güncelleme, uyumluluk ve sorun bildirimlerini bundan sonra bu konu altında toplayacağız.
Öncelikle Streamer Life Simulator konusunda olduğu gibi burada da içerik sahipliğini net şekilde belirtmek istiyorum:
Rain World trainerinin geliştiricisi ben değilim.
İçeriğin asıl üreticisi SeryogaSK.
Benim yaptığım kısım SeryogaSK tarafından hazırlanan içeriği inceleyip ORGA Hub trainer altyapısına entegre etmek ve Hub üzerinden kullanılabilir hale getirmek oldu.
👨💻 Üretici: SeryogaSK
ORGA’da başka üreticilerin çalışmalarını yayınlarken içeriğin gerçek sahibini özellikle belirtmek istiyorum.
Rain World tarafında yapı şu şekilde:
İçeriğin üreticisi: SeryogaSK
ORGA Hub entegrasyonu: ORGA
Yani trainer ORGA Hub içerisinde çalışıyor olması nedeniyle benim geliştirdiğim bir içerik haline gelmiyor.
Asıl emeğin sahibi SeryogaSK ve ORGA içerisinde de üretici olarak onun adı gösteriliyor.
🎮 9 Farklı Özellik
Rain World traineri şu anda 9 farklı özellik içeriyor.
SeryogaSK’nın hazırladığı traineri ORGA Hub sistemine aktarırken özellikleri Hub’ın ortak trainer engine yapısına uyarladım.
Böylece kullanıcı açısından diğer ORGA trainerlerinde olduğu gibi:
ORGA Hub’ı aç → Rain World’ü seç → İstediğin özelliği etkinleştir
şeklinde kullanılabiliyor.
Ayrı bir trainer programı açmanız gerekmiyor.
🟦 Rain World Unity ve Mono Kullanıyor
Rain World teknik tarafta Unity tabanlı bir oyun.
ORGA Hub entegrasyonunda da oyunun Mono runtime yapısından faydalanıyorum.
Daha önce forumda Unity Mono sistemini detaylı şekilde anlatmıştım.
Basit haliyle Mono sayesinde oyunun C# tarafındaki:
Class
Field
Runtime instance
gibi yapılara ulaşabiliyoruz.
Böylece sadece bellekte rastgele değer aramak yerine oyunun kendi kod yapısına daha yakın bir yöntem kullanabiliyoruz.
🧊 9 Özelliğin Tamamı Mono Freeze Üzerinden Çalışıyor
Rain World entegrasyonunun teknik olarak güzel taraflarından biri oldukça sade olması.
Şu an ORGA Hub’a aktardığım 9 özelliğin tamamı monoFreeze mantığıyla çalışıyor.
Bu yöntem genel olarak şöyle işliyor:
Önce ilgili Unity sınıfı bulunuyor.
Ardından değiştirilmek istenen field çözülüyor.
Gerçek oyun instance’ına ulaşılıyor.
Sonrasında ORGA Hub ilgili değeri istenen seviyede tutuyor.
Örneğin oyun bir değeri sürekli azaltmaya çalışıyorsa Hub onu tekrar belirlediğimiz değere getiriyor.
Kullanıcı açısından bu:
Sınırsız özellik
gibi görünürken arka tarafta Unity’nin kendi runtime yapısını kullanıyoruz.
🧠 Neden Pointer Yerine Mono?
Aynı özellikleri teorik olarak klasik memory yöntemleriyle de yapabilirdik.
Mesela:
Player → Pointer → Offset → Değer
şeklinde.
Ama oyun bize Mono metadata üzerinden daha anlamlı bir erişim sunuyorsa bunu değerlendirmek daha mantıklı.
Örneğin:
Player + 0x148
gibi sadece bizim bildiğimiz bir offset yerine teorik olarak:
PlayerClass → ilgiliField
mantığıyla ilerleyebiliyoruz.
Bu hem entegrasyonu daha anlaşılır hale getiriyor hem de bazı oyun güncellemelerinde fiziksel offset değişikliklerinden daha az etkilenmemizi sağlayabiliyor.
🔄 Oyun Güncellemesi Geldiğinde Ne Oluyor?
Mono kullanmak traineri güncellemelerden tamamen korumuyor.
Rain World geliştiricisi yeni sürümde:
Class adını değiştirirse
Field adını değiştirirse
İlgili değeri başka sınıfa taşırsa
Sistemin çalışma mantığını değiştirirse
Mono tarafındaki yapıyı farklılaştırırsa
bazı özellikler çalışmayı bırakabilir.
Ama örneğin sadece field’ın bellekteki fiziksel offset’i değişmiş ve diğer bilgiler aynı kalmışsa ORGA Hub bunu runtime’dan yeniden çözebildiği için özellik çalışmaya devam edebilir.
Bu da Mono yaklaşımının güzel taraflarından biri.
🤔 9 Özelliğin Hepsi Aynı Anda Bozulur mu?
Şart değil.
Her özellik farklı class veya field’a bağlı olabilir.
Oyun güncellemesinde yalnızca bir sistem değiştiyse sadece ona bağlı özellik etkilenebilir.
Örneğin 9 özellikten:
8 tanesi çalışıyor, 1 tanesi çalışmıyor
gibi bir durum yaşayabiliriz.
Bu yüzden bir sorun bildirirken:
Rain World traineri bozuk.
demek yerine hangi özelliğin çalışmadığını belirtmeniz çok daha faydalı.
🔧 Burada ORGA’nın Sorumluluğu Ne?
Bu içerikte iki farklı katman var.
Birincisi SeryogaSK’nın hazırladığı orijinal trainer mantığı.
İkincisi ise benim hazırladığım ORGA Hub entegrasyonu.
Bir sorun çıktığında ilk olarak problemin hangi tarafta olduğunu anlamaya çalışacağım.
Mesela SeryogaSK’nın kullandığı değer veya oyun yapısı yeni sürümde değişmiş olabilir.
Ya da orijinal yöntem hâlâ doğru olduğu halde benim ORGA Hub tarafındaki Mono tanımımda güncelleme yapılması gerekebilir.
ORGA Hub entegrasyonundan kaynaklanan bir problem varsa doğal olarak o kısmı ben düzelteceğim.
🔄 SeryogaSK İçeriği Güncellerse
SeryogaSK tarafından Rain World traineri için yeni bir sürüm veya yeni yöntem yayınlanırsa bunu da ORGA Hub tarafında inceleyip uygun değişiklikleri entegre edeceğim.
Yani süreç sadece:
Bir kez Hub’a koyduk, bitti.
şeklinde değil.
Orijinal içerik geliştirildikçe ORGA Hub entegrasyonunu da mümkün olduğunca güncel tutmak istiyorum.
🧪 Güncelleme Sonrası Nasıl Test Ediyorum?
Rain World yeni sürüm aldığında 9 özelliği ayrı ayrı kontrol etmek gerekiyor.
Özellikle:
Özellik açılıyor mu?
Gerçekten değer üzerinde etkisi var mı?
Kapatıldığında normal davranış geri geliyor mu?
Bölüm veya sahne değişiminden sonra çalışmaya devam ediyor mu?
Yeni oyun veya mevcut save üzerinde fark var mı?
Oyuncu nesnesi yeniden oluşturulduğunda sistem tekrar bulabiliyor mu?
gibi durumlara bakıyorum.
Unity oyunlarında sahne değişimleri özellikle önemli.
Çünkü bazı nesneler sahne değiştiğinde tamamen yeniden oluşturulabiliyor.
🔁 Sahne Değişince Neden Özellik Bozulabilir?
Diyelim Hub gerçek oyuncu instance’ını buldu.
Trainer çalışıyor.
Sonra oyuncu başka bir sahneye geçti.
Unity eski nesneyi siliyor ve yeni bir oyuncu instance’ı oluşturuyor olabilir.
Trainer hâlâ eski nesneyi kullanmaya çalışırsa özellik artık çalışmaz.
Bu yüzden Mono entegrasyonunda gerektiğinde yeni instance’ın tekrar bulunabilmesi önemli.
Rain World gibi oyunlarda bu tarz durumları özellikle kontrol etmek gerekiyor.
⚠️ Bir Özellik Değer Değiştirip Sonra Eski Haline Dönüyorsa
Bunu da özellikle bildirin.
Çünkü:
Hiç çalışmıyor.
ile:
Değer değişiyor ama birkaç saniye sonra eski haline geliyor.
aynı problem değil.
İkinci durumda oyun değeri başka bir sistemden tekrar hesaplıyor veya farklı bir instance kullanıyor olabilir.
Bu bilgi sorunun kaynağını bulmamı ciddi şekilde kolaylaştırıyor.
🖥️ ORGA Hub Üzerinden Kullanılıyor
Rain World traineri için farklı bir uygulama indirmeniz gerekmiyor.
ORGA Hub:
Rain World’ü algılıyor
İlgili trainer paketini yüklüyor
9 özelliği arayüzde gösteriyor
Özelliklerin durumunu yönetiyor
Mono runtime katmanıyla oyunla iletişim kuruyor
Böylece SeryogaSK’nın içeriği ORGA Hub’ın ortak kullanıcı deneyimi içerisinde kullanılabiliyor.
🔐 İçerik Hub’a Nasıl Geliyor?
ORGA Hub’ın diğer trainerlerinde olduğu gibi entegrasyon tanımını kullanıcıya açık bir JSON dosyası şeklinde bırakmıyorum.
Trainer tanımı yayınlama sırasında işlenerek şifreli ve imzalı .bin paketine dönüştürülüyor.
ORGA Hub ilgili paketi doğruladıktan sonra çalışma sırasında trainer engine’e aktarıyor.
Yani teknik tarafta SeryogaSK içeriğinin ORGA Hub karşılığı da diğer Hub trainerleriyle aynı dağıtım sisteminin parçası haline geliyor.
🐛 Sorun Bildirirken
Rain World içeriğiyle ilgili bir problem yaşarsanız bu konu altında bildirebilirsiniz.
Mümkünse şunları ekleyin:
Rain World sürümü
Kullandığınız platform
Çalışmayan özelliğin adı
Özellik daha önce çalışıyor muydu?
Sorun oyun güncellemesinden sonra mı başladı?
Özellik hiç mi çalışmıyor?
Yoksa kısa süre çalışıp geri mi dönüyor?
Bölüm/sahne değiştirdikten sonra mı bozuluyor?
Başka mod kullanıyor musunuz?
Varsa ekran görüntüsü
Bu bilgiler problemin SeryogaSK’nın orijinal yönteminde mi yoksa ORGA Hub entegrasyonunda mı olduğunu ayırmamıza yardımcı olur.
📝 Güncelleme Notlarını Burada Tutacağız
Önemli değişiklikleri bu başlıktan paylaşacağım.
Örneğin:
🔄 Üretici İçeriği Güncellendi
SeryogaSK tarafından hazırlanan yeni sürüm ORGA Hub’a entegre edildi.
🔧 ORGA Hub Entegrasyonu Güncellendi
Yeni Rain World sürümüne göre Mono tanımları güncellendi.
🐛 Düzeltildi
Belirli özelliğin çalışmamasına neden olan entegrasyon problemi giderildi.
⚠️ Bilinen Sorun
Yeni oyun sürümünde belirli özellik geçici olarak uyumsuz.
gibi.
❤️ İçeriğin Asıl Üreticisini Destekleyin
Rain World trainerini beğeniyorsanız SeryogaSK’yı desteklemeyi unutmayın.
ORGA’da üretici içerikleri konusunda özellikle dikkat ettiğim şeylerden biri bu.
Bir içeriği Hub’a entegre etmem, içeriğin sahibini değiştirmiyor.
Tam tersine ORGA’yı farklı üreticilerin içeriklerini kendi isimleriyle yayınlayabildiği bir platform haline getirmek istiyorum.
Streamer Life Simulator ve Rain World bunun ilk örneklerinden.
İleride başka üreticiler de katıldıkça ORGA Hub içerisinde farklı geliştiricilerin çalışmalarını kendi profilleri ve isimleriyle görmeye devam edeceksiniz.
🎮 Kısaca
Rain World traineri şu anda:
9 özellik
ile ORGA Hub’da kullanılabiliyor.
İçeriğin üreticisi: SeryogaSK
ORGA Hub entegrasyonu: ORGA
Teknik entegrasyon tarafında ise 9 özelliğin tamamında Unity’nin Mono yapısından faydalanan Mono Freeze yöntemi kullanılıyor.
Yeni Rain World sürümleri veya SeryogaSK tarafından yayınlanan içerik güncellemeleri geldikçe entegrasyonu kontrol edip bu başlığı güncel tutacağım.
Bir sorun yakalarsanız buradan bildirebilirsiniz. 🌧️
Gringos