Metin2 DirectX 9 Günlüğü

Konunuzu takip ederken ilgiyle takip ediyorum, çünkü gerçekten yeni ve farklı bir şeyler yapıyorsunuz alışılagelmişin dışında bir şeyler katmaya çalışıyorsunuz. Bu nedenle gerçekten tebrik ediyorum.

- Kesinlikle belirtmek isterim, bu yorumu kesin bir bilgiyle yazmıyorum. Metin2 oyunu ve kaynak koduna hakim değilim.

Zannımca: Metin2 oyununda özel bir FX ile parçacık sistemi ve kütüphanesi kullanılmadığını tahmin ediyorum. 2000 yılı öncesi bir programlama yapısı olduğundan günümüz tool setleri o sıralarda kullanılmıyordu. Haliyle programcılar o zamanın koşullarına göre muhtemeldir ki state's yönetmek için bir yapı oluşturmuş olmalılar. Bana kalırsa ilk yorumumdan yine yola çıkarak bu kadar eski bir mimaride HDRP sisteme sahip olmak zor görünse de particle sisteminde olası bir değişime gidilebilir. Yine tekrar belirtmek istiyorum ki, Metin2 kaynak koduna hakim değilim. Fakat biraz araştırdığım zaman .MSE, .MSA formatlarında animasyonları, stateleri ve parçacıkları yönetmek için bir dizi hareket betiği yapısı oluşturulmuş. Bu tür bir betik, genellikle bir karakter animasyonları veya hareketleri tanımlamak için kullanılır. Örnek bir datayı incelediğimde aldığım sonuç;
  • "ScriptType": Emin değilim ancak bu betiğin tamamen tipini belirliyor gibi görünüyor.
  • "MotionFileName": Hareket verisinin dosya yolunu gösteriyor ve bbu dosya, karakterin belirli bir animasyonunu içeriyor.
  • "MotionDuration": Hareketin süresini saniye cinsinden belirtiyor
  • "Group LoopData": Hareket döngüsünü tanımlamış. Hareketin belirli bir aralıkta sürekli olarak tekrarlanmasını veya döngüsünü sanırım burada kontrol ediyor.
  • "Group MotionEventData": Hareket sırasında özel olayları veya ona benzer bişeyleri tetikliyor. Bazılarında görmüştüm misal, bir ses efekti veya özel bir efektin tetiklenmesi gibi.

Şimdi bu yapıya göz attığımızda tekniğin ve call'in çok eski olduğunu görüyoruz, bu yüzden benim tavsiyem biraz da macera sevdiğinizi de düşünürsek, CharacterRaceState yapısını Webzen'in yazdığı MotionData ile kullanmak yerine daha gelişmiş ve açık kaynaklı bir kütüphane ile değiştirmek olabilir.

Peki nasıl?
wdas100_horizontal.svg

Örneğin burada en iyi önerim Disney tarafından sağlanan ve açık kaynaklı Partio ile değiştirmeye çalışabilirsiniz.
Linkleri görebilmek için giriş yap veya kayıt ol.


Source:
Linkleri görebilmek için giriş yap veya kayıt ol.




Partio tavsiye nedenlerimden biride, Python API desteği bulunmasıdır. Bu ara katmanda kolaylıkla C++ kaynağıyla eşleştirebileceğinizi düşündürdü bana. Eğer yanılmıyorsam Metin2 oyunu kaynak kodunda Python taraflı çok fazla bağlam var.

Belirtmek istiyorum ki tekrar, bu tür bir library Metin2 oyununun modability için uygun mudur değil midir gerçekten bilemiyorum. Ben çalışmanıza katkı sağlayacak middleware kaynak sağlamaya çalışıyorum ve bilgim dahilinde yardımcı olmaya çalışıyorum. Yaptığınız şeyi gerçekten takdir ediyorum.

Sonucu veya değerlendirmenizi yazarsanız eğer bende bilgi edinmiş olurum.

İyi çalışmalar.
Sen hangi dünyadansin be hocam 😁 Bu nedir fmod yorumun sonra effect sizin yaptiginiz şu oyunu ve mumkunse motoru denemeyi çok istiyorum bu arada @yunus0399 sürekli bu konulara ilgili konular açıyor bu forumda bilgin tartışmasız ileri düzeyde mühendislik noktasinda o yüzden aslında bir bölüm açılsa oraya yogunlasilsa harika olabilir gibi
 
Sen hangi dünyadansin be hocam 😁 Bu nedir fmod yorumun sonra effect sizin yaptiginiz şu oyunu ve mumkunse motoru denemeyi çok istiyorum bu arada @yunus0399 sürekli bu konulara ilgili konular açıyor bu forumda bilgin tartışmasız ileri düzeyde mühendislik noktasinda o yüzden aslında bir bölüm açılsa oraya yogunlasilsa harika olabilir gibi
Değerlendirmeniz ve güzel yorumunuz için teşekkür ederim. Oyunu deneyebilirsiniz ancak engine şuan için in-house property durumunda. Halka açılacak sürüm hala ileri düzey geliştirme aşamasında. Yunus için gerekli bilgiyi ve desteği sağladım kendisine. Ben Metin2 veya revizyonları ile ilgili teknik destek ve bilgi paylaşımı yapmıyorum. Dolaylı yada dolaysız yoldan bunu yapmak istemiyorum. Eğer (Without Metin2) oyun geliştirme ve ileri düzey oyun geliştirme konuları hakkında daha fazla tartışma ve paylaşım yapmak için özel bir bölüm veya platform yada kategori oluşturulabilirse, ben ve bu konuyla ilgili kişilerin bilgi paylaşımını teşvik edebilir. Bu yaklaşım, oyun geliştirme, oyun motorları, grafik programlama, ses tasarımı ve daha fazlası hakkında derinlemesine tartışmalar ve yardımlaşma için güzel olacağı gibi forumun etkileşimini arttırabilir. Ne de olsa sonuçta, geliştirme sadece metin2 değildir.
 
Konunuzu takip ederken ilgiyle takip ediyorum, çünkü gerçekten yeni ve farklı bir şeyler yapıyorsunuz alışılagelmişin dışında bir şeyler katmaya çalışıyorsunuz. Bu nedenle gerçekten tebrik ediyorum.

- Kesinlikle belirtmek isterim, bu yorumu kesin bir bilgiyle yazmıyorum. Metin2 oyunu ve kaynak koduna hakim değilim.

Zannımca: Metin2 oyununda özel bir FX ile parçacık sistemi ve kütüphanesi kullanılmadığını tahmin ediyorum. 2000 yılı öncesi bir programlama yapısı olduğundan günümüz tool setleri o sıralarda kullanılmıyordu. Haliyle programcılar o zamanın koşullarına göre muhtemeldir ki state's yönetmek için bir yapı oluşturmuş olmalılar. Bana kalırsa ilk yorumumdan yine yola çıkarak bu kadar eski bir mimaride HDRP sisteme sahip olmak zor görünse de particle sisteminde olası bir değişime gidilebilir. Yine tekrar belirtmek istiyorum ki, Metin2 kaynak koduna hakim değilim. Fakat biraz araştırdığım zaman .MSE, .MSA formatlarında animasyonları, stateleri ve parçacıkları yönetmek için bir dizi hareket betiği yapısı oluşturulmuş. Bu tür bir betik, genellikle bir karakter animasyonları veya hareketleri tanımlamak için kullanılır. Örnek bir datayı incelediğimde aldığım sonuç;
  • "ScriptType": Emin değilim ancak bu betiğin tamamen tipini belirliyor gibi görünüyor.
  • "MotionFileName": Hareket verisinin dosya yolunu gösteriyor ve bbu dosya, karakterin belirli bir animasyonunu içeriyor.
  • "MotionDuration": Hareketin süresini saniye cinsinden belirtiyor
  • "Group LoopData": Hareket döngüsünü tanımlamış. Hareketin belirli bir aralıkta sürekli olarak tekrarlanmasını veya döngüsünü sanırım burada kontrol ediyor.
  • "Group MotionEventData": Hareket sırasında özel olayları veya ona benzer bişeyleri tetikliyor. Bazılarında görmüştüm misal, bir ses efekti veya özel bir efektin tetiklenmesi gibi.

Şimdi bu yapıya göz attığımızda tekniğin ve call'in çok eski olduğunu görüyoruz, bu yüzden benim tavsiyem biraz da macera sevdiğinizi de düşünürsek, CharacterRaceState yapısını Webzen'in yazdığı MotionData ile kullanmak yerine daha gelişmiş ve açık kaynaklı bir kütüphane ile değiştirmek olabilir.

Peki nasıl?
wdas100_horizontal.svg

Örneğin burada en iyi önerim Disney tarafından sağlanan ve açık kaynaklı Partio ile değiştirmeye çalışabilirsiniz.
Linkleri görebilmek için giriş yap veya kayıt ol.


Source:
Linkleri görebilmek için giriş yap veya kayıt ol.




Partio tavsiye nedenlerimden biride, Python API desteği bulunmasıdır. Bu ara katmanda kolaylıkla C++ kaynağıyla eşleştirebileceğinizi düşündürdü bana. Eğer yanılmıyorsam Metin2 oyunu kaynak kodunda Python taraflı çok fazla bağlam var.

Belirtmek istiyorum ki tekrar, bu tür bir library Metin2 oyununun modability için uygun mudur değil midir gerçekten bilemiyorum. Ben çalışmanıza katkı sağlayacak middleware kaynak sağlamaya çalışıyorum ve bilgim dahilinde yardımcı olmaya çalışıyorum. Yaptığınız şeyi gerçekten takdir ediyorum.

Sonucu veya değerlendirmenizi yazarsanız eğer bende bilgi edinmiş olurum.

İyi çalışmalar.
Öncelikle güzel yorumunuz için teşekkür ederim. Benim de aklıma ilk olarak particle kaynaklı olabileceği geldi ama tam sebebini belirlemeden yanlış bir şey yapmak da istemiyorum. Eğer bunu entegre edersem packteki bütün efekt dosyalarını da elden geçirip bu kütüphaneye uygun hale getirmem gerekecek ve bu şu an için çok zahmetli bir yol. Yine de çıkmaza girdiğim durumda bunu değerlendireceğim, tekrardan teşekkürler.

Anti-aliasing bir üst seviye cıkarsana zaten bunlar ekran kartı ile ayarlanabilir
Anti-aliasing'i x16 olarak da ayarlayabilirim ancak kendi bilgisayarımda oyunu açamam. Çünkü ekran kartım en fazla x8 destekliyor. x9 yaptığımda dahi açılmıyor.
Ayrıca ekran kartı panelinde yapılan işlem wrapper mantığı ile aynıdır. Hatta bazı yönlerden wrapperdan bile geri kalabilir. Ekran kartı panelinden yapılan değişiklikler, genellikle belli bir oranda uyumlu oyunlar üzerinde etki göstermektedir. Eğer oyun uyumsuza, kötü sonuçlar oluşturmamak için işlemi reddeder. Wrapper ise çoğu zaman oyun desteklemese bile, mevcut directx aygıtını zorlar veya emulator aracılığı ile yükseltir, ve sonuç kötü de olsa efekti uygular. Mesela bununla ilgili bir test gerçekleştirdim, Directx9 olan metin2'yi wrapper ile Directx12'e zorlayarak çalıştırdım. Ancak tek bir clientin bellek kullanımı oyuna ilk girişte 650mb'ı bulunca geri iptal ettim.
Her ikisininde tek ortak noktası, tüm sahneye giydirme yapıyor olması ve metin2'nin de bu konuda ne kadar eski olduğunu hesaba katınca ortaya şöyle bir görüntü çıkıyor(yazılara dikkat):
Adsız.png
Burada ekran kartı üzerinden FXAA uyguladım.
Directx9, MSAA ve FXAA gibi çoklu örneklemeleri doğrudan destekleyen bir sürüm değil, dolayısıyla ekran kartı panelinden yapılan işlemlere pek sağlıklı cevap vermiyor. x2 ya da x8 vb. kenar yumuşatma seçtiğimde hiç etki etmiyor.
 
Değerlendirmeniz ve güzel yorumunuz için teşekkür ederim. Oyunu deneyebilirsiniz ancak engine şuan için in-house property durumunda. Halka açılacak sürüm hala ileri düzey geliştirme aşamasında. Yunus için gerekli bilgiyi ve desteği sağladım kendisine. Ben Metin2 veya revizyonları ile ilgili teknik destek ve bilgi paylaşımı yapmıyorum. Dolaylı yada dolaysız yoldan bunu yapmak istemiyorum. Eğer (Without Metin2) oyun geliştirme ve ileri düzey oyun geliştirme konuları hakkında daha fazla tartışma ve paylaşım yapmak için özel bir bölüm veya platform yada kategori oluşturulabilirse, ben ve bu konuyla ilgili kişilerin bilgi paylaşımını teşvik edebilir. Bu yaklaşım, oyun geliştirme, oyun motorları, grafik programlama, ses tasarımı ve daha fazlası hakkında derinlemesine tartışmalar ve yardımlaşma için güzel olacağı gibi forumun etkileşimini arttırabilir. Ne de olsa sonuçta, geliştirme sadece metin2 değildir.
Bilgilendirmeler ve desteğiniz için sonsuz teşekkür ederim gerçekten yazdıklarınız ve bu konu çok hoşuma gidiyo her mesajı merakla okudum mmorpg oyunları hep bana büyüleyici gelmiştir temaları oyun yapısı grafikleri oynanışı vs. sizde bunu fazlasıyla yapmışsınız LaniEngine programının çıkmasını sabırsızlıkla bekliyorum. Bu konuya gelecek olursak grafikler çok iyi metin2 gibi bir oyunun bu grafiklere sahip olması gerçekten çok güzel her ne kadar bu çalışmalra yeni başlasamda yapısını öğrenip daha çok geliştirme isteğim bu tarz konularla daha çok alevleniyo forumdada bu tarz bir bölüm olsa sadece mt2 değil diğer oyunlar içinde yada oyun sektörü adına da güzel paylaşımlar ve tartışmalar çıkacağı kesin kendimce. Tekrardan bu tarz paylaşım yapan ve çalışmalarını sürdüren arkadşların emeklerine çok teşekkür ediyorum bize böyle güzel izlenimler verdikleri için severek takip ediyorum.
 
Anti-aliasing'i x16 bu olayı demiyom zaten bunu senin yukseltmemen lazım bunu oyuncular yukselticek sen bir yer daha var sen source tarafında yükseltme yaparsan kimi oyuncu oyuna giremez sürekli hata alcaktır
 
Anti-aliasing'i x16 bu olayı demiyom zaten bunu senin yukseltmemen lazım bunu oyuncular yukselticek sen bir yer daha var sen source tarafında yükseltme yaparsan kimi oyuncu oyuna giremez sürekli hata alcaktır
Şimdi anladım. Üstteki yorumlarda da bununla ilgili henüz bir kontrol eklemediğimi belirttim.
Gerekli kontrolleri ekledikten sonra kullanıcının herhangi bir ayar yapmadan bilgisayarın desteklediği kalitede oyun açılacak.
Eğer hiç desteklemiyorsa da varsayılan ayarlarda açılacak. Bu kısım kolay. Bunun öncesinde anti-aliasing'i temel olarak tamamen uyumlu hale getirmem gerek. Mesela şu an karakterlerin gölgeleri anti-aliasingden nedense etkilenmiyor, bu gibi eksiklikleri gidermem gerek.
Sonrasında ise bir yapı oluşturup gerekli bütün kontrolleri ekleyeceğim. Hata seviyesi 0 olacak.
 
C++:
    for (uint8_t i = 0; i <= D3DMULTISAMPLE_16_SAMPLES; i++)
    {
        const auto multisamplelevel = static_cast<D3DMULTISAMPLE_TYPE>(i);
        const auto result = ms_lpd3d->CheckDeviceMultiSampleType(ms_iD3DAdapterInfo, D3DDEVTYPE_HAL, ms_d3dPresentParameter.BackBufferFormat, isfullscreen, multisamplelevel, nullptr);

        if (SUCCEEDED(result))
        {
#ifdef _DEBUG
            TraceError("multisamplelevel == %u", multisamplelevel);
#endif
            ms_d3dPresentParameter.MultiSampleType = multisamplelevel;
        }
    }
 
Ek olarak bu vesile ile 4060Ti ekran kartının da 16x desteklemediğini deneyimlemiş oldum. 16x olarak yüklenince Sorry, your system does not support 3d graphic. hatası veriyor. Belki sebebi başka bir şeydir emin değilim henüz bu konuda.

Muhtemelen direkt olarak sabit bir değer vermeye çalıştığın ya da yukarıdaki gibi yeterli kontrol sağlamadan bir değer atadığın için bu hatayı aldın, aşağıdaki şekilde kontrol ettikten sonra uygularsan sadece destekleyen aktif olacaktır.

C++:
for (UINT sampleType = 0; sampleType <= D3DMULTISAMPLE_16_SAMPLES; ++sampleType)
{
    const auto multiSampleType = static_cast<D3DMULTISAMPLE_TYPE>(sampleType);

    DWORD backBufferQualityLevels = 0;
    if (SUCCEEDED(ms_lpd3d->CheckDeviceMultiSampleType(
        ms_iD3DAdapterInfo,
        D3DDEVTYPE_HAL,
        ms_d3dPresentParameter.BackBufferFormat,
        Windowed,
        multiSampleType,
        &backBufferQualityLevels)))
    {
        if (backBufferQualityLevels > 0)
        {
            DWORD zStencilQualityLevels = 0;
            if (SUCCEEDED(ms_lpd3d->CheckDeviceMultiSampleType(
                ms_iD3DAdapterInfo,
                D3DDEVTYPE_HAL,
                pkD3DModeInfo->m_eD3DFmtDepthStencil,
                Windowed,
                multiSampleType,
                &zStencilQualityLevels)))
            {
                if (zStencilQualityLevels > 0)
                {
                    const auto sampleTypeValue = static_cast<int>(multiSampleType);
                    Tracef("Sample Type: %d, Stencil Quality: %d, Backbuffer Quality: %d\n", sampleTypeValue, zStencilQualityLevels, backBufferQualityLevels);

                    if (multiSampleType > ms_d3dPresentParameter.MultiSampleType)
                    {
                        ms_d3dPresentParameter.MultiSampleType = multiSampleType;
                        ms_d3dPresentParameter.MultiSampleQuality = backBufferQualityLevels - 1;
                    }
                }
            }
        }
    }
}

Ek olarak bahsettiğin diğer sorunlar için muhtemelen 8'den güncellerken yapılması gereken eksik şeyler olduğundan dolayı karşılaşıyorsun.
D3DRS_LINEPATTERN, D3DRS_ZVISIBLE, D3DRS_EDGEANTIALIAS, D3DRS_ZBIAS kısımlarını düzenlemen ve en önemlisi software vertex processing'i kapatman gerekiyor.
Bunlar dışında sorun yaşamamak için StateManager içinde ekleyip aktif etmen gerekiyor

Hatırladığım kadarıyla AA için düzenlenmesi gereken kısım bunlardı eksik kalmış yerler olabilir ama yaşadığın sorunların büyük kısmını çözecektir
 
Muhtemelen direkt olarak sabit bir değer vermeye çalıştığın ya da yukarıdaki gibi yeterli kontrol sağlamadan bir değer atadığın için bu hatayı aldın, aşağıdaki şekilde kontrol ettikten sonra uygularsan sadece destekleyen aktif olacaktır.

C++:
for (UINT sampleType = 0; sampleType <= D3DMULTISAMPLE_16_SAMPLES; ++sampleType)
{
    const auto multiSampleType = static_cast<D3DMULTISAMPLE_TYPE>(sampleType);

    DWORD backBufferQualityLevels = 0;
    if (SUCCEEDED(ms_lpd3d->CheckDeviceMultiSampleType(
        ms_iD3DAdapterInfo,
        D3DDEVTYPE_HAL,
        ms_d3dPresentParameter.BackBufferFormat,
        Windowed,
        multiSampleType,
        &backBufferQualityLevels)))
    {
        if (backBufferQualityLevels > 0)
        {
            DWORD zStencilQualityLevels = 0;
            if (SUCCEEDED(ms_lpd3d->CheckDeviceMultiSampleType(
                ms_iD3DAdapterInfo,
                D3DDEVTYPE_HAL,
                pkD3DModeInfo->m_eD3DFmtDepthStencil,
                Windowed,
                multiSampleType,
                &zStencilQualityLevels)))
            {
                if (zStencilQualityLevels > 0)
                {
                    const auto sampleTypeValue = static_cast<int>(multiSampleType);
                    Tracef("Sample Type: %d, Stencil Quality: %d, Backbuffer Quality: %d\n", sampleTypeValue, zStencilQualityLevels, backBufferQualityLevels);

                    if (multiSampleType > ms_d3dPresentParameter.MultiSampleType)
                    {
                        ms_d3dPresentParameter.MultiSampleType = multiSampleType;
                        ms_d3dPresentParameter.MultiSampleQuality = backBufferQualityLevels - 1;
                    }
                }
            }
        }
    }
}

Ek olarak bahsettiğin diğer sorunlar için muhtemelen 8'den güncellerken yapılması gereken eksik şeyler olduğundan dolayı karşılaşıyorsun.
D3DRS_LINEPATTERN, D3DRS_ZVISIBLE, D3DRS_EDGEANTIALIAS, D3DRS_ZBIAS kısımlarını düzenlemen ve en önemlisi software vertex processing'i kapatman gerekiyor.
Bunlar dışında sorun yaşamamak için StateManager içinde ekleyip aktif etmen gerekiyor

Hatırladığım kadarıyla AA için düzenlenmesi gereken kısım bunlardı eksik kalmış yerler olabilir ama yaşadığın sorunların büyük kısmını çözecektir
İlgin için teşekkür ederim. Fakat sabit bir değer atasam da, kontrol sağlayarak yapsam da bir fark oluşmuyor. x8 benim için son sınır.
Ekran kartı panelinde de kenar yumuşatma için en fazla x8 seçeneği sunuluyor. Ayrıca D3DRS_LINEPATTERN, D3DRS_ZVISIBLE, D3DRS_EDGEANTIALIAS, D3DRS_ZBIAS bunların hiç birini kullanmıyorum, yani hiç biri projede yer almıyor şu an. sofware vertex zaten pasif durumda şu an, hardware vertex kullanıyorum. StateManager içinden de aktif etmeyi denedim ancak işe yaramadı, büyük ihtimalle yüzey değişkenlerinin bir çok yerde farklı ayarlarla oluşturulmasıyla ilgili diye düşünüyorum.
Açılışta anti-aliasing aktif ettim ancak sadece açılışta etkilenen öğelere etki etti. Karakterin kendisi, ID password öğeleri gibi.
Gölgeler ve diğer faktörler için sonradan işleme alınan mevcut tanımları da güncellemem gerekecek.
 
Son durum güncellemesi:
Nesne market açınca crash yeme, thinboard ve skill efekt sorunları giderildi. Şu an gözle görülür hiç bir sıkıntı göremedim.
Kısa bir önizleme videosu bırakıyorum(mümkünse tam ekran izleyiniz.)


Ek olarak oyun içindeki efektlerin kalitesi arttırıldı.
sd.png

hd.png

sd2.png

hd2.png
 
Son durum güncellemesi:
Nesne market açınca crash yeme, thinboard ve skill efekt sorunları giderildi. Şu an gözle görülür hiç bir sıkıntı göremedim.
Kısa bir önizleme videosu bırakıyorum(mümkünse tam ekran izleyiniz.)


Ek olarak oyun içindeki efektlerin kalitesi arttırıldı.





Bu thinboard problemini nasıl çözdün bende de var aynı problem
 
Bu thinboard problemini nasıl çözdün bende de var aynı problem
Son zamanlarda marty fixi eklemiştim, acaba onlarla bir çakışma mı yapıyor diye kontrol ettim ve ne hikmetse o sebep oluyormuş.
Fix numarasını bilmiyorum, numarasız çekmiştim ben. Ama
PythonApplication.cpp(m_kEftMgr.Update();)
ve
ModelInstanceUpdate.cpp(GrannyFreeCompletedModelControls(m_pgrnModelInstance);) içinde.
Eğer sebep aynıysa bi kontrol et, fixi geri alınca düzelecektir.
 
Son zamanlarda marty fixi eklemiştim, acaba onlarla bir çakışma mı yapıyor diye kontrol ettim ve ne hikmetse o sebep oluyormuş.
Fix numarasını bilmiyorum, numarasız çekmiştim ben. Ama
PythonApplication.cpp(m_kEftMgr.Update();)
ve
ModelInstanceUpdate.cpp(GrannyFreeCompletedModelControls(m_pgrnModelInstance);) içinde.
Eğer sebep aynıysa bi kontrol et, fixi geri alınca düzelecektir.
efekt fixi gibi görünüyor bu, ben gui ile olan problemi soruyorum :D
 
Son durum güncellemesi:
Nesne market açınca crash yeme, thinboard ve skill efekt sorunları giderildi. Şu an gözle görülür hiç bir sıkıntı göremedim.
Kısa bir önizleme videosu bırakıyorum(mümkünse tam ekran izleyiniz.)


Ek olarak oyun içindeki efektlerin kalitesi arttırıldı.




Abi çok iyi iş çıkarmışsın, helal olsun. Paylaşırsan da şatışa çıkarırsan da güzel olur bence
 
Bu nesne market iş içinden iş çıkarmaya niyetli gibi. Testlerde derine indikçe bug çıkarıp duruyor. Bir yanım komple kaldır diyor ama şimdilik bekletiyorum yinede. Velhasıl şimdilik nesne marketle alakalı bir problem yok.

Seçim işareti arada kaynamış, onu da mümkün olan en yüksek kaliteye çıkardım.
Eski
eski.png


Yeni
yeni.png

Oyun içinde harita objeleri hariç bütün karakterlerin(mob dahil) gölge kalitesi arttırıldı.
Adsız.png

Adsız2.png

Ekstra:
ex.png

222.png
 
Bu nesne market iş içinden iş çıkarmaya niyetli gibi. Testlerde derine indikçe bug çıkarıp duruyor. Bir yanım komple kaldır diyor ama şimdilik bekletiyorum yinede. Velhasıl şimdilik nesne marketle alakalı bir problem yok.

Seçim işareti arada kaynamış, onu da mümkün olan en yüksek kaliteye çıkardım.

Oyun içinde harita objeleri hariç bütün karakterlerin(mob dahil) gölge kalitesi arttırıldı.

Ekstra:
Harita gölgelerini world editörden ayarlıyoruz, world editör srcsinden ilgili bölüm mpdifiye edilerek onlar da yükseltilebilir, elinize sağlık. Efektler gayet kaliteli gözüküyor, efektlerin dds, png, tga dosyalarıyla (yapay zeka destekli upscale) gibi bir şeyler yaptınız mı?
 
Harita gölgelerini world editörden ayarlıyoruz, world editör srcsinden ilgili bölüm mpdifiye edilerek onlar da yükseltilebilir, elinize sağlık. Efektler gayet kaliteli gözüküyor, efektlerin dds, png, tga dosyalarıyla (yapay zeka destekli upscale) gibi bir şeyler yaptınız mı?
Yapay zeka destekli upscale işlemini sırf test etmek için çok daha önceleri denemiştim, ve büyük faydasını da görmüştüm o zamanlar.
Tabi bunun dezavantajı da olabiliyor, boyut artması gibi. Ancak şu an directx sürecinde pack tarafında hiç bir düzenleme yapmadım. (henüz)
 
İtemlerin parlaması değiştirildi. Artık rastgele parlamayacaklar.
Işık yönü, bakış açısı ve karakterin kendi animasyon hareketlerine göre daha gerçekci bir parlama uygulandı.

Orjinal hali:


Şimdiki hali:
 
Geri
Üst