Kako programirati igru

poruka: 8
|
čitano: 8.694
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Kako programirati igru?

Evo ovih dana sam počeo praviti svoju prvu pravu igru, napravio kostur i sad samo treba implementirati gameplay. No to nije lako.

Ja sam savladao obično programiranje, no kad pišeš nešto što se izvodi 60 puta u sekundi, stvari se mjenjaju. Kad sam krenuo implementirati gore navedeni gameplay, nastali su problemi i pojavila su se pitanja. Zabrinuo sam se. Sve je tako drugačije. Ja ni najednostavnije probleme ovako nemogu rješavati. Nije da neznam, ali jednostavno nemogu pronaći elegantno rješenje. Sve zahtjeva petsto if grananja i tisuću brojača.

Ja ću vam pokazati par problema s kojima se sad mučim, pa mi recite kako biste vi to napravili, i, ako je moguće, preporučiti kako se inače boriti s ovim problemima (daj čovjeku ribu i bit će sit jedan dan, nauči ga pecati i bit će sit cjeli život).

 

Naredba koja se izvede jednom  - dakle imam jednu naredbu i želim da se izvede samo jednom, a ne 60 puta u sekundi.

Prolaženje kroz liste i polja - ja volim liste i puno ih koristim, no ako želim ići kroz liste u ovakvoj okolini moram imati nešto što pamti koje je trenutni element, i if petlju da se to kolanje zaustavi na kraju

Vrjeme - nemam načina za reći programu "hej, sjedi i čekaj 20 stepova", nego moram napraviti brojač koji se svak step povećava za jedan i if petlju koja provjerava jeli dostigao željenu visinu te restartati ga kad sam gotov

 

Znam da ima još problema koji će me mučiti. Osjećam se kao kad su mi tamo negdje u trećem razredu pokazali monoženje troznamenkastih brojeva i mislio sam si "Jeli ovo zaista tako teško? Mora postojati lakši način!"

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Kako programirati igru

1- da se izvedne samo jednom u tzv. mainu ili samo jednom u minuti 

2- neznam, napravi listu i current dio velke liste spremi u tu novu listu :P

3- ok nekuzim sta je tu pitanje ?

Moj PC  
0 0 hvala 1
17 godina
protjeran
offline
Kako programirati igru

Koristi Timer koji fostavlja neki flag ili/i tehnike asihronog prigramiranja.

Liste ponekad nisu najbolje, možda da koristiš HashTable strukturu; Možda s anonimnim funkcijama.

Ne koristi stepove, koristi štopericu za FPS  i računaj koliko bi objekt trebao preći u određenom vremenu od početka sekvence ili u odnosu na prethodni frame.  

Programko http://programko.bloger.hr
 
1 0 hvala 1
14 godina
neaktivan
offline
Re: Kako programirati igru

slobodno ti napišeš u kojem jeziku programiraš i koje si stvari uopće savladao,te kakvu igru pokušavaš napraviti.

15 godina
neaktivan
offline
Kako programirati igru

Koliko vidim tebe muči game loop, znaći u game loop želiš strpati sve evente.

 

Jedan forumaš je postavio dobro pitanje, a to je u čem radiš ? Ako radiš u C#u onda ti je moj prijedlog da ideš na XNA , zato što već imaš metodu Update koja ti može poslužiti za svojevrsni game loop.

 

Inače neovisno o bilo kojem frameworku kod igri bitan je neki redosljed, ako radiš proceduralno bez multi threadowa. Znaći u prvom slučaju igra mora imati sljedeće

 

1)inicijalizacija, znači postavljanje početnih vrijednosti , kod inicijalizacije strpaš u main proceduru, ako recimo radiš u Cu ili C++u, recimo u inicijalizaciji učitaš mapu, modele, zvukove isl.

2)game loop , petlja koja če ti se vrtjet do nekog prekida, za tu potrebu koristi while petlju, znaći na početku petlje stavi uvijet npr. game end isl i vrti unutar petlje .Game Loop je sam po sebi nasloženiji dio igre, te u njem radiš sljedeće:

a) definiraš vrijeme prolaza unutar kojeg definiraš sve translacije objekata, fiziku itd...

b) definiraš render, znaći s obzirom na prvi korak renderiraš objekte

c) korisnički unos, znači pratiš ulaz sa kontrolera, a to može biti miš, tipkovnica, gamepad itd...

i tako u krug .

 

Drugi način je multithread ili višenitnost, ali to je malo kompliciraniji korak , kad savladaš ovo prvo onda kreni na multithredanje aplikacije.

 

PS.

ovdje : http://www.codeproject.com/Articles/44203/Game-Engine imaš jedan moj stari primjer koda, programski jezik C# , TV3D framework (baziran oko DXa) pa vidi iz primjera možda ti štogod pomogne.

 

 

 

 

 

 

 
2 0 hvala 2
15 godina
neaktivan
offline
Re: Kako programirati igru
Programko kaže...

Koristi Timer koji fostavlja neki flag ili/i tehnike asihronog prigramiranja.

Liste ponekad nisu najbolje, možda da koristiš HashTable strukturu; Možda s anonimnim funkcijama.

Ne koristi stepove, koristi štopericu za FPS   i računaj koliko bi objekt trebao preći u određenom vremenu od početka sekvence ili u odnosu na prethodni frame.

  Neznam što su flagovi, ashirono programiranje, HashTable, anonimne funkcije.

Kao što sam rekao, ovo mi je prva prava igra, dakle prva igra izvan gamemakera. Proguglat ću neke pojmove, vidjet ću što mogu s tim.

 

Duxy007 kaže...

slobodno ti napišeš u kojem jeziku programiraš i koje si stvari uopće savladao,te kakvu igru pokušavaš napraviti.

 

woodgamesfx kaže...

Koliko vidim tebe muči game loop, znaći u game loop želiš strpati sve evente.

 

 

Odgovor obojici je: C# + XNA

Pokušavam napraviti, čisto za vježbu, jedan "Simon says" klon. Ovako nešto: http://www.albinoblacksheep.com/games/simon

Ja ću vam ljepo upload-ati moj source kod, u kojemu ću napisati (na kraju Game1 klase) što želim da igra radi.

Evo ga:   https://www.box.com/s/85e55d068be92f34fa3c

Pa mi recite kako biste vi to izveli. BTW, samo da nebude zabune, ja ne tražim gotov kod, samo savjet

Poruka je uređivana zadnji put pon 30.4.2012 13:46 (King of Games).
13 godina
neaktivan
offline
Kako programirati igru

Dali imaju neki tutoriali na nasem jeziku za pyGame, imam neko znanje u py .. pa da pokusam da napravim 2d igru :)

[code]http://www.pygame.org/news.html[/code]

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Kako programirati igru
PanikA kaže...

Dali imaju neki tutoriali na nasem jeziku za pyGame, imam neko znanje u py .. pa da pokusam da napravim 2d igru :)

Sumnjam. Uostalom, bez dobrog poznavanja engleskog jezika nemaš što tražiti u IT-u.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice