Streamer Life Simulator için ORGA Hub’da bulunan 26 özellikli trainer/modun güncelleme, uyumluluk ve sorun bildirimlerini bundan sonra bu konu altında toplayacağız.
Öncelikle burada önemli bir şeyi özellikle belirtmek istiyorum:
Bu içeriğin geliştiricisi ben değilim.
Streamer Life Simulator trainerinin asıl üreticisi SeryogaSK.
Benim yaptığım kısım, SeryogaSK’nın hazırladığı içeriği ORGA Hub altyapısına uyarlamak ve Hub içerisinden kullanılabilir hale getirmek oldu.
İçeriğin sahibinin kim olduğu konusunda mümkün olduğunca şeffaf olmak istiyorum. ORGA’da başka bir üreticinin içeriğini yayınlıyorsak üretici kısmında da o kişinin adı görünmeye devam edecek.
👨💻 Üretici: SeryogaSK
Streamer Life Simulator içeriği SeryogaSK tarafından geliştirildi.
ORGA Hub tarafındaki entegrasyonunu ise ben yaptım.
Yani kabaca:
SeryogaSK → Orijinal trainer/içerik
ORGA → Hub entegrasyonu, arayüz ve çalışma katmanı
şeklinde düşünebilirsiniz.
ORGA’nın üretici sistemini oluştururken özellikle bunu korumak istedim.
Bir içerik bana ait değilse ORGA’ya eklenmiş olması onu ORGA’nın ürettiği anlamına gelmemeli.
İçeriği kim geliştirdiyse üretici olarak o kişinin adı gösterilmeli.
🎮 26 Farklı Özellik
Streamer Life Simulator için ORGA Hub’da şu anda toplam 26 özellik bulunuyor.
Özellikler oyunun farklı bölümlerine dağılıyor.
Bunların arasında genel olarak:
Oyuncu değerleri
İhtiyaç sistemleri
Hareket
Yayıncılık
Ekonomi
Madencilik
Zaman
gibi farklı kategoriler bulunuyor.
Bu yüzden içerik yalnızca:
Sınırsız can aç.
gibi birkaç temel seçenekten oluşmuyor.
Oyunun farklı mekaniklerini kontrol edebileceğiniz daha geniş bir paket halinde kullanılabiliyor.
🟦 Unity ve Mono Tarafı
Streamer Life Simulator Unity tabanlı bir oyun.
ORGA Hub’a entegrasyonunu yaparken oyunun Mono runtime yapısından faydalanıyorum.
Daha önce forumda Mono sistemini ayrı bir konuda anlatmıştım.
Kısaca tekrar açıklarsam Mono sayesinde bazı oyunlarda sadece sabit adreslere veya uzun pointer zincirlerine bağlı kalmak yerine oyunun:
Class
Field
Method
yapılarına runtime sırasında ulaşabiliyoruz.
Streamer Life Simulator entegrasyonunda da bu sistem oldukça işime yarıyor.
🧊 Mono Freeze
Bazı özellikler ORGA Hub tarafında Mono Freeze mantığıyla çalışıyor.
Örneğin oyundaki bir ihtiyaç değeri sürekli azalıyor olabilir.
İlgili sınıf ve field çözüldükten sonra Hub bu değeri belirlenen seviyede tutabiliyor.
Oyun azaltmaya çalışıyor.
Trainer tekrar istenen değere getiriyor.
Kullanıcı açısından sonuç:
Sınırsız ihtiyaç değeri
gibi görünüyor.
Ama arka tarafta doğrudan Unity’nin runtime yapısından faydalanıyoruz.
💾 PlayerPrefs Tarafı
Streamer Life Simulator entegrasyonunda dikkatimi çeken şeylerden biri bazı değerlerin normal class field’ları dışında Unity’nin PlayerPrefs sisteminden yönetilmesi.
Bu nedenle ORGA Hub trainer engine içerisinde monoPrefs tarzı işlemler de kullanıyorum.
Bu önemli çünkü bellekte bir değeri bulmanız onun gerçekten oyunun ana değeri olduğu anlamına gelmiyor.
Mesela ekranda:
5000
para görüyorsunuz.
Bellekte de 5000 buldunuz.
Değiştirdiniz:
999999
Oldu.
Ama oyun bir süre sonra PlayerPrefs içerisindeki gerçek değeri tekrar okuyup eski haline döndürebilir.
Böyle bir durumda geçici bellek kopyası yerine oyunun değeri gerçekten nereden aldığını bulmak daha doğru oluyor.
🖱️ Tek Seferlik İşlemler
Her özellik sürekli açık kalmak zorunda değil.
Bazı işlemlerde kullanıcı butona bastığında değerin bir kez değiştirilmesi yeterli olabiliyor.
ORGA Hub entegrasyonunda bu tarz özellikleri de sürekli freeze etmek yerine tek seferlik işlem şeklinde çalıştırabiliyorum.
Böylece gereksiz yere aynı değere sürekli yazma yapılmıyor.
🔧 Neden Orijinal İçeriği Olduğu Gibi Çalıştırmıyoruz?
ORGA Hub’ın kendi trainer sistemi olduğu için farklı üreticilerden gelen içerikleri mümkün olduğunca Hub’ın ortak yapısına uyarlamak istiyorum.
Kullanıcı açısından amaç şu:
ORGA Hub’ı aç → Oyunu seç → Özelliği kullan.
Her üretici için farklı program, farklı arayüz ve farklı kullanım yöntemi öğrenmek gerekmemeli.
Bu nedenle SeryogaSK’nın hazırladığı içeriğin çalışma mantığını ORGA Hub’ın desteklediği yöntemlere uyarlıyorum.
Kullanıcı aynı Hub arayüzünü görüyor ama içeriğin üreticisi yine SeryogaSK olarak kalıyor.
🤝 Neden Başka Üreticilerin İçeriklerini ORGA’ya Ekliyoruz?
ORGA’yı sadece kendi hazırladığım trainerlerin bulunduğu kapalı bir sistem yapmak istemiyorum.
Farklı geliştiricilerin yıllardır hazırladığı çok güzel içerikler var.
Eğer üretici izin veriyorsa bu içerikleri ORGA Hub’a entegre ederek daha fazla kullanıcıya ulaştırabiliriz.
Böylece üretici:
kendi adıyla görünmeye devam ediyor,
kendi profilini oluşturabiliyor,
diğer çalışmalarını gösterebiliyor,
kullanıcı ise bütün içeriklerini tek uygulama üzerinden kullanabiliyor.
Bence uzun vadede ORGA Hub için en güzel modellerden biri bu.
🔄 Oyun Güncellemesi Geldiğinde Ne Oluyor?
Streamer Life Simulator güncellendiğinde 26 özelliğin tamamının aynı anda bozulması gerekmiyor.
Unity tarafında geliştirici:
Class adını değiştirebilir
Field adını değiştirebilir
Bir değeri başka sınıfa taşıyabilir
PlayerPrefs key’ini değiştirebilir
İlgili sistemi tamamen yeniden yazabilir
Böyle bir durumda ilgili özelliklerin ORGA Hub entegrasyonunu tekrar güncellemem gerekebilir.
Mono kullanmamız bazı değişikliklerde işimizi kolaylaştırıyor.
Örneğin sadece field’ın fiziksel offset’i değişmiş ama adı aynı kalmışsa runtime çözüm sayesinde özellik çalışmaya devam edebilir.
Ama oyunun genel mantığı değişmişse entegrasyon da güncellenmek zorunda kalır.
🐛 Bir Özellik Çalışmıyorsa
Streamer Life Simulator içeriğinde sorun yaşarsanız bu konu altında bildirebilirsiniz.
Mümkünse:
Oyun sürümü
Çalışmayan özelliğin adı
Özellik daha önce çalışıyor muydu?
Sorun oyun güncellemesinden sonra mı başladı?
Hiçbir şey mi olmuyor?
Değer değişip sonra eski haline mi dönüyor?
Oyun çöküyor mu?
Başka mod kullanıyor musunuz?
Varsa ekran görüntüsü
bilgilerini ekleyin.
Özellikle:
Trainer çalışmıyor.
yerine:
İhtiyaç özellikleri çalışıyor ama ekonomi tarafındaki X özelliği yeni güncellemeden sonra çalışmıyor.
şeklindeki bildirimler benim için çok daha faydalı.
Böylece sorunun Mono field tarafında mı, PlayerPrefs tarafında mı yoksa başka bir entegrasyon katmanında mı olduğunu daha hızlı anlayabiliyorum.
🔄 Güncelleme Süreci Nasıl Olacak?
Burada içerik sahipliği nedeniyle süreç kendi geliştirdiğim trainerlerden biraz farklı ilerleyebilir.
Orijinal içerikte SeryogaSK tarafından bir güncelleme yapılırsa bunu ORGA Hub tarafına uyarlamamız gerekebilir.
Bazen de oyun güncellemesinden sonra Hub entegrasyonundaki bir yöntemi benim güncellemem yeterli olabilir.
Bu yüzden sorun bildirildiğinde önce:
Problem orijinal içerikten mi kaynaklanıyor, yoksa ORGA Hub entegrasyonundan mı?
bunu ayırmaya çalışacağım.
ORGA Hub tarafında bir problem varsa entegrasyonu ben düzelteceğim.
İçeriğin temel yönteminde değişiklik gerekiyorsa da buna göre ilerleyeceğiz.
📝 Güncelleme Notları
Önemli değişiklikleri bu konu altında paylaşacağım.
Örneğin:
🔧 ORGA Hub Entegrasyonu Güncellendi
Yeni oyun sürümüne göre Mono tanımları güncellendi.
🐛 Düzeltildi
Belirli bir özelliğin değer değiştirmemesine neden olan entegrasyon sorunu giderildi.
🔄 Üretici İçeriği Güncellendi
SeryogaSK tarafından yayınlanan yeni sürüm ORGA Hub’a uyarlandı.
⚠️ Bilinen Sorun
Yeni oyun sürümünde belirli özellik geçici olarak uyumsuz.
gibi.
❤️ Üreticiye Destek
Bu içeriği beğeniyorsanız asıl emeğin sahibi olan SeryogaSK’yı desteklemeyi unutmayın.
ORGA tarafındaki amacım başka üreticilerin çalışmalarını kendi adıma almak değil.
Tam tersine içerik sahibini açıkça göstererek çalışmalarının ORGA kullanıcılarına da ulaşmasını sağlamak.
Streamer Life Simulator bunun ilk güzel örneklerinden biri oldu.
İlerleyen dönemde başka üreticilerin içeriklerini de izinleri dahilinde ORGA Hub’a entegre etmek istiyorum.
🎮 Kısaca
Streamer Life Simulator içeriği şu anda:
26 özellik
ile ORGA Hub’da kullanılabiliyor.
İçeriğin üreticisi: SeryogaSK
ORGA Hub entegrasyonu: ORGA
Teknik entegrasyon tarafında da oyunun Unity yapısına uygun olarak:
Mono Freeze
Mono runtime field işlemleri
PlayerPrefs
Tek seferlik değer işlemleri
gibi yöntemlerden yararlanıyorum.
Yeni oyun sürümleri veya SeryogaSK tarafından yayınlanan içerik güncellemeleri geldikçe gerekli entegrasyonları yapıp bu konuyu güncel tutmaya çalışacağım.
Bir sorun yakalarsanız buradan bildirebilirsiniz. 🎮
Gringos