Sunday, August 25, 2013


c++ ile directx e baslayacaklar.



[postlink]http://net4story.blogspot.com/2013/08/c-ile-directx-e-baslayacaklar.html[/postlink]bircogumuz directx programlama lafini duyunca once urkmus sonra konuyu kapatmisizdir. ama katildigim 3dmax kursundan sonra elime aldigim directx kitabinda eksik oldugum kisimlarin aslinda isin programlama yonunde degil 3d tasarim yonunde oldugunu farkettim.

directx e baslamak icin oncelikle 3d tasarim programlarindan birine en azindan giris seviye hakim olmanizi oneriyorum. en basitinden camera ayarlarinda yaw ve pitch i gorunce cok zor bu diye projeyi kapatmak yerine ikisinin cok basit bir polar koordinat sistemi elemani oldugunu anlarsiniz.

vel hasil kelam 3d kursundan geldikten sonra (kursa 3 hafta dayanabildim) aslinda oyunlarda yada ozel tasarimlarda gordugumuz mukemmel isiklandirmalarin gercekci malzeme tasarimlarinin %99 olarak hazir komponentler ile olusturulabilecegine emin oldum.

ve bir oyun programlamadaki en korktugum nokta olan 3d tasarim konusunu ogrenmis oldum.

arastirdigim kadariyla 3d mmorpg oyun tasarimin temelleri ve ana ogeleri hakkinda bilgi vermeye calisayim.

ilgi alani olarak mmorpg sectigim icin ona gore bilgi vericem tum online oyunlarin exe tiklandiktan sonraki calisma asamasina gore tasarim sablonu olusturalim.

1- sinematik
2- giris ekrani
3- server secim
4.1- karakter olusturma
4.2- karakter secim
5- ana oyun sahnesi

1: sinematik kismi icin genellikle ekstra bir caba gerekmez hazir vide dosyalari oynatilip sonunda bir sonraki giris ekrani olusturulur.

2: giris ekrani : server ile iletisim yapilarinin olusturuldugu ve degisken set edilmeye baslandigi kisimdir. genellikle arka planda hareket eden sinematik onunde 2 boyutlu olarak olusturmus text alanlari ve buttonlardan olusur. directx e baslamak ve 2 boyutlu cizimler ve texture leri ogrenmek icin iyi bir baslangic olabilir.

3: bu ekranda bir onceki giris ekrani gibi texture ve 2d layerlardan olusur. onceki kisimdan farki ise ekrana goruntulenecek server isimleri ip adresleri vs nin dinamik olarak serverdan gelmis olmasidir.

4:1 4:2 bu iki kisimda genel oyun motorunun temel parcalarindan olan karakterin 3d olarak render edilmesi gerekir ve 3d tasarim ile ilk karsilasacagimiz yer burasidir. ilk 3 asamai asmak kolay olsada sifirdan directx e baslayan biri icin asil duz duvara tirmanma kismi burada baslayacaktir cunku oyunun genel noktalarindan biri olan akrakter tasarimlarina baslamak gereklidir.

5: bu asmada artik devreye hersey girmistir. kullanicinin karakter sistem tarafindan olusturulan NPC(non player character) ler daglar ytepeler objeler hava durumu efektleri gokyuzu vs vs bu asmaya gelindiginde oyun tasariminin %10 luk kismi anca bitmis olup asil macera burada baslamaktadir. bu konuda bi yol haritasi cizmek istersek bence :

1 - terrain : tasarima baslamak icin oncelikle tum herseyin uzerinde sekillenecegi yeryuzunu tasarlayip onu 3 boyutlu referans yuzey olarak kullanmaliyiz. tabi burada oyunun yercekimli bir ortamda yer ile etkilesim halinde olan karakterler uzerinden sekillenecegini varsayarak konusuyorum.

2- nesneler : teorik olarak yeryuzu bircok fiziksel hesaplama fonksiyonunda kullanilacagi icin uzerindeki bazi onemli detaylari (tas, agac ,duvar, ev) olusturulmus yeryuzune sonradan eklememiz gerekmektedir. burada ayirim noktasi olarak kullanici ile etkilesime girmesi gereken nesneler diye bir tanimlama yapabiliriz. ornegin bir tas karakterin yurumesini engelleyecegi icin terrain den ayri olarak tanimlamasi genel duzende iyi olucaktir.

3- UI(User Interface) : ui temelde kullanicilarin bizim tasarlayip render ettigimiz dunya ile etkilesime girmesini saglayan skill kullanma hareket etme esya barindirma can mana vs vs vs gibi durumlarda bilgi almak yada etkilesim yapmak icin kullandigi menuler toplulugudur. burada genel programa bilgisine sahip olanlar bu menulerin ana elementlerininn buttonlar editbox lar yada progressbarlar oldugunu anlamistir. tasarim sistemi olarak genelde UI 2d tasarimlar uzerine ilerler.

4- karakter : burada bu kavram tanim geregi kendi karakterimizi npcleri ve diger karakterleri tamamen icine alir. esnek bir programlama yapisi kullanmak icin tum karakterlerin ayni yapida olmasi cok onemlidir. egerki npc kendi karakterimiz ve diger karakterler icin . 3 farkli veri yapisi kullanirsak anlasilacagi gibi isimiz 3 misli artacaktir.

simdlilk genel kultur seviyesinde buradaki terimlerin ve bilgilerin bazilarinizin kafasindaki sorulari cevaplayacagini umuyorum.

directx terrain yapilari hakkinda bugun buldugum bu (RasterTek - DirectX 10 and DirectX 11 Tutorials) kaynak uzerine bu konuyu acma istegi duydum bu ise ilgili arkadaslarin hicbirseyden korkmadan ilerlemesini istiyorum.

0 yorum:

Post a Comment