Metin2 DirectX 9 Günlüğü

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 105
  • Gösterim Gösterim 7K

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.039
Çözümler
390
Beğeni
4.160
Puan
1.849
Ticaret Puanı
0
Öncelikle merhabalar arkadaşlar, uzun zamandır Metin2 de directx9 ile kafayı bozmuş durumdaydım.
Fakat grafik programlama metin2'nin halihazırda sahip olduğu C++ kodlarından çok farklı bir dünya. Karınca duası olsaydı şimdiye ezberlerdim herhalde. Şu an bile tam olarak temel atmış sayılmam ancak şahsen önemli diyebileceğim ilerlemeler kaydettim ve bunu da sizlerle paylaşarak fikir alışverişi yapmak istedim.

Bu konu için ReShade'i tavsiye eden çok olmuştu, ancak ReShade, UAC ve Metin2'nin kesiştiği durumlarda anlık olarak çöküyor. Dolayısı ile ReShade ile çok fazla zaman kaybetmek yerine farklı alternatiflere yöneldim ve internetin derinliklerinde bulduğum bir wrapper kütüphanesini client src ye tanımladım. Bana sorarsanız ince detaylar açısından ReShade'i solladı diyebilirim, en azından benim görüşüm bu yönde.
Video çekecektim ancak boyutuyla falan uğraşmak istemedim. O yüzden şimdlik görsel bırakıyorum..

Şu an kritik sorun diyebileceğim şey, sol alttaki nesne marketi açınca directx aygıtı buga giriyor.
Son olarak görsel efektler üzerinde çok fazla durmadım, detaylara öncelik verdiğim için şu an ki halleri kötü olabilir.


EDIT: Wrapper yöntemi tamamen iptal edildi. Ancak yinede konunun orjinalliğinin bozulmaması için yazılanlar silinmedi.

Orjinal:
1.jpg

Sonra:
2.jpg

Detay farkı:
33.jpg

Orjinal:
22.jpg

Sonra:
11.jpg

Detay farkı:
44.jpg

Şunu da unutmayalım ki, Directx 12 bile olsa söz konusu metin2 olduğunda geliştirmeler kısıtlıdır. Çünkü oyun motoru bile olmayacak kadar eski bir oyundan söz ediyoruz.
 
Son düzenleme:
baya iyiymiş valla ne zaman halka arz olur hisseleri toplayalım
 
Renkler daha canlı gözüküyor
 
Tam olarak hatırlamıyorum ama DX9, Heavenly Hope içerisinde olacaktı araştırırsınız. (DX12'de yer alıyor diye biliyorum)
 
baya iyiymiş valla ne zaman halka arz olur hisseleri toplayalım
Daha çok işi var :)

Tam olarak hatırlamıyorum ama DX9, Heavenly Hope içerisinde olacaktı araştırırsınız. (DX12'de yer alıyor diye biliyorum)
Evet bu şekilde directx dosyaları çok var ancak directx tek başına bir işe yaramıyor maalesef.
O dosyaları çağırıp çalıştıran kodların da(src) bir çok düzenlemeden geçmesi gerekiyor. Directx10 update denedim de, baya bir sıkıntı :D
 
Eline sağlık. Bence kontrastı biraz gereğinden çok düşürmüşsün, fazla karanlık kalmış oyun
 
Eline sağlık. Bence kontrastı biraz gereğinden çok düşürmüşsün, fazla karanlık kalmış oyun
Görsel efektlere hiç dokunmadım henüz, varsayılan hali bu şekilde şimdilik.
Benim asıl derdim kenar yumuşatma olduğu için daha çok ona ağırlık vermeye çalıştım.
Düzenlemelere devam ettikçe burada paylaşacağım.
 
Şunu da unutmayalım ki, Directx 12 bile olsa söz konusu metin2 olduğunda geliştirmeler kısıtlıdır. Çünkü oyun motoru bile olmayacak kadar eski bir oyundan söz ediyoruz.
bu konuda yanılıyorsunj dostum ekleme yapmadan bişey yapamazsın ilk basta kodları geliştiriceksin ekleme yapmamışlar şöyle bi bakarsan oyunun amacı belli düşük sistemlerde bileme oynanbilir halde bu ticari zekadır bir nevi ne kadar oyuncu okadar kazanc
 
1699108003814.png

EKRAN KARTINI KULLNIMINA BAKARSAN DAHA PC ULTRA SİSTEMLER OLDUGU HALDE BU ŞEKİLDE
bi arkadaşım var ondan destek aliyorum ve söyledigi su dx9 calısıtırıyor ama %10 onun calisitiyor dx9 tam kapasite kullanması için oyunu geliştirmelisin demisti bu bide fark ettin bilmiyom
 
Şunu da unutmayalım ki, Directx 12 bile olsa söz konusu metin2 olduğunda geliştirmeler kısıtlıdır. Çünkü oyun motoru bile olmayacak kadar eski bir oyundan söz ediyoruz.
bu konuda yanılıyorsunj dostum ekleme yapmadan bişey yapamazsın ilk basta kodları geliştiriceksin ekleme yapmamışlar şöyle bi bakarsan oyunun amacı belli düşük sistemlerde bileme oynanbilir halde bu ticari zekadır bir nevi ne kadar oyuncu okadar kazanc
İstenildiği kadar kod eklensin. Directx bir oyun motoru değildir grafik motorudur ve genellikle uyumlu oyun motorlarıyla birleştirildiğinde ve buna uygun objeler dahil edildiğinde tam verim alınabilir. Bunun dışında harici bir motor desteği olmadan ne metin2 ne de metin2 gibi eski bir oyun tam anlamıyla dinamikleştirilemez.
Metin2 bir oyun motoruna sahip olmadan çalışan, yerel dosyaların(kodlar,packler vb.) ve kütüphanelerin(granny,directx vb.) birleşimiyle oluşmuş çok eski bir oyun. Ne kadar kod eklenilse eklensin, bir yerden sonra ilerlemeye zaten elverişli olmayacaktır. Yani yapılabilecekler kısıtlı. En basit örnekle Metin2 grafik dosyalarının neredeyse hepsi DXT1-DXT3 gibi dinamik olmayan sıkıştırılmış formatlardan oluşuyor ve bu dosyalar directx tarafından doğrudan desteklenen(yani müdahele edilebilen) dosyalar değildir.

Özetle, Mesela Metin2'yi bir oyun motoruna bağlamadan Directx12 ye de yükseltilse asla şöyle bir görüntü elde edilemez:
ss.jpg
 
knk yapabilirsin görüntü yapmak için source gelişmesi şart yoksa bu görüntü alamazsın elvette yapılıabilir zaman ister ama dx12 bu görüntüyü alabilecegini ben biliyom adım gibide eminim ama gelişmesi şart oyunda
 
Öncelikle merhaba, bu yorumum daha çok aşağıdaki bazı kısımları düzenleme gerektiğini düşündüğüm için yazdığım bir yorumdur. En altında ise konuya ve başarınız için naçizane yorumumu yapacağım elbette.
İstenildiği kadar kod eklensin. Directx bir oyun motoru değildir grafik motorudur ve genellikle uyumlu oyun motorlarıyla birleştirildiğinde ve buna uygun objeler dahil edildiğinde tam verim alınabilir. Bunun dışında harici bir motor desteği olmadan ne metin2 ne de metin2 gibi eski bir oyun tam anlamıyla dinamikleştirilemez.
Metin2 bir oyun motoruna sahip olmadan çalışan, yerel dosyaların(kodlar,packler vb.) ve kütüphanelerin(granny,directx vb.) birleşimiyle oluşmuş çok eski bir oyun. Ne kadar kod eklenilse eklensin, bir yerden sonra ilerlemeye zaten elverişli olmayacaktır. Yani yapılabilecekler kısıtlı. En basit örnekle Metin2 grafik dosyalarının neredeyse hepsi DXT1-DXT3 gibi dinamik olmayan sıkıştırılmış formatlardan oluşuyor ve bu dosyalar directx tarafından doğrudan desteklenen(yani müdahele edilebilen) dosyalar değildir.

Özetle, Mesela Metin2'yi bir oyun motoruna bağlamadan Directx12 ye de yükseltilse asla şöyle bir görüntü elde edilemez:
Teoriniz kısmen doğru, öncelikle DirectX bir grafik motoru değildir, çoğunluk ile Windows tabanlı oyun ve grafiksel uygulamaların geliştirilmesi için kullanılan asimetrik bir API'dir. DirectX sadece görselliğide değil işitsel ve network taraflı mm işlevlerini de son derece ayrıntılı kapsar ve ele allmanıza izin verir. Sadece grafik gözüyle bakmak doğru değildir. Grafik motorları (asla yalın değildir, kendi başına ismen bir grafik motoru olmaz) ise genellikle DirectX, OpenGL, Vulkan gibi API'ları kullanarak grafiklerin, fizik efektlern, ışıklandırmannın, görsel efektlerin ve oyun dünyasının oluşturulması ve yönetilmesi için bir çerçeve veya yazılım tabanı sunar. Harici bir motor desteğine ihtiyaç duymadan dinamikleştirilemez yaklaşımı da kesinlikle tam anlamıyla doğru değildir. Nextworld2 isimli Metin2 oyunu replikasıda aynı şekilde harici bir motor desteğine ihtiyaç duymadan oyunu dinamikleştirmiştir. Bununla birlikte ise oyun istemcisi kesinlikle hala webzen mimarisine sahiptir. Oyunu remake etmek için de grafik motoruna yada API'lere değilde daha çok hepsinin işlemesi tamamlanmış hepsi bir arada.. RP yada High Definition Render Pipeline (HDRP) ihtiyacınız var. Peki nedir bu HDRP, gerçekçi aydınlatma (ki en zor aşamalardan biridir, basitçe Enlighten şuan yüzbinlerce dolardan başlıyor), gölgelendirme, yansıma ve (FX) (gibi konularda mizuchi) hepsinin ortada olduğu(ortalama $2M) bir PBR/PP gerekir. Kaldı ki bizde şuan
Linkleri görebilmek için giriş yap veya kayıt ol.
kısmında özellikle real-time konusunda MetaEngine ile birlikte uygun PBR/PP entegrasyonu üzerinde çalışıyoruz.
knk yapabilirsin görüntü yapmak için source gelişmesi şart yoksa bu görüntü alamazsın elvette yapılıabilir zaman ister ama dx12 bu görüntüyü alabilecegini ben biliyom adım gibide eminim ama gelişmesi şart oyunda
- Emin olduğunuzu söylediğiniz için sormak istedim, DirectX 12'nin gelişmiş özellikleri görüntü işleme açısından oldukça etkileyici. Buna kesinlikle katılıyorum. DirectX 12'nin bu tür görüntü işleme yetenekleri için nasıl daha spesifik bir şekilde kullanılabilir? Örneğin, ray tracing veya derin öğrenme gibi gelişmiş tekniklerle, görüntü işleme performansını nasıl artırabilirsiniz? Özellikle GPU'nun asenkron hesaplamaları kullanılması durumunda, SRV, UAV vve CBV gibi kaynak görünümlerinin nasıl etkili bir şekilde yönetilebileceğini ve AMD veya NVIDIA'nın donanım özelliklerini nasıl en iyi şekilde kullanılabilir? Ayrıca, GPU tarafından gerçek zamanlı olarak işlenen görüntülerin CPU ile etkileşimini nasıl optimize edebilir ve ölçeklendirebilirsiniz? Soruyorum çünkü 'adım gibide eminim' demişsiniz fakat (varsa) teorinizi dahi sunmamışsınız. En azından pratikte bir teori bile sunarsanız belki insanlarda daha doğru bilgi edinebilir. Biz Cloud game engine yazıyoruz buna rağmen DX11'den çıkamadık, kaldı ki Rad Game Tools'den Granny, MSS gibi API'ler için tam kaynak lisansımız var. Metin2 gibi asenkron bir oyunda DX12'den nasıl bu kadar emin olabileceğinizi açıklar mısınız ? Bilmediğim bir konu varsa öğrenmek isterim.

Konuya yorumum:
Çalışmanızı tebrik ediyorum tekrardan gerçekten hoş bir görüntü elde edilmiş, dokuları middleware kullanarak 2k yükseltirseniz daha güzel ve pürüzsüz bir görüntü elde edeceğinizi düşünüyorum. ReShade konusunda size katılıyorum çünkü çoğunlukla oyun deneyimi kişiselleştirmek isteyenler için ideal daha çok bireysel bir çözüm. Çünkü oyun içi bir arayüz sunuyor bu server taraflı bir organizasyon için çok sağlıklı değil. Elbette RS etkisinin oyunun performansını bir hayli azaltmasıda cabası. Yorumluyorum çünkü önceden çoğunlukla 'Warz' oyununda post-processing için kullandık. Wrapper ise daha çok oyun kodundan bağımsız olduğundan oyuna etkisi daha az oluyor ancak RS göre ise daha sınırlıdır çünkü geniş bir efekt yelpazesi sunmaz. Fakat RS göre daha teknik ve karmaşık yönleri var. Üstesinden gelebilmeniz gerçekten etkileyici.
Şu an kritik sorun diyebileceğim şey, sol alttaki nesne marketi açınca directx aygıtı buga giriyor.
Bu probleminize daha ayrıntılı bir yanıt vermek adına event logs paylaşabilirseniz eğer çözüm bulmaya çalışılabilir. DirectX ile ilgili oluşan hatalar uyarılar çoğu zaman windowsun sistem günlüklerinde tutulur. Oyun loglarına yansımayabilir. Bunun için başlat menüsünden "Event Viewer" yada diğer adıyla Olay Görüntüleyici çalıştırın ve burada yer alan adımları takip edebilirsiniz;
Linkleri görebilmek için giriş yap veya kayıt ol.

Sonucu paylaşırsanız elimden geldiği kadar yardımcı olmaya çalışırım.

İyi çalışmalar, keyifli forumlar.
 
Son düzenleme:
Öncelikle merhaba, bu yorumum daha çok aşağıdaki bazı kısımları düzenleme gerektiğini düşündüğüm için yazdığım bir yorumdur. En altında ise konuya ve başarınız için naçizane yorumumu yapacağım elbette.

Teoriniz kısmen doğru, öncelikle DirectX bir grafik motoru değildir, çoğunluk ile Windows tabanlı oyun ve grafiksel uygulamaların geliştirilmesi için kullanılan asimetrik bir API'dir. DirectX sadece görselliğide değil işitsel ve network taraflı mm işlevlerini de son derece ayrıntılı kapsar ve ele allmanıza izin verir. Sadece grafik gözüyle bakmak doğru değildir. Grafik motorları (asla yalın değildir, kendi başına ismen bir grafik motoru olmaz) ise genellikle DirectX, OpenGL, Vulkan gibi API'ları kullanarak grafiklerin, fizik efektlern, ışıklandırmannın, görsel efektlerin ve oyun dünyasının oluşturulması ve yönetilmesi için bir çerçeve veya yazılım tabanı sunar. Harici bir motor desteğine ihtiyaç duymadan dinamikleştirilemez yaklaşımı da kesinlikle tam anlamıyla doğru değildir. Nextworld2 isimli Metin2 oyunu replikasıda aynı şekilde harici bir motor desteğine ihtiyaç duymadan oyunu dinamikleştirmiştir. Bununla birlikte ise oyun istemcisi kesinlikle hala webzen mimarisine sahiptir. Oyunu remake etmek için de grafik motoruna yada API'lere değilde daha çok hepsinin işlemesi tamamlanmış hepsi bir arada.. RP yada High Definition Render Pipeline (HDRP) ihtiyacınız var. Peki nedir bu HDRP, gerçekçi aydınlatma (ki en zor aşamalardan biridir, basitçe Enlighten şuan yüzbinlerce dolardan başlıyor), gölgelendirme, yansıma ve (FX) (gibi konularda mizuchi) hepsinin ortada olduğu(ortalama $2M) bir PBR/PP gerekir. Kaldı ki bizde şuan
Linkleri görebilmek için giriş yap veya kayıt ol.
kısmında özellikle real-time konusunda MetaEngine ile birlikte uygun PBR/PP entegrasyonu üzerinde çalışıyoruz.

- Emin olduğunuzu söylediğiniz için sormak istedim, DirectX 12'nin gelişmiş özellikleri görüntü işleme açısından oldukça etkileyici. Buna kesinlikle katılıyorum. DirectX 12'nin bu tür görüntü işleme yetenekleri için nasıl daha spesifik bir şekilde kullanılabilir? Örneğin, ray tracing veya derin öğrenme gibi gelişmiş tekniklerle, görüntü işleme performansını nasıl artırabilirsiniz? Özellikle GPU'nun asenkron hesaplamaları kullanılması durumunda, SRV, UAV vve CBV gibi kaynak görünümlerinin nasıl etkili bir şekilde yönetilebileceğini ve AMD veya NVIDIA'nın donanım özelliklerini nasıl en iyi şekilde kullanılabilir? Ayrıca, GPU tarafından gerçek zamanlı olarak işlenen görüntülerin CPU ile etkileşimini nasıl optimize edebilir ve ölçeklendirebilirsiniz? Soruyorum çünkü 'adım gibide eminim' demişsiniz fakat (varsa) teorinizi dahi sunmamışsınız. En azından pratikte bir teori bile sunarsanız belki insanlarda daha doğru bilgi edinebilir. Biz Cloud game engine yazıyoruz buna rağmen DX11'den çıkamadık, kaldı ki Rad Game Tools'den Granny, MSS gibi API'ler için tam kaynak lisansımız var. Metin2 gibi asenkron bir oyunda DX12'den nasıl bu kadar emin olabileceğinizi açıklar mısınız ? Bilmediğim bir konu varsa öğrenmek isterim.

Konuya yorumum:
Çalışmanızı tebrik ediyorum tekrardan gerçekten hoş bir görüntü elde edilmiş, dokuları middleware kullanarak 2k yükseltirseniz daha güzel ve pürüzsüz bir görüntü elde edeceğinizi düşünüyorum. ReShade konusunda size katılıyorum çünkü çoğunlukla oyun deneyimi kişiselleştirmek isteyenler için ideal daha çok bireysel bir çözüm. Çünkü oyun içi bir arayüz sunuyor bu server taraflı bir organizasyon için çok sağlıklı değil. Elbette RS etkisinin oyunun performansını bir hayli azaltmasıda cabası. Yorumluyorum çünkü önceden çoğunlukla 'Warz' oyununda post-processing için kullandık. Wrapper ise daha çok oyun kodundan bağımsız olduğundan oyuna etkisi daha az oluyor ancak RS göre ise daha sınırlıdır çünkü geniş bir efekt yelpazesi sunmaz. Fakat RS göre daha teknik ve karmaşık yönleri var. Üstesinden gelebilmeniz gerçekten etkileyici.

Bu probleminize daha ayrıntılı bir yanıt vermek adına event logs paylaşabilirseniz eğer çözüm bulmaya çalışılabilir. DirectX ile ilgili oluşan hatalar uyarılar çoğu zaman windowsun sistem günlüklerinde tutulur. Oyun loglarına yansımayabilir. Bunun için başlat menüsünden "Event Viewer" yada diğer adıyla Olay Görüntüleyici çalıştırın ve burada yer alan adımları takip edebilirsiniz;
Linkleri görebilmek için giriş yap veya kayıt ol.

Sonucu paylaşırsanız elimden geldiği kadar yardımcı olmaya çalışırım.

İyi çalışmalar, keyifli forumlar.
Öncelikle teşekkür ederim. Yorumun sonunda belirttiğiniz log takip olayını müsait zamanda deneyeceğim. Dün geceden beri mavi ekran hatalarıyla uğraşıp duruyorum, yeni format attım ve yedekleri henüz yüklemedim.

Konu hakkındaki yorumlarınıza gelecek olursak da, aslında ikimiz de aynı şeyden bahsediyoruz ancak telaffuz şeklimiz farklı sadece.
Bahsettiğiniz Nextworld2 isimi serverın görüntülerine baktım. Ve benim anlatmak istediğim şeyin tam olarak kanıtı diyebilirim. Yani sadece görsel iyileştirmeler ve efektler uygulanmış. Metin2 gibi bir oyuna da sadece directx ile en fazla bu kadarı yapılabilir. Benim anlatmak istediğim şey bu.
Ayrıca serverın görüntüsü, yine de yukarıda verdiğim görselin yanında aşırı sönük kalıyor bu bir gerçek.

Dinamikleştirmekten kastım, bütün sahneyi ele alan bir kavramdı. Mesela Metin2'de gerçekci bir rüzgar oluşturup ağaçları ve o ağacın dallarını ve gölgelerini rüzgara göre adapte etmek imkansız.
Bunun sebeplerine bakacak olursak:
1-) Metin2'nin dünya sahnesi böyle bir şeye uygun olamayacak kadar eski ve yapısı bunun için uygun değil.
2-) Görüntü formatları bu işlem için ne directx, ne de speedtree(yeni sürümleri) tarafından çalıştırılabilecek durumda değil.

Yani C++ tarafında dalların ve yaprakların hareketleri yazılsa bile, sahip olunan client yapısı, directx ve speedtree bu kodlara çok büyük bir ihtimalle olumlu cevap vermeyecektir. Dolayısıyla başarısız bir girişim olacaktır. Dinamiklikten kastım bu ve benzeri olaylardı. Yani Directx'in tek başına yapabilecekleri bir hayli fazla elbette, ancak söz konusu metin2 ise işin rengi değişiyor.

Daha iyi anlaşılması açısından şöyle bir örnek vermek istiyorum.

Counter Strike Source (2004)
0000000031.1920x1080.jpg

Crysis 1 (2005)
111.jpg

İki büyük markaya ait olan iki büyük oyun. İkisi de Directx9 kullanmakta ve aradaki fark bariz ortada.
Bu noktada motor farkı kendini ön plana çıkarıyor. Source vs CryEngine. Yani oyun motorunun var olması durumunda bile yapılabilecek bazı şeyler kısıtlı olabiliyorken, aynı yıllarda çıkmış ve oyun motorunun hiç olmadığı bir oyunda yapılabilecekleri şeyleri tahmin etmek pek zor değil açıkcası.
 
Bu probleminize daha ayrıntılı bir yanıt vermek adına event logs paylaşabilirseniz eğer çözüm bulmaya çalışılabilir. DirectX ile ilgili oluşan hatalar uyarılar çoğu zaman windowsun sistem günlüklerinde tutulur. Oyun loglarına yansımayabilir. Bunun için başlat menüsünden "Event Viewer" yada diğer adıyla Olay Görüntüleyici çalıştırın ve burada yer alan adımları takip edebilirsiniz;
Linkleri görebilmek için giriş yap veya kayıt ol.

Sonucu paylaşırsanız elimden geldiği kadar yardımcı olmaya çalışırım.

İyi çalışmalar, keyifli forumlar.
ben burdaki bugu çözümünü buldum tabi uzun süre ugraşma sonucu çözüme kavuştum birde DirectX ile iş bitmiyor tabiki görüntü kalitesi artımak için tam anlamında DirectX kullanmıyor oyun öncelik tam kapsamlı gelişmesi lazım
 
ş
İstenildiği kadar kod eklensin. Directx bir oyun motoru değildir grafik motorudur ve genellikle uyumlu oyun motorlarıyla birleştirildiğinde ve buna uygun objeler dahil edildiğinde tam verim alınabilir. Bunun dışında harici bir motor desteği olmadan ne metin2 ne de metin2 gibi eski bir oyun tam anlamıyla dinamikleştirilemez.
Metin2 bir oyun motoruna sahip olmadan çalışan, yerel dosyaların(kodlar,packler vb.) ve kütüphanelerin(granny,directx vb.) birleşimiyle oluşmuş çok eski bir oyun. Ne kadar kod eklenilse eklensin, bir yerden sonra ilerlemeye zaten elverişli olmayacaktır. Yani yapılabilecekler kısıtlı. En basit örnekle Metin2 grafik dosyalarının neredeyse hepsi DXT1-DXT3 gibi dinamik olmayan sıkıştırılmış formatlardan oluşuyor ve bu dosyalar directx tarafından doğrudan desteklenen(yani müdahele edilebilen) dosyalar değildir.

Özetle, Mesela Metin2'yi bir oyun motoruna bağlamadan Directx12 ye de yükseltilse asla şöyle bir görüntü elde edilemez:
ss.jpg
şu görüntü muazzam gerçekten bunu bu dosyalarla yapmak mümkün olmaz sanırım. Şuanki güncel oyunlar gibi grafik kalitesi var keşke şöyle bir oyunda oynasak birde buna 1.görüş eklenecek uff oyun zevkine bak
 
Sonunda Anti-Aliasing'ı dahili olarak client src ye ekleyebildim.
Bu işlemde hiç bir wrapper vb. kullanmadım, sadece source üzerinden yapıldı. Bunun en büyük avantajı ise, wrapper kullanınca sahnedeki bütün objelere uygulanıyordu. Text öğeleri de dahil. Dolayısı ile ufakta olsa pürüzler oluşuyordu.
Uzun zamandır da yapmak istediğim asıl şey de buydu zaten.; kötü görünen pürüzleri yok etmek.
Tabi şu anki haliyle minimum 8x anti-aliasing destekli ekran kartında oyun açılacaktır. Bununla ilgili gerekli kontrolleri henüz eklemedim.
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.

Bu noktadan sonra bir çok düzenleme yapmam gerekecek. Sonrasında ise işin efekt kısmı kalıyor geriye.

Şimdilik tespit ettiğim uyuşmazlıklar:
- Nesne market açınca crash yiyor
- Thinboard objesi bozuldu
- Bazı skill efektlerinde parazitler oluştu

Orjinal:
Adsız.png
Anti-aliasing 8x:
Adsız2.png
 
Sonunda Anti-Aliasing'ı dahili olarak client src ye ekleyebildim.
Bu işlemde hiç bir wrapper vb. kullanmadım, sadece source üzerinden yapıldı. Bunun en büyük avantajı ise, wrapper kullanınca sahnedeki bütün objelere uygulanıyordu. Text öğeleri de dahil. Dolayısı ile ufakta olsa pürüzler oluşuyordu.
Uzun zamandır da yapmak istediğim asıl şey de buydu zaten.; kötü görünen pürüzleri yok etmek.
Tabi şu anki haliyle minimum 8x anti-aliasing destekli ekran kartında oyun açılacaktır. Bununla ilgili gerekli kontrolleri henüz eklemedim.
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.

Bu noktadan sonra bir çok düzenleme yapmam gerekecek. Sonrasında ise işin efekt kısmı kalıyor geriye.

Şimdilik tespit ettiğim uyuşmazlıklar:
- Nesne market açınca crash yiyor
- Thinboard objesi bozuldu
- Bazı skill efektlerinde parazitler oluştu

Orjinal:
Anti-aliasing 8x:
Farklı bi thinboard ya da skill efekti kullanınca sorun devam ediyor mu hocam
 
Farklı bi thinboard ya da skill efekti kullanınca sorun devam ediyor mu hocam
Thinboard tahminimce çözülebilir ama skill efektleri biraz sıkıntı gibi. Farklı efektler denedim ama sonuç pek tatmin etmedi.
Buna farklı bir çözüm yolu deneyeceğim, çünkü sadece skillerde değil bazı haritalarda da bir çok efektler olabiliyor. (En basit örnekle doyum paperdeki volkanlar) Her haritadaki her efekti tek tek bozulmuş mu diye kontrol etmek yerine skilleri anti-aliasing ın dışına çıkarmam daha sağlıklı olacaktır. Ya da başka bir pratik bir çözüm...
 
Thinboard tahminimce çözülebilir ama skill efektleri biraz sıkıntı gibi. Farklı efektler denedim ama sonuç pek tatmin etmedi.
Buna farklı bir çözüm yolu deneyeceğim, çünkü sadece skillerde değil bazı haritalarda da bir çok efektler olabiliyor. (En basit örnekle doyum paperdeki volkanlar) Her haritadaki her efekti tek tek bozulmuş mu diye kontrol etmek yerine skilleri anti-aliasing ın dışına çıkarmam daha sağlıklı olacaktır. Ya da başka bir pratik bir çözüm...
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 is an open source C++ library for reading, writing and manipulating a variety of standard particle formats (GEO, BGEO, PTC, PDB, PDA).
Partio has a Python API and a collection of simple command-line tools.
  • Supports Houdini's GEO and BGEO, Maya's PDB and PDA, RenderMan's PTC
  • Arbitrary back end in-memory/cached formats can be supported from a single interface
  • A Python API for easy scripting of particle manipulation
  • A C++ API for high performance particle manipulation
  • Nearest Neighbor Lookups for density estimation, Voronoi computation, etc.

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.
 
Geri
Üst