Yavaş yavaş rehber yapmaya başlayacağım. Yakında yakuzalar için rehber hazırlıyacağım. Cidden hiç rehber yapan yok ben de rahatsızım açıkçası.


Öyle bir şey yok artık, xbox kısmında da yama yapabiliyorsun. Sadece exe şifreli olduğu için, exe'nin değişmesi gereken oyunlar da sorun oluyor bir de yakuza 0 gibi bazı oyunlarda dosyalar farklı. Ona uyumlu yapmak gerekiyor.
Ben uygulama kısmında sorunlar olduğunu bahsetmiştim. Güncel şeyleri denemedim. Ama halen çoğu yamayı Xbox dosya korumasını aşamadığından uygulayamıyorsun. Sırf bu yüzden çoğu kişinin Gamepass veya Xbox üzerinden ucuz bile olsa oyun almadığını biliyorum.

Bu arada çeviri, yama işleri genelde gönüllülük esasına göre yapılıyor. Genelde de boş vakti olan lise ve üniversite öğrencileri yapıyor. Bu da onlar çalışma hayatına geçince doğal olarak çeviri gruplarının dağılmasıyla sonuçlanıyor. Anime fansubları, oyun çeviri grupları hep bu sebepten dağılıyor.

Yani burada öyle düşünüldüğü gibi bir para akışı yok. Bunu sağlayabilen Anonymous var. Bence onlar da o kadar kazanmıyordur.

Çoğu kişi 1-2 oyun belirleyip, bir kere alıp yamaları uygulayıp salıyordur. Ekonomi, ölücülük gibi sebepler dışında Anonymous site arayüzünün erişebilir olmaması, çeviri uygulamalarının çok basit ve kullanışsız olması, üyelik sistemlerine aldığın sistemlerin çoğu sanal kart vb. aylık ödemede desteklemesi gibi şeyler var. Bunları çözerlerse daha çok para kazanabileceklerini düşünüyorum.

Ben mesela Anonymous o sistemine kredi kartı ile ödeme hayatta yapmam. Buna benzer aylık ödeme yaptığım 4-5 tane site var. Mesela MyAbandonware aylık 3 $ atıyorum, çünkü bol bol oyun indiriyorum ve bu sitenin açıkcası hayatta kalmasını istiyorum. Bunların yaptığı sistem Buy Me A Coffee adlı site üzerinden üyelik ayarlıyorlar.

Yerelde niye yapılmıyor diye düşünecek olursam malum iktidardan kaynaklı olabilir. Malum Paypal'ı kendi üzerlerinden para dönsün diye yasaklayanlar, denetleyemedikleri veya kârına ortak olamadıkları yabancı kurumların yerel işletmelerde kullanılmasını istemiyor olabilir. Bari böyle istiyorsunuz düzgün bir hizmet sunun derler adama.

Son zamanlarda artan yapay zeka çevirileri ise borsa, kripto vb. böyle gündeme göre iş takip eden insanlar para verip yaptırıyor. Elbette aralarında iyisi vardır. Ama ana hedefleri bilinirlik, sonrasında üyelik satma falan.
 
Çeviri işleriyle vb hiçbir alakam yok fakat internal bir dll/shell yazıp direkt hookla aynı işlemleri yapmak sanki daha kolay olur gibi.
Font için diyorsan pek mümkün değil, metin kısmı için diyorsan mümkün ama hook yazmak o kadar da kolay değil. Anonymous dediğin şekilde yapıyor, oyun güncellemelerinden de pek etkilenmiyorlar.

Unreal için çok da gerek yok aslında, belki metinleri sıralı çıkartmaya yardımcı oluyordur. Unity'de her güncellemede metinler değişmese bile metinler bozuluyor.

Doğru, dediğiniz benim de dediğim kapıya çıkıyor. Ayrıca belirteyim, hakkıyla, el emeğiyle çevirenler herhangi bir destek görmediği için çeviri yapmıyor.
Bu topluluk aşırı nankör bu arada, teşekkür etmekten bile aciz insanlar var. Gönüllü çeviriyi ücretli çevirilerden çok bu tarz insanlar bitirdi.

Bir de ülkemizde yardımlaşma kültürü yok, her şey gizli kapaklı yapılıyor. Yüzlerce, binlerce yama çıkmıştır ama bir kişi bile dur ben buna rehber yapayım dememiş.
 
Son düzenleme:
Font için diyorsan pek mümkün değil, metin kısmı için diyorsan mümkün ama hook yazmak o kadar da kolay değil. Anonymous dediğin şekilde yapıyor, oyun güncellemelerinden de pek etkilenmiyorlar.
Buraya hook atarak rahatlıkla yapabilirsiniz gibi duruyor. Kendim bizzat girip bir oyunda test ettim. Textmeshprogui oluştururken doğal olarak burası çağrılıyor, istediğiniz manipülasyonu Awake ya da OnEnable methodunda yapabilirsiniz.
1747025234481.webp

1747025253269.webp

1747025288580.webp


Ha yok ben hooksuz yapmak istiyorum derseniz o da teorik olarak mümkün ama hiçbir şekilde bunun kadar efektif olmaz. Anonymous falan tanımıyorum hocam, dediğim gibi benim çeviri işleriyle alakam yok. Unity ile daha önceden uğraşmıştım, o kadar. Eğer metin derken bahsettiğiniz altyazı metinlerini direkt hook ile patchliyorlarsa o zaten bundan daha basit bir şey :D
 
Buraya hook atarak rahatlıkla yapabilirsiniz gibi duruyor. Kendim bizzat girip bir oyunda test ettim. Textmeshprogui oluştururken doğal olarak burası çağrılıyor, istediğiniz manipülasyonu Awake ya da OnEnable methodunda yapabilirsiniz.
Eki Görüntüle 147560
Eki Görüntüle 147561
Eki Görüntüle 147562

Ha yok ben hooksuz yapmak istiyorum derseniz o da teorik olarak mümkün ama hiçbir şekilde bunun kadar efektif olmaz. Anonymous falan tanımıyorum hocam, dediğim gibi benim çeviri işleriyle alakam yok. Unity ile daha önceden uğraşmıştım, o kadar. Eğer metin derken bahsettiğiniz altyazı metinlerini direkt hook ile patchliyorlarsa o zaten bundan daha basit bir şey :D
Her türlü atlas'ın oyun fontuna göre düzenlenmesi gerekiyor, o kısımda hook yapmak pek kolaylık sağlamaz diye düşünüyorum.
Eğer metin derken bahsettiğiniz altyazı metinlerini direkt hook ile patchliyorlarsa o zaten bundan daha basit bir şey :D
Evet alt yazıdan bahsediyorum oyundaki metinler direkt, bazı ücretli gruplar bu yöntemle yama yapıyor.
 
Her türlü atlas'ın oyun fontuna göre düzenlenmesi gerekiyor, o kısımda hook yapmak pek kolaylık sağlamaz diye düşünüyorum.
Eğer font dynamic ise kolaylık sağlar fakat static ise ki %99 ihtimalle öyledir pek kolaylık sağlamaz. Yine imkansız değil ama generic bir çözüm de sunmuyor. O kısımda sizin yaptığınız daha mantıklı. Eğer her oyuna yama geldiğinde vb bu işlemleri tekrar yapıyorsanız mesela hook o konuda size kolaylık sağlar. Siz zaten kendi assetinizi oluşturuyorsunuz sonra patchliyorsunuz oyunu. Oyunu patchlemek yerine hook içerisinde o asseti unity fonksiyonlarıyla bir kere yükleyip istediğinizi yapabilirsiniz mesela.
EG:
C++:
 class TMP_Text : public UnityEngine::Component
{
 public:
  __forceinline auto set_font(TMP_FontAsset* font) -> void
  {
  MONO_METHOD(fn, E("TMPro::TMP_Text.set_font()"), -1, void(*)(void*, void*));
  fn(this, font);
  }
}
 class UnityEngine::AssetBundle
{
public:
    __forceinline static auto load_from_memory(std::uintptr_t data) -> UnityEngine::AssetBundle*
    {
        MONO_METHOD(load_from_memory_fn, E("UnityEngine::AssetBundle.LoadFromMemory()"), 1, UnityEngine::AssetBundle * (*)(std::uintptr_t));
        return load_from_memory_fn(data);
    }

    __forceinline static auto load_from_file(System::String path) -> UnityEngine::AssetBundle*
    {
        MONO_METHOD(load_from_memory_fn, E("UnityEngine::AssetBundle.LoadFromFile()"), 3, UnityEngine::AssetBundle * (*)(System::String, std::uint32_t, std::uint64_t));
        return load_from_memory_fn(path, 0, 0);
    }

    template<typename type>
    __forceinline auto load_asset(System::String name, std::uintptr_t type_object) -> type
    {
        MONO_METHOD(load_asset_fn, E("UnityEngine::AssetBundle.LoadAsset_Internal()"), -1, void* (*)(void*, System::String, std::uintptr_t));
        return reinterpret_cast<type>(load_asset_fn(this, name, type_object));
    }
};
static auto bundle = UnityEngine::AssetBundle::load_from_file(E(L"C:\\assets.ua"));
static auto font_asset = bundle->load_asset<TMPro::TMP_FontAsset>(E(L"Bender Outline SDF"), TMPro::TMP_FontAsset::Type());
//hook içerisinde text_obj->set_font çağırarak font assetinizi pushlayın, eğer çok geç çalışan bir yere hook attıysanız SetAllDirty çağırın.

Before:
1747130384838.webp

After:
1747130422008.webp

Oyuna patch vb bile gelse ekstra iş yapmanıza gerek kalmaz. Ha yok ,oyuna patch falan geldiğinde yine sizin için değişen bir şey olmuyorsa o zaman zaten uğraşmaya değmez. Hook'u LoadFontAsset'e de atabilirsiniz gibi duruyor, virtual function daha kolay olur.
 
Son düzenleme: