[ Boyka @ 05.01.2013. 12:37 ] @
Nikada nisam ni pokušavao praviti igre, ali evo sad me nešto počelo zanimati.

Zanima me kako to igre funkcionišu u grubim crtama,

ja ovako bez ijedne procitane knjige na temu kompjuterskih igara zamišljam to ovako:

Crtači nacrtaju likove, mape koje su im ovi iz strateškog tima zamislili, te likove skeniraju i šalju 3d dizajneru kome je dužnost da nacrtano(u PS ili papiru) sprovede u 3d oblik.

e sada prelazimo na deo koji me zanima:

imamo 3d likove i mape,

programerima je dužnost da urade i meni, pa tako počinjem od prve stavke igre,

obično počinju nekim snimkom, pa izlazi logo,

press any key(event handler):
Code:
if(ascii_vrednost.keydown == true) //lupam
{
    goto meni;
}


otvara se meni, koji recimo ima stavke

*play
*settings
*quit

sve stavke reaguju na hover event(menjajuci boju), pri kliku na play se otvara igra.

e sad, imamo pogled na pusku od glavnog igraca(kojeg su 3d momci napravili), reaguje na evente, pri "down" eventu na taster "W" pozicija glavnog igraca se menja na mapi za nekoliko definisanih piksela(recimo 5) unapred i uz to se loaduje animacija(koju su 3d momci napravili) gde se igracu pomeraju noge i puska recimo, tasterom "A" igrac bi se pomerio u levo i opet loadovala animacija, za "D" bi isao u desno i opet neka animacija?
Za SHIFT + W, bi trebao da trci, load animacije, (pozicija +=10 piksela recimo).
Mis, pri pokretanju misa(MouseHover) glavni igrac reaguje, u odnosu na ugao misa, znaci x, y i z osa se menjaju u zavisnosti od misa? ili se mozda loaduje animacija, pa recimo ako se mis pomera udesno, loaduje se animacija koja rotira playera u odnosu na mapu, kada mis stane, player prestaje da se rotira?

Pri kliku na levi taster misa, player puca.
-loaduje se animacije gde se vidi vatra iz cevi puske i stalno blinka
-ako je kursor pri "pucanju" bio na poziciji torzoa protivnickog igraca, i ako je vise od tri puta se ponovila animacija, blink vatre(3 metka), protivnik mrtav(loaduje se animacija gde on pada?), ili ako je u glavu jednom, u noge 5x, ako je pucao na poziciji nekog objekta(zgrade) prikazi rupu u zgradi, else null...
Na desni klik se vrsi zum na nisan puske, opet load 3d animacije, pretpostavljam?

e sada verovatno najtezi deo, "razmisljanje" protivnickih igraca?

hmm to sam nekako ovako zamislio:

izuzecu 3d loadovanja, jasno je da se pri svakom razlicitom eventu nesto loaduje, barem tako mislim...

kreci se po mapi dok te nisu pogodila 3 metka u telo, 1 u vugla i 5 u noge,
ako u okviru od 200 piksela unapred primetis protivnika, ciljaj glavu i pucaj?

Da li sam i blizu stvarnosti, kako se prave igre bio ili ne?
Svestan sam da u jednoj igri ima preko 100 000 linija koda + 3d modeliranja tona...

imam ideju da napravim nesto ovako: http://www.youtube.com/watch?v=244WW2BXEDA
Mislio sam da je ne moguce sam napraviti tako nesto, ali sam posle u komentarima procitao da je napravio ovo za 6 meseci, tako da bih voleo napraviti nesto slicno, uz svoj engine naravno, samo radi vezbe, ne verujem da bih uspeo to unovciti...



[ mmix @ 05.01.2013. 14:46 ] @
Prilicno je obiman i komplikovan posao napraviti game engine, zato ima veoma malo timova koji to rade. Obicno se radi licenciranje nekog vec dobro uradjenog engine-a koji u sebi ima vec skoro sve to sto si nakucao.
[ RexGrammer @ 17.03.2013. 01:24 ] @
Nazalost veom si daleko od realnosti.

Igre nisu bazirane ne Event Based sistemu neko na Loop Based sistemu, sto bitno menja stvari. Veoma uprosceno to se svodi na par metoda koje se izvrsavaju x puta u sekundi. Te metode su Update i Draw, i specijalne Start i Stop metode. Start inicijalizuje celu igru i ucitava sve potrebne resurse, stop ih unistava i zatvara igru. U Update-u se desava cela logika igre, a u Draw ide rendering.

Obicno ne savetujem nekoga da "batali nesto", ali ostavi to, mnogo je komplikovano, umesto toga mozes napraviti par igara u vec gotovom framework-u da bi bolje upoznao tu paradigmu, probaj XNA Framework za .NET.