Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DirectX za 2D igre?

[es] :: GameDev - Razvoj Igara :: DirectX za 2D igre?

[ Pregleda: 4013 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.191.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon DirectX za 2D igre?04.10.2007. u 20:44 - pre 184 meseci
Posto ne planiram da radim 3D (ne uskoro) zanima me isplativost ucenja celog DirectX-a ako bi samo radio 2D dali bi bilo bolje da recimo radim na SDL-u? i dali uopste moze da se radi 2D igra na DirectX-u ( znam da moze ali dali je preporucljivo ).
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: DirectX za 2D igre?04.10.2007. u 21:29 - pre 184 meseci
Da. Koristi SDL dok ne završiš igru. Kasnije možeš da je prebaciš na DX ako je stvarno neophodno.

 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
*.89.eunet.yu.

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: DirectX za 2D igre?05.10.2007. u 19:53 - pre 184 meseci
Kako mislis "prebacim"... pa zazr to nisu 2 totalno razlicite stvari... SDL je baziran na OpenGL-u a prebacivanje sa OpenGL-a na DX ne znam dali je izvodljivo. osim ako si mislio da ponovo pisem ceo kod :)
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1339
..w.sh.dynamic.163data.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+46 Profil

icon Re: DirectX za 2D igre?06.10.2007. u 05:24 - pre 184 meseci
Prvo napišeš interfejs između tvoje igre i tvoje biblioteke za crtanje (SDL ili DX).
Šta će se kasnije naći u tvojoj biblioteci za crtanje nije bitno za igru.

 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
*.vozd.net.

ICQ: 208550327


+14 Profil

icon Re: DirectX za 2D igre?03.11.2007. u 00:37 - pre 183 meseci
Hmm... ja sam probao neshto ovako...

Imam klasu Engine... Na pocetku sam radio sa obicnim GUI-jem pa sam posle zeleo da odradim u DirectX-u...

Kako najbolje da se implementira ta modularnost?

Code:


CActor
{
     virtual void Draw(CEngine * pEngine);

     // Sta raditi sa ovim?????
     CPoint pos; // za mfc
     D3DXVECTOR pos; // za DirectX  

// mozda moze pomocu define-a

#ifdef 2D
     CPoint pos;
#else 
     D3DXVECTOR pos;
#endif

}

....

CEngine
{
  // bla bla
}

CGUIEngine : public CEngine
{
  // bli bli
}

CDirectXEngine : public CEngine
{
 // blu blu
}



Velika je razlika izmedju GUI-a i DirectX-a... Sta bi onda trebalo da stoji u CActor::Draw() ??

Glavno pitanje... Kako dizajnirati ovo da se postigne potpuna ( ako je to moguce ) modularnost?

Some ideas??

EOF
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
*.san.res.rr.com.

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: DirectX za 2D igre?03.11.2007. u 05:59 - pre 183 meseci
Najbolje je da kreiraš sopstvenu vector ili point klasu (zavisi koliko želiš da budeš matematički korektan ;) i da te CGUIEngine i CDirectXEngine znaju da to prebace u njihovu reprezintaciju. Takođe preporučujem ti da Draw metod iz CActor klase prebaciš u CEngine klasu da bi imao što manje koda specifičnog za neku platformu u CActor klasi. Ako ostaviš Draw u CActor klasi trebaćeš da kreiraš apstrakciju engine-a na veoma niskom nivou koja obično nije efikasna (tipa drawprimitive, settexture, setshader, itd.), ili da imaš dosta koda specifičnog za svaku platformu za koju praviš igru u samoj CActor klasi.

 
Odgovor na temu

reject
Ivan Pesic
Bgd

Član broj: 7659
Poruke: 2209
*.ptt.yu.

Sajt: misc.comli.com


Profil

icon Re: DirectX za 2D igre?03.11.2007. u 12:44 - pre 183 meseci
Ajde ovako (mada su ti sve ovo isto rekli i tosa i bkaradzic):

Klasa Actor (agent, character, sta god) ima podatke o sebi koji su vezani za gameplay (energija, iskustvo, sta god...),
kao i minimalan, a dovoljan broj informacija o crtanju sebe (ime/id texture gde su mu frejmovi, trenutna pozicija na nivou,
trenutno stanje (trci, skace, puca, umro je...) i slicno), kao i podataka vezanih za "fiziku" (sirina, visina, masa...).

Klasa TextureManager (ili slicno) se bavi ucitavanjem i drzanjem textura u memoriji, kao i njihovih id-ova/imena, a od nje
render uzima i crta iste. Potrebne texture bi trebalo da budu popisane u fajlu koji predstavlja nivo igre, a treba ti i neki
fajl gde su popisane osnovne, uvek potrebne texture.

Klasa Camera uzima poziciju od lika (stvari, cega kod) kog trenutno pratimo i od nivoa uzima samo vidljive delove ekrana
(ili samo gleda gde su gornji levi i donji desni tajl pozadine) i vidljive likove u trenutnom frejmu.

Klasa Render uzima podatke od kamere (koje tajlove treba da iscrta), od likova koji se vide sve podatke
potrebne za render (koji frejm je aktivan, gde su na ekranu, koji efekat je aktivan i u kom je frejmu...), a od texturemanagera
texture koje treba da iscrta i onda samo redom nacrta sve sta treba.

Samo apdejtuj sve ovo (osim texture managera koji na startu igre/nivoa ucita sta mu treba i samo daje pointere na
texture kad mu render trazi) u svakom (ili kako ti vec za koga odgovara) frejmu i to bi bilo otprilike to (fali jos gui i nesto
sto bi brinulo o samoj igri (o neprijateljima i skriptama...), ali to je druga prica).

Sta je fora? Actor nema pojma da li ga renderuje directX, openGL ili nesto trece, samo zna gde je i kako mu se textura
zove. Camera takodje nema pojma o nacinu crtanja. Ovako su Texture Manager i Render jedini koji su vezani za nacin
crtanja i ukoliko se sa openGL-a prelazi na directX ili nesto drugo, samo se oni menjaju. Takodje mozes sebi jasno da
nacrtas na papiru koja klasa je vezana sa kojom i kako.

Ukoliko bi Actor drzao svoju texturu i pri apdejtu sam gledao da li je u ekranu, pa zatim crtao sam sebe, onda on ne bi
bio odvojen od crtanja i bilo kakve promene u crtanju bi zahtevale promene i na njemu. To sve postaje veoma konfuzno
kad imas gomilu razlicitih klasa koje se manje/vise crtaju isto ili slicno (propovi (drvece) su pozadina, ali imaju dosta
stvari srodnih sa likovima, iako se ne krecu po nivou i vezani su za tajl gde su postavljeni na nivou, mogu da imaju animaciju
i efekte(kad se zapali) recimo).

Mass murder ain’t just painless,
Now we’ve made it cute.


The Church Of The Holy Transistor
 
Odgovor na temu

reject
Ivan Pesic
Bgd

Član broj: 7659
Poruke: 2209
*.ptt.yu.

Sajt: misc.comli.com


Profil

icon Re: DirectX za 2D igre?03.11.2007. u 12:59 - pre 183 meseci
Evo jos jednog primera zasto je bolje ovako nego onako.
Recimo da imas od 1 do 4 igraca. Onda imas i 1 do 4 kamere. I sve se to apdejtuje, a render (zavisno od broja aktivnih kamera)
deli ekran na 2,3 ili 4 dela i renderuje likove/propove/pozadinu u razlicitoj velicini.
Ovo bi bilo malo komplikovano naraviti da bude jednostavno :D ako bi likovi crtali sami sebe jer bi onda lik morao da zna i broj
aktivnih igraca i kako se trenutno deli ekran i kako ce sad da se crta u kojoj velicini. Onda bi i klasa koja drzi nivo morala da zna
broj igraca i sve ostalo jer sama crta svoje tajlove.
Boze koliko sam zaludan kad sam na bolovanju... :D
Mass murder ain’t just painless,
Now we’ve made it cute.


The Church Of The Holy Transistor
 
Odgovor na temu

yaelo
Rajko Vojnović
Beograd

Član broj: 78087
Poruke: 153
*.smin-1.sezampro.yu.



+9 Profil

icon Re: DirectX za 2D igre?03.11.2007. u 18:57 - pre 183 meseci
Možda bi bilo dobro da nadješ neku uvodnu knjigu o DirectX-u. Na primer Introduction to 3D game programming with DirectX 9 od Frank Luna. Takodje bih preporučio nešto za OOP i design patterns - Design Patterns: Elements of Reusable Object-Oriented Software. Srećno.
 
Odgovor na temu

[es] :: GameDev - Razvoj Igara :: DirectX za 2D igre?

[ Pregleda: 4013 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.