Kako napraviti igru

poruka: 578
|
čitano: 254.067
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Kako napraviti igru

Jednostavnije bi ti bilo sa arrayem, no dobro.

Prije svega, treba ti funkcija za random brojeve, koja se nalazi u cstdlib, pa na pocetak filea dodaj

#include <cstdlib>

 

Prvo inicijaliziras pseudogenerator:
srand(1); // Ovdje umjesto 1 stavi koji god broj zelis

 

Nakon toga trazis random broj:

int randomBroj = rand();

 

Nakon toga malo matematike, da gurnes broj unutar odgovarajucih granica:

int kojuKartuIzbaciti = ((float)randomBroj / RAND_MAX) * brojKarata; // Mislim da si rekao da je broj karata 4 ili 5;

 

Sad kad imas index u kartu, da imas array bilo bi jednostavno:

karte[kojuKartuIzbaciti - 1]; // -1 zato jer brojis od nule

 

S obzirom da nemas array, switch:

switch(kojuKartuIzbaciti) {

case 1:

   izbaci prvu kartu

   break;

case 2:

   izbaci drugu kartu

   break;

.....

}

 

It is loneliness that makes the loudest noise... This is true of men as of dogs... - Eric Hoffer \n http://alone.pleasantnightmare.com
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Kako napraviti igru
Deus ex machina kaže...

S obzirom da nemas array, switch:

switch(kojuKartuIzbaciti) {

case 1:

   izbaci prvu kartu

   break;

case 2:

   izbaci drugu kartu

   break;

.....

}

 

E vidis sad, al kod switcha moram recimo ako mi je

prva karta 1 i ako izaberem case 1 onda mi nece biti

randomno...

evo recimo kad mi je program zavrsen

poslije 1 runde (ako izgubim

ili pobijedim ) onda ja ocu da mi automatski

nazad napravi postupak kao na prvoj

samo s drugacijim brojevima... da jump -a..

stim jamislim da mogu korsititi goto naredbu

i tako napravit infinite loop i s switch naredbom

exit... Al mi sad treba za svaku rundu drugacije karte.

AOM... (mmm)
Poruka je uređivana zadnji put pet 30.9.2011 22:15 (Games 4 life).
15 godina
neaktivan
offline
Kako napraviti igru

Iskoristi onaj dio koda koji koristi rand() da nafilas varijable za karte.

Sto se tice razlicitih pocetnih brojeva, srand mora imati drugaciji broj. Ljudi cesto koriste vrijeme pokretanja:

 

#include <ctime>

srand(time(NULL));

It is loneliness that makes the loudest noise... This is true of men as of dogs... - Eric Hoffer \n http://alone.pleasantnightmare.com
 
3 0 hvala 1
13 godina
neaktivan
offline
Re: Kako napraviti igru

Ok...Sad cu jos malo vjezbat C++, a

kasnije ću ući malo dublje u opengl...

I onda cu probat nesto napraviti...

Ak bum zatrebal pomoc, javim :D.

AOM... (mmm)
12 godina
neaktivan
offline
kako napraviti strategisku igricu ?

Ja imam ideju kako napraviti igricu koja je strategiska kao npr lol (league of legends) ako neko zna kako je napraviti i program koj je dosta pjednostavljen ili bilo koj u kojem se ta igrica moze napraviti. Take likove mape itd...neka mi javi.. hvala        

 

 

ps (ali nebi bila cijela kao lol )

 

 
0 0 hvala 0
13 godina
offline
Re: kako napraviti strategisku igricu ?

Koji je tvoj cilj? Zašto želiš izraditi tu igru?

 

Isreno, ideja ti je loša, nadam se da imaš dobar razlog?

12 godina
neaktivan
offline
Re: kako napraviti strategisku igricu ?

Desni klik na shortcut od LoL-a i rename, potom staviti proizvoljan naziv igre i voila.

 

(ono što želim reći da izrada takve igre zahtijeva tim i više mjeseci rada)

12 godina
neaktivan
offline
Kako napraviti igru

imate 3d rad player imas sve spremno pa onda kombinujes.Prvo izaberes projekat u 3d rad empty spaca editujes i sacuvas.onda udjes u 3d rad complier konvertujes i igras.

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Kako napraviti igru

ovako mozes da napravis mnogo dobru igricu uspomoc poluautomaskih programa kao sto su 3d rad,ili jednostavno da uspomoc pocetnickih programa da napravis tetris ili tako nesto.

12 godina
neaktivan
offline
Kako napraviti igru

To je sr*nje radit s tim poluautomatskim alatima . Uzivancija i ponos je kad ti to napravis preko koda , u nekom programskom jeziku :D

 
1 0 hvala 1
15 godina
neaktivan
offline
Re: Kako napraviti igru
Fuhrer kaže...

To je sr*nje radit s tim poluautomatskim alatima . Uzivancija i ponos je kad ti to napravis preko koda , u nekom programskom jeziku :D

Objasni mi razliku profesionalnog SDK editora (npr. UDK) i ovakvih manjih programa kao sto su gamemakeri.

 

Kod nije igra.

To be purified in fire - anesthetic for the pain... as the final words erupt from your mouth - who will remember your name?
12 godina
neaktivan
offline
Re: Kako napraviti igru

najlakše ti je radit u 3d game makeru

 

16 godina
neaktivan
offline
Re: Kako napraviti igru
Deus ex machina kaže...
Fuhrer kaže...

To je sr*nje radit s tim poluautomatskim alatima . Uzivancija i ponos je kad ti to napravis preko koda , u nekom programskom jeziku :D

Objasni mi razliku profesionalnog SDK editora (npr. UDK) i ovakvih manjih programa kao sto su gamemakeri.

 

Kod nije igra.

"Kod nije igra." - Isto tako, kisik nije plin.

0100001001101111011010100110000101101110
15 godina
neaktivan
offline
Re: Kako napraviti igru
Boky kaže...

"Kod nije igra." - Isto tako, kisik nije plin.

Kisik moze biti i plin i tekucina, however - kod jos uvijek nije igra, niti ce ikada biti.

We are the ones that will open your mind, leave the weak and the haunted behind
16 godina
neaktivan
offline
Kako napraviti igru

Ne postji niti jedna računalna, konzolna ili mobilna igra na svijetu koju ne pokreće neki kompajlirani kôd. Kad se isprogramira igra, možete reći da ste je vi napravili. Ako koristite neke game makere, onda možete slobodno reći da je netko igru napravio za vas jer se i tu vrti neki kôd.

0100001001101111011010100110000101101110
Moj PC  
2 0 hvala 0
15 godina
neaktivan
offline
Re: Kako napraviti igru
Boky kaže...

Ne postji niti jedna računalna, konzolna ili mobilna igra na svijetu koju ne pokreće neki kompajlirani kôd. Kad se isprogramira igra, možete reći da ste je vi napravili. Ako koristite neke game makere, onda možete slobodno reći da je netko igru napravio za vas jer se i tu vrti neki kôd.

Ne postoji takva stvar kao sto je 'isprogramirati igru'. Isprogramirati mozes engine, na sto otprilike otpada manje od 15% posla, a u danasnje vrijeme 0% jer vecinom se engine licencira od drugih.

Po tebi, dakle, veliki AAA naslovi kao primjerice Batman:AA su napravljeni od strane Epica, a ne od strane Rocksteadya jer eto, zlusretni Rocksteady koriste UDK koji je razvijen u Epicu.

 

Ne siri dezinformacije i mitove, nego se informiraj - idealno probaj nesto napraviti sam, pa kad zavrsis na (losoj i neupotrebljivoj) kopiji game makera, onda se javi ovdje da ti objasnimo kako to napraviti bolje.

We are the ones that will open your mind, leave the weak and the haunted behind
16 godina
neaktivan
offline
Kako napraviti igru

Ja bi rekao da ovo najbolje opisuje shemu modernih igara: http://www.ibm.com/developerworks/opensource/library/os-physicsengines/figure1.gif

Za one koje ne znaju, postoje biblioteke za graphics engine (npr. Irrlicht, OpenB3D, RAGE...), physics engine (npr. Bullet, Havok, Newton...), sound engine (npr. BASS,  FMOD...). Naravno, zašto ne koristiti već napravljenu infrastukturu za igru, nitko nije lud skroz ispočetka raditi. Kad bi netko radio ispočetka, pa to je odprilike kao da pišemo neki program u assembleru, za OS kao što je windows. Čemu to kad je jednostavnije u nekom jeziku višeg stupnja. U game loop-u se programira kako se što ponaša u igri, po tome se razlikuje profesionalna igra od neke početničke napravljene drag and drop tehnikom pomoću gotovih alata.

0100001001101111011010100110000101101110
Moj PC  
0 1 hvala 0
15 godina
neaktivan
offline
Re: Kako napraviti igru
Boky kaže...

Ja bi rekao da ovo najbolje opisuje shemu modernih igara: http://www.ibm.com/developerworks/opensource/library/os-physicsengines/figure1.gif

Za one koje ne znaju, postoje biblioteke za graphics engine (npr. Irrlicht, OpenB3D, RAGE...), physics engine (npr. Bullet, Havok, Newton...), sound engine (npr. BASS,  FMOD...). Naravno, zašto ne koristiti već napravljenu infrastukturu za igru, nitko nije lud skroz ispočetka raditi. Kad bi netko radio ispočetka, pa to je odprilike kao da pišemo neki program u assembleru, za OS kao što je windows. Čemu to kad je jednostavnije u nekom jeziku višeg stupnja. U game loop-u se programira kako se što ponaša u igri, po tome se razlikuje profesionalna igra od neke početničke napravljene drag and drop tehnikom pomoću gotovih alata.

Oprosti, ali nalupao si hrpu stvari napamet koje si procitao u nekom pocetnickom tutorialu, svakome tko je ikad napisao nesto sto nije tetris ili pacman to je jasno. Cak i za SuperMario klon, ove tvoje ideje vise ne vrijede.

 

U gameloopu ne opisujes sto se dogadja s _igrom_ - u gameloopu, medju ostalim, updateiras protjek vremena i updateiras _sustave_ koje si sam iznio gore u slici. Da bi ti sustavi imali ikakvog posla, potrebno im je predati objekte, koji mogu i ne moraju biti vidljivi, mogu i ne moraju biti svjesni vremena koje tece, i moraju i ne moraju aktivirati collision detector.

Pored toga, ova slika je totalno bezvezna i predstavlja gameloop negdje iz 80ih ili 90ih - moderni engine vrti vise threadova koji mijenjaju ovu baznu arhitekturu u nesto sasvim deseto.

 

Smijesno mi je kako sam sebi sad skaces u usta - drag&drop ne valja, ali koristiti tudji rendering engine, physics engine, input handler, audio library - to je OK. Pa sta si onda napravio, napravio si bas nista. Napisao si 'glue' odnosno nesto malo koda da drzi sve to skupa na okupu. Mozes lijepo uzeti i VisualBasic na taj nacin i napisati 'svoju igru'.

 

Nije glupo pisati sve ispocetka ako zelis proprietary engine i imas dugorocne planove, te ako pises engine da bi naucio kako to funkcionira.


Bottom line:

a) jedina istina koju si iznio da je glupost pisati sve od nule, ako zelis napraviti igru. Ako zelis pisati engine kao hobi projekt, onda pisi sve od nule

b) jedini nacin da ikako napravis igru je da napravis engine i toolset za taj engine. Onda koristis toolset da bi napravio igru. Toolset moze biti specijaliziran ili genericki koliko god te volja, ali cinjenica je da igru radis u TOOLSETU, dakle NE PROGRAMIRAS.

c) raditi svoj toolset, ako zelis igru, je fail unaprijed, jer neces se maknuti dalje od 'gameloopa' kakvog si opisao

d) u koji ti ocito ne spadas - raditi svoj toolset i igru posao koji zahtijeva barem godinu-dvije, i nije ni priblizno za pocetnike.

 

Reci da se profesionalna igra razlikuje po tome sto opisuje sto se dogadja u 'gameloopu' umjesto preko skripti u toolsetu je totalna neistina. UDK, Valveov Source, Gamemaker - sve je to apsolutno ista pasta, ne postoji "praviji" game engine od onoga u kojem dobro radis.

Zato molim te, ne muti 'pamet' ovdje, jer sam vec potrosio sate i dane da razbijem neke glupe mitove o tome da tvoja igra 'nije tvoja' ako koristis vec napravljen profesionalni toolset. 

We are the ones that will open your mind, leave the weak and the haunted behind
Poruka je uređivana zadnji put sri 25.4.2012 17:28 (Deus ex machina).
16 godina
neaktivan
offline
Re: Kako napraviti igru
Deus ex machina kaže...
Boky kaže...

Ja bi rekao da ovo najbolje opisuje shemu modernih igara: http://www.ibm.com/developerworks/opensource/library/os-physicsengines/figure1.gif

Za one koje ne znaju, postoje biblioteke za graphics engine (npr. Irrlicht, OpenB3D, RAGE...), physics engine (npr. Bullet, Havok, Newton...), sound engine (npr. BASS,  FMOD...). Naravno, zašto ne koristiti već napravljenu infrastukturu za igru, nitko nije lud skroz ispočetka raditi. Kad bi netko radio ispočetka, pa to je odprilike kao da pišemo neki program u assembleru, za OS kao što je windows. Čemu to kad je jednostavnije u nekom jeziku višeg stupnja. U game loop-u se programira kako se što ponaša u igri, po tome se razlikuje profesionalna igra od neke početničke napravljene drag and drop tehnikom pomoću gotovih alata.

Oprosti, ali nalupao si hrpu stvari napamet koje si procitao u nekom pocetnickom tutorialu, svakome tko je ikad napisao nesto sto nije tetris ili pacman to je jasno. Cak i za SuperMario klon, ove tvoje ideje vise ne vrijede.

 

U gameloopu ne opisujes sto se dogadja s _igrom_ - u gameloopu, medju ostalim, updateiras protjek vremena i updateiras _sustave_ koje si sam iznio gore u slici. Da bi ti sustavi imali ikakvog posla, potrebno im je predati objekte, koji mogu i ne moraju biti vidljivi, mogu i ne moraju biti svjesni vremena koje tece, i moraju i ne moraju aktivirati collision detector.

Pored toga, ova slika je totalno bezvezna i predstavlja gameloop negdje iz 80ih ili 90ih - moderni engine vrti vise threadova koji mijenjaju ovu baznu arhitekturu u nesto sasvim deseto.

 

Smijesno mi je kako sam sebi sad skaces u usta - drag&drop ne valja, ali koristiti tudji rendering engine, physics engine, input handler, audio library - to je OK. Pa sta si onda napravio, napravio si bas nista. Napisao si 'glue' odnosno nesto malo koda da drzi sve to skupa na okupu. Mozes lijepo uzeti i VisualBasic na taj nacin i napisati 'svoju igru'.

 

Nije glupo pisati sve ispocetka ako zelis proprietary engine i imas dugorocne planove, te ako pises engine da bi naucio kako to funkcionira.


Bottom line:

a) jedina istina koju si iznio da je glupost pisati sve od nule, ako zelis napraviti igru. Ako zelis pisati engine kao hobi projekt, onda pisi sve od nule

b) jedini nacin da ikako napravis igru je da napravis engine i toolset za taj engine. Onda koristis toolset da bi napravio igru. Toolset moze biti specijaliziran ili genericki koliko god te volja, ali cinjenica je da igru radis u TOOLSETU, dakle NE PROGRAMIRAS.

c) raditi svoj toolset, ako zelis igru, je fail unaprijed, jer neces se maknuti dalje od 'gameloopa' kakvog si opisao

d) u koji ti ocito ne spadas - raditi svoj toolset i igru posao koji zahtijeva barem godinu-dvije, i nije ni priblizno za pocetnike.

 

Reci da se profesionalna igra razlikuje po tome sto opisuje sto se dogadja u 'gameloopu' umjesto preko skripti u toolsetu je totalna neistina. UDK, Valveov Source, Gamemaker - sve je to apsolutno ista pasta, ne postoji "praviji" game engine od onoga u kojem dobro radis.

Zato molim te, ne muti 'pamet' ovdje, jer sam vec potrosio sate i dane da razbijem neke glupe mitove o tome da tvoja igra 'nije tvoja' ako koristis vec napravljen profesionalni toolset. 

Ima istine i u tvom i u mom djelu teksta u kojem se slažemo!

Drag and drop ne valja, a korištenje tuđih enginea valja. Hmm, ne nužno, ali piše gore primjer to je kao korištenje asemblera, ako ćemo sve ispočetka, zavisi od kud neki vide taj "početak". Možemo početi od samostalne izdrade grafiče, procesora... cijelog računala (mogućnost toga je gotovo jednaka nuli), možemo početi u kamenom dobu, itd. Čemu, ima ljudi koji su to napravili, pa tako možemo koristiti i cijelokupan game maker.
Uostalom, nisam čuo da neki rockstar, activision i da ne nabrajam dalje, dragga i droppa (osim kod modeliranja) gotove djelove igre u nekom game makeru kako bi stvorili neku radnju i onda koristi negi game engine tog game makera za interpretiranje tog sadržaja.

Btw. ona shema igara vrijedi i danas, naravno iz svake niti ide još milione niti, ono je samo bilo šturo, najosnovnije kako bi trebalo biti to raspoređeno i kako to funkcionira.

0100001001101111011010100110000101101110
15 godina
neaktivan
offline
Re: Kako napraviti igru
Boky kaže...

Drag and drop ne valja, a korištenje tuđih enginea valja. Hmm, ne nužno, ali piše gore primjer to je kao korištenje asemblera, ako ćemo sve ispočetka, zavisi od kud neki vide taj "početak". Možemo početi od samostalne izdrade grafiče, procesora... cijelog računala (mogućnost toga je gotovo jednaka nuli), možemo početi u kamenom dobu, itd. Čemu, ima ljudi koji su to napravili, pa tako možemo koristiti i cijelokupan game maker.

Uostalom, nisam čuo da neki rockstar, activision i da ne nabrajam dalje, dragga i droppa (osim kod modeliranja) gotove djelove igre u nekom game makeru kako bi stvorili neku radnju i onda koristi negi game engine tog game makera za interpretiranje tog sadržaja.

Btw. ona shema igara vrijedi i danas, naravno iz svake niti ide još milione niti, ono je samo bilo šturo, najosnovnije kako bi trebalo biti to raspoređeno i kako to funkcionira.

Odnosno, jednostavno nisi nikad vidio/instalirao/probao rockstarov/activisionov toolset. UDK je upravo to - drag & drop. Koristeci Kismet editor, zapravo ne moras napisati ni jednu liniju skriptnog koda. Drag&drop.

 

Ona shema igara NE VRIJEDI i danas, jer jedna od mogucih konkurentnih arhitektura je decentralizirani 'gameloop' odnosno nepostojanje istog. Umjesto linearnog minimalnog update/render, vrte se u razlicitim threadovima i komuniciraju - opet dva razlicita pristupa, ili preko queuea ili preko dijeljene memorije.

 

Apstraktne, mitske recenice i brojeve kao sto su 'milijuni niti' u software engineeringu nemaju mjesta. Umjesto toga, oboruzaj se cinjenicama i argumentima.

Igra je igra. Zahtijeva trud, kreativnost i puno vremena. Napravio je ti koristeci svoj homebrewed engine napisan u assembleru, ili je ti napravio u gamemakeru - njezinu vrijednost procjeniti ce igraci, a ne nekakav fiktivni ponos.

Pored toga, shema mijesa sisteme (logiku) s podacima, dakle nije cak niti konzistentna.

 

Ucini si uslugu, i probaj iskodirati super mario. Cak i VisualBasic je dobrodosao jezik.

Kad (ako) dodjes do faze da moras napraviti tilemap editor, onda budi pametan pa posegni za nekim tilemap libraryem koji vec postoji.

Kad pocnes crtati staze - onda se upitaj da li trenutno 'programiras igru' ili 'radis igru', onda izmjeri koliko posla u izradi igre otpada na programiranje, a koliko na izradu staza i tweakanje, crtanje i obradu zvukova. Pa uvidi koliko je programiranje uopce bitno u cijeloj prici.

We are the ones that will open your mind, leave the weak and the haunted behind
16 godina
neaktivan
offline
Kako napraviti igru

Ne mislim na niti kao programske niti, nego u crtežu na dijagramu iz game loopa idu 6 "niti", a iz svakog možeš povući još njih koliko hoćeš kako bi preciznije opisao rad svakog.
Moja poanta je da velike firme ne rade na principu "drag and drop" izrade nego više na principu kodiranja. Naravno da se slike neće programirati, a ni modeli, ni glazba itd.

Istina da je za krajnjeg korisnika nije bitno u čemu je rađena igra i na koji način, više je bitan sam sadržaj.

 

I još bi naveo, kôd koji sami pišemo je velikim djelom optimiziran, radi poprilično točno što želimo, dok iza gotovih blokova ne znamo što se točno nalazi. Primjer: high-level i low-level jezici; što većeg levela je jezik, lakši je, ali puno strojnog kôd-a stoji iza naredbe što ponekad nije dobro ako se koristi puno resursa, hrpa detalja, jer želimo da sve ide što glađe. Veliki projekti zahtjevaju optimiziranje, što podrazumjeva korištenje i asemblera za neke djelove. To je takozvani "software optimization", a za igre je to prijeko potrebno.

0100001001101111011010100110000101101110
Poruka je uređivana zadnji put čet 26.4.2012 0:23 (Boky).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Kako napraviti igru
Deus ex po to tvojim postovima bi se dalo zakljuciti da su programeri u svijetu igara potpuno nepotrebni. Ne pokusavam napadati, nego me stvarno zanima. Onda svaka šuša može napraviti igru... A kako bi npr napravio AI, skriptirao misije i slicne stvari? Nisam radio u UDK, ni slicnim development kitovima, pa me eto zanima. Do sad sam mislio da je programer jedan od najvaznijih uloga u game developmentu. Pa onda bi skupina od par ljudi mogli napraviti igru. Zasto onda manji studiji razvijaju svoje engine? Zasto svi jednostavno ne rade preko UDKa? Ne mogu zamisliti da je licenca skuplja od razvoja engina.
14 godina
neaktivan
offline
Re: Kako napraviti igru

Isprike na duplom postu, m.bug zeza. :/

Poruka je uređivana zadnji put pon 30.4.2012 19:50 (Cheezl).
16 godina
neaktivan
offline
Re: kako napraviti strategisku igricu ?
Duxy007 kaže...

Desni klik na shortcut od LoL-a i rename, potom staviti proizvoljan naziv igre i voila.

 

(ono što želim reći da izrada takve igre zahtijeva tim i više mjeseci rada)

Složio bi se sa Cheezl-om. Inače bi se i ovo u citatu brojalo na neki način kao "izrada igre".

0100001001101111011010100110000101101110
14 godina
neaktivan
offline
Kako napraviti igru

Deus vam je dobro napisao koja pravila vrijede kod izrade igre, plus toga čovijek je jedini profesionalac ovdje tako da njegov stav ima određenu težinu.

 

Inače ono što sam ja primjetio je to da velika večina ljudi brka jest programiranje enginea i izrada igre, drugo nemojte olako shvačat i primat zdravo za gotovo da je upotreba enginea trivijalan posao i da recimo izrada igre s jednim od njih je isto mačji kašalj.

 

Drugo Deus vam je napisao potencijalne zamke u koje btw upadaju ljudi pri samom startupu točnije u početku realizacije ideje, a to je da čovijek sam sa sobom treba razlučiti da li želi izraditi igru ili engine, kao što vam je napisao velika je vjerojatnost da se pojedinac uhvati u zamku te da umjeto igre napravi nešto što bi trebao biti engine.

 

Inače postoji nešto što se zove svijesnot situacije, kod pilota se to reflektira u smislu da pri određenim uvijetima ostane svijstan situacije, isto pravilo vrijedi i kod programiranja, a reflektira se na način da programer bude svijestan događaja u situaciji kada količina koda s kojom radi premaši okvire ljudskog pamčenja, a sad zamislite igru na kojoj radite iz svog home made enginea pa u korak s time morate mijenjati core funkcije enginea jer eto u praksi se ispostavi da je recimo arhitektura render dijela enginea ne zadovoljava tražene stvari u igri ili recimo physics dio enginea jednostavno dobro ne odrađuje svoj dio ili ga je potrebno nadograđivat, naravno svaki dio je debelo međuovisan o drugom dijelu sve je ponitnano relacijama zamisite se u toj situaciji.

 

I sada sumasumarum kada nakon X godina rada u scenariju da ste uspjeli nešto napraviti dođete do zaključka da eto u finalnoj inačici ste uspjeli napraviti nešto što naliči na gamemaker .

 

Inače UDK je state of the art alat za izradu igri i rad u istome je sve samo ne trivijalan te svatko tko ozbiljnije želi nešto konkretno napraviti, a pri tome ima solidan stroj, mislim da bi mu UDK trebao biti izbor broj jedan , go for it.

 

 
4 0 hvala 3
14 godina
neaktivan
offline
Re: Kako napraviti igru
Hvala na pojasnjenju. Mislio sam da je potrebno malo vece znanje za izradu igre. Ne vjerujem da treba vise od par mjeseci da se nauci baratat s development kitom.
Kako se razvija AI? Jel development kit i to obuhvaca ili?

Jel postoji nekakav graficki engine s kojim bi mogao npr kreirati okolis igre, a onda sam kodirati AI, skriptirati misije i to? Ugl da razvijam "mozak" iza igre unutar vec nekog kreiranog okolisa.

I ako netko ima viska vremena, jel bi mi mogao opisati sto tocno programer radi kod razvoja igre? Kad su ti alati vec toliko mocni, cemu uopce programer?

Znam da ima dosta upitnika, ali izgleda da ja imam totalno drugaciju koncepciju o razvoju igara.
14 godina
neaktivan
offline
Re: Kako napraviti igru
Cheezl kaže...
Hvala na pojasnjenju. Mislio sam da je potrebno malo vece znanje za izradu igre. Ne vjerujem da treba vise od par mjeseci da se nauci baratat s development kitom.
Kako se razvija AI? Jel development kit i to obuhvaca ili?

Jel postoji nekakav graficki engine s kojim bi mogao npr kreirati okolis igre, a onda sam kodirati AI, skriptirati misije i to? Ugl da razvijam "mozak" iza igre unutar vec nekog kreiranog okolisa.

I ako netko ima viska vremena, jel bi mi mogao opisati sto tocno programer radi kod razvoja igre? Kad su ti alati vec toliko mocni, cemu uopce programer?

Znam da ima dosta upitnika, ali izgleda da ja imam totalno drugaciju koncepciju o razvoju igara.

 

Da li postoje alati s kojima možeš drag and drop bez trunke programiranja napraviti neku stand alone igru ne znam (možda i postoji ne isključujem mogučnost), ono što  znam da jedni od najrespektabilnijih game kitova debelo koriste kod u vidu skriptnog jezika  npr. UDK nije drag and drop objects, test play and export to exe, ne daleko od toga to je alat koji ti služi za kreiranje levela, znaći level editor, alat za definiranje game objekata, znaći pridruživanjue materijala, fizike itd. game asstesima , onda alat za skriptiranje događaja u igri, ponašanje i međuovisnost objekata, AIa itd. recimo neki game kitovi posjeduju određene alate koje ti mogu pomoći pri izradi AIa, npr definiraju path grid over terrain, ali sve sve ostalo ipak češ morat zasukat rukave i primit se kodiranja.

 

AI možeš razviti na više načina, jedan od pristupa je FSM, drugi je chase and invide (jedan od glupljih) , recimo Quake i Doom dosta koriste FSM, pacman ili neki turret based game bi koristio chase and invade. Ima još detaljnijih podjela (fuzzy logika ,path find ,state driven agents, neuralne mreže itd... ), ali to pitaj Deusa.

 

Grafički engine ne kreira gameobjekte, mada gotovo svaki  ima implementirane primitive objekte (sfera, kocka , cilindar i stožac (i tea pot )) ali od tih objekata ne radiš igru već objekte ili točnije zvano mesheve izradiš u određenim alatima npr. Blender, te tada iste importaš u game engine kao objekt , naravno ovdje je bitan mesh format ili točnije interpretacija poly trianglea , tako da manje više svaki game engine koristi neki svoj mesh format, ali najčešći su obj, 3ds i fbx te neki stariji md2 i md3 (Quake mesh format).

 

 

 

 

 

 

15 godina
neaktivan
offline
Re: Kako napraviti igru
Boky kaže...

...

I još bi naveo, kôd koji sami pišemo je velikim djelom optimiziran, radi poprilično točno što želimo, dok iza gotovih blokova ne znamo što se točno nalazi. Primjer: high-level i low-level jezici; što većeg levela je jezik, lakši je, ali puno strojnog kôd-a stoji iza naredbe što ponekad nije dobro ako se koristi puno resursa, hrpa detalja, jer želimo da sve ide što glađe. Veliki projekti zahtjevaju optimiziranje, što podrazumjeva korištenje i asemblera za neke djelove. To je takozvani "software optimization", a za igre je to prijeko potrebno.

S prvim dijelom posta se slazem, ali s ovim drugim - to o cemu pricas su bajke i mitovi.

 

Kod koji pisemo je u game industriji velikim dijelom NE-OPTIMIZIRAN - jer nitko nema vremena paziti na to sto pise. Jedna stvar je kad si sam ili kad vas je troje... ali kad kodiras u timu od 100 ljudi, pa odjednom sa game enginea moras skoknuti u rendering ili AI ili sound engine i popraviti bug ili dodati feature - 100% je sigurno da neces to napraviti kako treba jer jednostavno ne znas kako sistem radi. Naravno da ti vodstvo ne da dovoljno vremena da naucis sistem i napravis to kako treba, nego dobijes dan-dva i snadji se druze.

Vecina modernih igara koje ne koriste neki od poznatih enginea ispod haube nalikuju na auto ciji su dijelovi spojeni pljuvackom i zvakacom gumom - nitko nema pojma kako to radi, ali nek radi. Dok igrate modernu igru, greske i pogresna stanja se gomilaju ispod haube ali ih engine ignorira i gura naprijed koliko god moze, jer je bitnije dati iluziju da sve radi kako treba nego da stvarno radi kako treba. Vecina modernih enginea racuna na cinjenicu da neces igrati igru 16 sati u komadu, pa si to dopusta i racuna da ces kad-tad restartati, da li rucno ili zato jer ce se engine skrsiti.

 

Dirati u assembler je najgluplja i definitivno zadnja stvar koju mozes napraviti. Prvo, sa modernim compilerima, nemas sto prckati po assembleru jer ces samo zbuniti compiler i ugasiti optimizacije za cijelu kompilacijsku jedinicu. Drugo, optimizacije se ne odvija 'magicno' tako da upalis assembler, prepises kod koji bi compiler iovako ionako napisao, i sad odjednom to radi brze. Optimizacija znaci provjeriti sa profilerom sta radi sporo i skuziti _zasto_ radi sporo, a kad to rijesis - assembler ti ne treba, nego fino popravis problem/arhitekturu unutar maticnog jezika.

Trece i najbitnije - ako prckas po assembleru, lako moguce da mozes zaboraviti na portabilnost, jer vise ti ni bog ne garantira da ce ti se igra vrtjeti na svim procesorima.

 

Uglavnom - profesionalci koje uporno spominjes, ne diraju assembler.

Jedina mainstream low-level optimizacija je zamjena alokatora sa custom alokatorima ovisno o tipu podatka. Tako se primjerice za male 'matematicke' objekte (vektori, matrice, quaternioni) pisu alokatori koji pooliraju memoriju i kolociraju tipove u grupe, da bi thrashanje cachea bilo minimalno. Za stringove se koristi inplace allocator. Za sve ostale objekte, obicno se koristi nekakva inkarnacija Doug Lea's allocatora, koji je standardni allocator u GCC-u.

Sve ove low-level optimizacije ukljucuju jednostavno pisanje klase - nikakav assembler. Opcenito, ako netko predlozi assembler optimizacije - obicno mu se ljudi smiju jer je to nacin da skuze da covjek pojma nema sto prica.

Radio je s nama neki lik koji je rucno unrollao loopove, ruku na srce jer bi se tupavi MS compiler izgubio i ne bi ih unrollao. Ali njegova glupost je u tome sto nije skuzio da bi se compiler izgubio jer su loopovi koje je trebalo unrollati neshvatljivi i samom autoru, i taj je dio koda trebalo nanovo prepisati u nesto bolje - pa bi sve radilo.

Pustio sam ga cisto zato jer je, kao i ti, bio napunjen mitovima i trebalo ih je na neki nacin razbiti jer mu nisam htio napucati otkaz nego ga educirati. 

On je sjedio 3 dana uz debugger i na ruke unrollao, znojio se jer je vec prvi dan shvatio u sta se upustio. Nakon toga se to nije izvrsavalo nigdje osim na njegovoj masini. Napokon je doslo meni u ruke, obrisao sam mu cijelu klasu, napisao je ispocetka u jedan dan dok je on sjedio i gledao sta radim, i sve je radilo ko puska. Njegov komentar "Pa ko bi se sjetio zamjeniti array za binary tree"? Eto, ima ljudi.

 

Boky, nemoj se ljutiti, ali naporan si sa mitovima koji nigdje nemaju stvarnog uporista. Najgore mi je to sto ih uporno tvrdis kao da su cinjenice, a veze s vezom nemaju.

 

 

@woodgamesfx je sasvim odlicno objasnio ostatak.

Programer je uvijek potreban za neki novi sistem. Ali sistem je dio _enginea_ a ne dio _igre_.

Trine je napravljen u UDK-u ako me sjecanje ne vara. Core team su cisti 3D artisti, dakle dume o programiranju nemaju osim nekih osnova. Trine meni izgleda kao profesionalna ispolirana igra, a prakticno, kodiranje je trajalo valjda ispod mjesec dana.

We are the ones that will open your mind, leave the weak and the haunted behind
15 godina
neaktivan
offline
Re: Kako napraviti igru
Cheezl kaže...
Deus ex po to tvojim postovima bi se dalo zakljuciti da su programeri u svijetu igara potpuno nepotrebni. Ne pokusavam napadati, nego me stvarno zanima. Onda svaka šuša može napraviti igru... A kako bi npr napravio AI, skriptirao misije i slicne stvari? Nisam radio u UDK, ni slicnim development kitovima, pa me eto zanima. Do sad sam mislio da je programer jedan od najvaznijih uloga u game developmentu. Pa onda bi skupina od par ljudi mogli napraviti igru. Zasto onda manji studiji razvijaju svoje engine? Zasto svi jednostavno ne rade preko UDKa? Ne mogu zamisliti da je licenca skuplja od razvoja engina.

Naravno da ne moze svaka susa napraviti igru, zbog toga je to i toliko tesko!

 

Poanta je u tome da izrada igre nije izrada enginea! Uporno, iznova i iznova, vam ponavljam - umjesto da radite engine, uzmite gamemaker i napravite kompletno svoju igru! Kompletno! Napravite pricu, stazu, zvukove, likove, animacije, teksture, zamke, levele tezine, bodovanje...

 

Ljudi, upornim guranjem programera u prvi plan debelo omalovazavate game design, a da uopce niste ni svjesni da takva disciplina postoji i da je to najbitnija disciplina za izradu bilo kakve igre! Neki modovi za Deus Ex i Half Life 2 se rade GODINAMA, a da ljudi ne pisu liniju koda nego "samo" aranziraju stazu, postavljaju enemye, pisu dijaloge, razmisljaju o zamkama... to su game designeri. Istina bog, da nema programera, game designer ne bi imao alata.... ali danas, uz takvo obilje proprietary i free alata - programer je prakticno nepotreban.

 

Jedini razlog zasto za nas ima posla u game industriji je - najiskrenije - glup management koji umjesto da iskoristi prednosti trzista, zeli se natjecati. Pa onda neka kukuriku kompanija misli da moze razviti bolji engine od UDK-a, IDTecha ili Cryteka, ulupa milijune u razvoj i na kraju zavrsi s kupusom. Ruku na srce, ima kompanija koje se i probiju (Crytek) i postanu slavne, ali omjer je 1:10000.

 

Opet isto pitanje - zelis raditi igru, ili zelis raditi engine? Nije crno-bijelo, postoji i balans, no svatko ga mora odgovoriti sam za sebe.

 

Ja sam strosio zasada 9 mjeseci na svoj OGL engine, a tocno znam sto radim! Razlog zasto pisem svoj engine su dugorocni planovi, gdje bi u dogledno vrijeme sa nekoliko prijatelja napravio game kompaniju i htjeli bi imati proprietary tech. Takodjer engine neke stvari radi drugacije, a te stvari veze nemaju s onime sto se tice playera vec onime sto se tice samih developera - cilj nam je bio zaposliti ljude koji nemaju strucnosti u game industriji, vec su primjerice business programeri koji se zele okusati u igrama.

Dakle, toolset za engine radi sasvim drugacije od ostalih enginea koje sam vidio na trzistu i omogucit ce nam da zaposlimo prije svega javascript programere.

Ostale stvari kao sto su deferred lighting renderer, data octree, OpenAL wrapper - to je vise manje isto u svakom engineu.

We are the ones that will open your mind, leave the weak and the haunted behind
12 godina
neaktivan
offline
Kako napraviti igru

evo ja trenutno programiram igru u c++ sa sdl-om i opengl-om

recimo da je super mario klon, vec sam skoro sve napravio, fizika, collision, zvuk, teksture itd...

sve sam sam radio, jedino nisam level editor jos napravio, ne znam jel cu uopce, za sad sam rucno jedan level ispisao...

 

ono sto sam htio pitat jel mi se isplatilo s tim se zajebavat?

 

osim sto sam htio bas vidjet kako sve to funkcionira, puno bolje sam naucio programirat u c++-u,

naucio radit s sdl-om i opengl-om.. pa ce mi bit lakse radit s nekim drugim library-em kad ce trebat

 

i sto bi mi preporucili da dalje radim u vezi igara? ili bolje da ucim web programiranje, baze podataka itd,

a neke manje igre radim u slobodno vrijeme?

 

mislio sam naucit neki drugi jezik, npr. java isto s nekim api-em, jer sam skuzio da puno vise

naucim programirat kad neku igru radim, tj graficki da vidim, nego da mi u terminalu ispisuje,

a i imam dojam da stvarno nesto upotrebljivo radim, zanimljivije je...

 
2 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice