PDA

Prikaži potpunu verziju : Kako napraviti igru! (Iz perspektive programera...)


sasha vukelic
29.6.2009, 15:13
Odmah da kazem da AAA (http://www.gameproducer.net/2006/05/26/what-are-aaa-titles/) igre prave ogromni timovi ljudi, uz cijene koje se u prosjeku krecu od 10 do 20 miliona dolara. Za konkretan primjer, budzet GTA4 je bio $100.000.000! Ovo govorim, da bi vas odbio od pitanja: "Kako da napravim novi CoD, WoW...?"

Sada je neizbjezno pitanje izbora programskog jezika. Odgovor, bez puno pametovanja, je jednostavan: "C++". Sto se tice okruzenja, vrlo kvalitetan (a besplatan) je Visual Studio Express (http://www.microsoft.com/express/). Cilj post-a nije tutorial ovog jezika (sto bi bilo i nemoguce ostvariti na ovako malom prostoru). Pretrazivanjem interneta mozete doci do malko vise od bezbroj tutorijala, a cak da vam nijedan ne odgovara, vasa lokalna knjizara sigurno ima knjiga na trazenu temu.

1. primjer: iks-oks ili slagalica
-"Zasto bih gubio vrijeme da pravim bezveznu igru koju niko nece igrati?"
-"Ma, ovo je lako, nema potrebe da se zamajavam!"

Vrlo je bitno krenuti od necega i (po meni, jos bitnije) zavrsavati svoje projekte. Kada prodjete taj proces vise puta, shvaticete da uvijek naidjete na neku zackoljicu, koja se ili cinila lagana, ili ste mislili da nece predstavljati problem. Napravite igricu tako da to bude gotov projekat, da nista ne fali, da nije bug-ovita.

S druge strane, mozda ste vec sada zastali, jer ne znata kako bi poceli, sto znaci da ne posjedujete dovoljno znanje iz programiranja. Nemojte posezati za game-maker-ima, "How to make a game in 5 minutes?" i ostalima. Ako hocete da budete programer igara, morate znati programirati. Kupite kakvu knjigu, pretrazujte internet (npr http://www.cprogramming.com/tutorial.html) sta god da vam odgovara. Znajte da ce biti potrebno vrijeme da sve to savladate i da cete uspjeti jedino ako ste uporni.

Dok prolazite kroz osnovne stvari programskog jezika, uvijek zastanite i pokusajte napraviti nesto svoje. Recimo, tek ste poceli da ucite i upoznali ste se sa ispisivanjem i unosom rijeci i petljama. Cak i sa tako osnovnim poznavanjem mozete napraviti jednostavnu igru pogadjanja broja!

Kada zavrsite svoj prvi iks-oks (ili nesto slicne tezine), razmislite da li ste se osjecali komotno - da li ste cesto bili zbunjeni i niste znali sta dalje, da li ste cesto posezali za savjetima. Dobro razmislite da li bi sada znali ispocetka napraviti istu ili slicnu igru, bez ikakvih problema. Ako niste sigurni, upustite se u jos koji jednostavan projekat, igra memorije i sl.

2. primjer: pacman, tetris ili arkanoid
Napravili ste svoju prvu igru/igre. Vjerovatno bez zvuka, bez muzike i sa slabijom grafikom. Ono sto sada trebate napraviti jeste nesto, sto bi pomislili da se moze prodati, ali ce, generalno, faliti duzine i ispeglanosti.

Pored vas, kao programera, preporucio bih jos ljude zaduzene za grafiku, zvuk i muziku. Istina, mozete i sami da se bavite crtanjem, no ovdje trebate stati i razmisliti: neko ce da se bavi crtanjem igraca, neprijatelja, pozadine, zidova, UI-ja, cigli, loptica i sve to animirano, sareno i prijatno za oci. Da li vi to znate kvalitetno da odradite? Ako je odgovor da, programer treba vas da trazi.

Sto se tice samog koda, ovdje nema sta da vas uplasi. Doduse, kada pogledate jednu partiju arkanoida, mozda pomislite: "Kako napraviti igraca, lopticu, cigle, zidove, skor, a sve se to odjednom krece, sudara, sabira, eksplodira?" Pa, upravo je kljucno da ne radite sve odjednom.

Da li znate da ocitate unos sa tastature? Da li znate da nacrtate pravougaonik na ekranu? Guess what, znate i da nacrtate i da kontrolisete glavnog protagonistu! Ako uzmete prazan ekran, da li znate da nacrtate krug koji ce ici konstantnom brzinom i odbijati se od krajeve ekrana? Spojite ovo dvoje i prakticno ste na pola puta da zavrsite programerski dio posla.

Ono sto bi trebao da vam bude zadatak ovdje jeste kada "zavrsite" igru, svi zajedno uzmete list papira, sjednete za kompjuter i igrate. Sve, ali sve sto mislite da moze da se poboljsa zapisite! Vi cete mozda primjetiti da se neki dijelovi grafike mogu poboljsati, vas prijatelj koji je to sve crtao ce mozda primjetiti da neki zvucni efekti odskacu od drugih, dok ce covjek zaduzen za zvuk mozda imati kreativnih savjeta vezanih za igrivost. Bitno je da poboljsate svaki aspekat igre, koliko god je to u vasoj moci. Na kraju cete dobiti proizvod sa kojim cete se svi zajedno moci pohvaliti.

irreal
29.6.2009, 18:03
Bravo. Dobar tekst.

Mislim da mozda ne bi bila losa ideja opisati proces pravljenja jedne relativno jednostavne igre.
ne mora se tu koncentrisati na tacan kod, bitan je proces razmisljanja, nacin resavanja problema. sta uraditi kada ne znas kuda dalje. kako debugovati.

cisto da ljudi koji nemaju nikakvog iskustva steknu neki osecaj kako sve to izgleda.

ukoliko mislite da bi ovo bilo iole korisno ja mogu da napisem proces pravljenja ponga za 4 igraca u c++-u ili recimo onaj moj remake Logicala.

boshkodj
29.6.2009, 18:13
Ne bi bilo lose da iskusniji programeri(igara) napisu listu igara koje su pravili tj. da napise listu koju misli da treba da napravi neko ko pocinje sa gamedevom ,npr: iks/oks > pong > pacman > itd...

irreal
29.6.2009, 18:31
evo moje neke preporuke pocetnicima :

tekstualni papir kamen makaze.

tekstualno pogadjanje brojeva

prelazak na (jednostavnu) grafiku

iks-oks

pong

arkanoid.

tetris bi savetovao tek dosta kasnije, tetris je tezi neko sto vecina ljudi misli.


inace, najbitnije je shvatiti da nista ne ide preko noci.
ako nemate iskustva u programiranju igara necete za jedan dan nauciti sve, necete ni za dva dana, ni za dve nedelje. samo POLAKO. ne zaletati se preko glave jer to samo kreira frustraciju.

Patrick
29.6.2009, 20:19
Mi smo ucili Pascal u skoli i to sam vise nego odlicno savladao. e sad sledece godine pocinjemo da radimo u Delphi-ju pa je moje pitanje da li ce i Delphi DOBRO "zavrsiti posao" oko ovih manjih projekata koje ste naveli (arkanoid i drugo)? Znaci ako nadjem ljude koji ce da mi odrade zvuk i grafiku, da li ce biti sve jedno da radim u C++ ili Dephi-ju (ili makar priblizno isto)? Znam da bez C++ nema 'leba, ali s njim cu da se pozabavim kasnije (na fax-u)... Ipak mislim da ucenje dva programska jezika istovremeno nikako nije dobra ideja...

doctor
29.6.2009, 21:07
...da li ce i Delphi DOBRO "zavrsiti posao" oko ovih manjih projekata koje ste naveli (arkanoid i drugo)? Znaci ako nadjem ljude koji ce da mi odrade zvuk i grafiku, da li ce biti sve jedno da radim u C++ ili Dephi-ju (ili makar priblizno isto)? Znam da bez C++ nema 'leba, ali s njim cu da se pozabavim kasnije (na fax-u)... Ipak mislim da ucenje dva programska jezika istovremeno nikako nije dobra ideja...

Ne bih rekao da delphi moze da posluzi za game dev :confused: Mada mozda i moze... znam donekle delphi... Preporucujem da se bacis na C/C++ jer sam skontao da je to daleko bolja solucija od bilo cega, evo i ja ga sad ucim iako poznajem Delphi, VB i slicne alate...
--------------------------------------------------------------------------
A evo npr. redosled pravljenja igara...

-Prvo neka tekstualna igra. Npr. program generise radnom broj od 1 do 10 i trazi od korisnika da pogadja koji je broj u pitanju. Sve to u tekstualnom (MS-DOS=konzola=tekstualno) okruzenju.

-Zatim nesto tipa Pong, nista preterano tesko ali ni lako.

-Zatim nesto tipa PacMan. Ovo je tesko u zavosnosti od toga u kom se jeziku/RAD-u radi... npr (mnogi mi ne veruju ali boli me !@#$$%@#%) u popishanom Game Makeru se osnova PacMana (tzv. engine) pravi za nekih pola sata-sat dok je za izradu istog u C++ potrebno mnogo vise logike, razmisljanja i znanja (zato preporucujem C++ ili sl. a ne RAD alate tipa GM).

-Eh, onda bi usledio neki platformer, a posle njega i neki top-down shooter, bar po mom mishljenju.

-Na kraju Tetris. Tetris je izuzetno tezak za pravljenje, to vam kazem iz iskustva (i mojeg i drugih) jer nisam uspeo da je napravim.

-Ukoliko napravite freakin' tetris, mozete da se bacite na neke druge stvari u igrama, kao sto je engine za fiziku, za particles, i sl.

==>
Logican korak dalje je 3D, ali vas je izbor kakvu cete igru u 3D praviti. :ciao:


EDIT: Let this thread be sticky!!! :D

player1
29.6.2009, 21:11
Realno, mozes u svemu i svacemu da napravis malu igru (vidim, flash je dosta popularan, pa cak i praktican za tako nesto), ali problem je u tome, da bez obziljnog i efikasnog programskog jezika kao C++, da ce zahtevnost brzo postati prevelika za bilo sta vece. Ozbiljan game dev trazi efikasan programski jezik, i bolje znanje materije.

Zato, ako neko hoce da proba da se bavi game devom ozbiljnije, treba da proba prvo da napravi malu igru ne u fleshu, ili ne daj boze game makeru, negu i pravom programskom jeziku koji se koristi za takve stvari, pa kad nauci kako to ide, moze i neki veci projekat.

U suprotnom, mozes da postanes eskpert za male igre u flashu (sto da ne, i u tome ima para), ali sa takvim znanjem nikad nece moci da se bavis ozbiljnijim game devom.

sasha vukelic
29.6.2009, 21:17
ukoliko mislite da bi ovo bilo iole korisno ja mogu da napisem proces pravljenja ponga za 4 igraca u c++-u ili recimo onaj moj remake Logicala.pa napisi, koga god interesuje, sigurno ce procitati!Ne bi bilo lose da iskusniji programeri(igara) napisu listu igara koje su pravili tj. da napise listu koju misli da treba da napravi neko ko pocinje sa gamedevomja sam ko mali pravio razne gluposti, nekakve nazovi avanturice na spectrumu, program za tjeranje muha sa ekrana na komodoru, trkanje crva na pc-ju itd. neke igrice sto sam napravio npr. http://www.vplanetmag.com/raview17.shtml su malo previse stare, tako da ne saradjuju sa win xp-om (ili novijim), ali http://www.sk.co.yu/forum/showthread.php?p=148665#post148665 jos uvijek radi ;)Mi smo ucili Pascal u skoli i to sam vise nego odlicno savladao. e sad sledece godine pocinjemo da radimo u Delphi-ju pa je moje pitanje da li ce i Delphi DOBRO "zavrsiti posao" oko ovih manjih projekata koje ste naveli (arkanoid i drugo)? Znaci ako nadjem ljude koji ce da mi odrade zvuk i grafiku, da li ce biti sve jedno da radim u C++ ili Dephi-ju (ili makar priblizno isto)? Znam da bez C++ nema 'leba, ali s njim cu da se pozabavim kasnije (na fax-u)... Ipak mislim da ucenje dva programska jezika istovremeno nikako nije dobra ideja...naravno da nije C++ jedini. recimo, odlican je i C# u kombinaciji sa XNA (http://creators.xna.com/en-US/). u sustini, koji god jezik da koristis, dosta toga ces moci napraviti, ali C++ sam naglasio, zato sto za njega imas najvise primjera i tutoriala na internetu. mislim, dovoljno je reci da se vecina komercijalnih igara pravi u njemu i mi tu nemamo sta da pametujemo :D

DonCorleone91
29.6.2009, 21:38
Ja sam od programiranja odustao cim sa poceo :) jednostavno nije to za mene, iako je jako i interesantno i nema granica. Mislim da kad predjes neki osnovni nivo znanja treba da uzmes da se specializujes za nesto odredjeno i to da razvijas i ucis do perfekcije. Glupo je kad predjes osnovni nivo pravljenja igara i dalje sve delove igre da radis sam, jednostavno neces nista postici (ko uspe, svaka mu se dala). Ima i onaj SAE institut gde ima odeljak za game dev :) il tako nesto...izgooglajte :)

irreal
29.6.2009, 21:47
-Na kraju Tetris. Tetris je izuzetno tezak za pravljenje, to vam kazem iz iskustva (i mojeg i drugih) jer nisam uspeo da je napravim.

-Ukoliko napravite freakin' tetris, mozete da se bacite na neke druge stvari u igrama, kao sto je engine za fiziku, za particles, i sl.

:boodala:

slazem se da je tetris tezi nego sto ljudi misle, ali samo zato sto ti nisi uspeo da ga napravis ne znaci da je toliki bauk. nikako ne bih rekao da je "izuzetno tezak"
kakav ti je to korak sa tetrisa na engine za fiziku ???


inace, u delphiju i te kako mogu da se naprave dobre, ne preterano zahtevne igre.
ako mozes, bolje je da ucis c++, ali ako moras da ucis delphi i neces i delphi i c++ to ne znaci da ne mozes da pises igre.

evo, taj Game Maker o kojem doctor cesto prica je napisan u delphiju.

i ne samo Game Maker.

mySQL administrator, Total Commander, Fruity Loops (FL Studio), Skype, GetDataBack
sve napisano u delphiju, kao i mnogi drugi programi, pa i neke igre.

player1
29.6.2009, 21:56
Pa sad, alati i utilitiju ne zahtevaju velike performanse, pa sasvim lepo mogu da se naprave u jeziku kao delphi.

irreal
29.6.2009, 22:05
FL studio je dosta graficki intenzivan.

a kao sto sam napomenuo, ima i dosta igara napravljenih u delphiju

naravno, ne mislim na AAA naslove. ali garantujem da poprilicno dobre 2d igre mogu da se urade u delphiju i opet da rade na nekom pentiumu 2 ili 3.

Patrick
29.6.2009, 22:23
Nisam ni mislio da nesto ozbiljno radim u delphiju vec samo one "pocetnicke" igre cisto da bih video sta me sve ceka i na koje cu sve probleme da naidjem u njihovoj izradi. A ako sam dobro shvatio ukoliko mi se posvidja pravljenje igara i zelim nesto ozbiljnije da radim (ne samo da bih stekao iskustvo), najbolje bi bilo da naucim C++ i krenem dalje... Mislim da posto znam Pascal, najosnovnije stvari iz C-a i kad savladam delphi, C++ mi nece predstavljati veliki problem...:opanachke Ili se varam?

irreal
29.6.2009, 22:29
ako si spreman da ucis i radis, c++ ti nece biti problem sve da nista pre toga nikada nisi ni video, a ne znao.

svo iskustvo i znanje koje imas pre toga je samo plus :)


inace, ako si vec "odlicno" savladao pascal delphi ti nece biti nikakav problem.

doctor
30.6.2009, 1:42
:boodala:

slazem se da je tetris tezi nego sto ljudi misle, ali samo zato sto ti nisi uspeo da ga napravis ne znaci da je toliki bauk. nikako ne bih rekao da je "izuzetno tezak"
kakav ti je to korak sa tetrisa na engine za fiziku ???


inace, u delphiju i te kako mogu da se naprave dobre, ne preterano zahtevne igre.
ako mozes, bolje je da ucis c++, ali ako moras da ucis delphi i neces i delphi i c++ to ne znaci da ne mozes da pises igre.

evo, taj Game Maker o kojem doctor cesto prica je napisan u delphiju.

i ne samo Game Maker.

mySQL administrator, Total Commander, Fruity Loops (FL Studio), Skype, GetDataBack
sve napisano u delphiju, kao i mnogi drugi programi, pa i neke igre.

Pa nije bauk ali se smatra (valjda) da onaj koji predje sve ove korake - zna 90% stvari o izradi 2d igara. Fizika je npr medju onih preostalih 10%. Nemoj da shvatas sve bukvalno. :opanachke

Delphi je mocan alat, ali nije stvoren za igre, vise za aplikacije, sto te, opet, ne sprecava da napravis nesto u njemu :)

Eni
30.6.2009, 10:42
Nije problem objektnog paskala (Delphi) što ne može da napravi komercijalnu igru (Space Rangers 2, Soldat, Age of Wonders 2, Siege of Avalon, ...) o klasičnim aplikacijama da ne govorim (recimo Game maker, Total Commander, Ad-Aware, The Bat!, Spybot, Skype, ...) već taj što je Borland Delphi komercijalno orijentisan na drugo tržište za razliku od C++, dakle, neko tamo je odlučio još davno da game studiji nisu njihova ciljana publika i RAD je zamišljen u drugoj filozofiji, što se odrazilo na postojeće komponente, biblioteke... Pa opet, postoji gomila OpenGL/DirectX biblioteka za Delphi, gomila engine-a, ...

Glupo je jednom rečenicom odbaciti tako moćnu programersku mašineriju u celom segmentu tržišta, pogotovo ako niste radili sa njom i ne znate snagu. Uostalom, igre se mogu pisati i u Pythonu (veliki broj 2D roman-avantura), Javi (Toyota Challange 3D trka, recimo) i uopšte svakom programskom jeziku.

To što se većina piše u c++ ne znači da su drugi nesposobni. Samo da se ne koriste toliko često, ili da ne vidimo toliko upadljivo rezultate njihovog korišćenja (što opet nije posledica kvaliteta same arhitekture).

player1
30.6.2009, 11:28
Ma glavni razlog za C++ je efikasnost nista drugo. Kad super jaka grafika treba da radi na normalnom racunaru, svaka optimizacija je dobrodosla. Manuelno skupljanje "djubreta", alokacija/dealkorcija memorije, pokazivaci i sve ostalo sto cini ovaj jezik tezim za ucenje ali zgodnijim za optimizovanje...

Patton
30.6.2009, 13:23
Par stvari da kazem...

Hvala Saletu za odlicnu temu... ucinio sam je lepljivom i samo malo pobrisao offtopic (poruke tipa: hvala, bravo) :)

Sto se tice tetrisa... onaj ko ne uspe da ga sklepa za dan, treba da batali programiranje. Dobro ajde, meni je trebalo dva dana, posto je to bio moj prvi C program :) I od toga je napravljena komercijalna igra: http://indus3.org/sugatris/screenshots.html

Ne vidim nikakav problem u logici ove igre, samo treba razmisliti malo.

1. Zamislite tablu za tetris kao niz nula. Ivice table cemo oznaciti sa jedinicama, tako da se na kraju dobije nesto ovako:


1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
... itd...
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1


2. Zamislite tileove za tetris opet kao nizove, ali dovoljno siroke da u njih moze stati ceo tile sa sve 4 moguce rotacije i da bi se razlikovali od niza table, oznacicemo ih sa 2:


0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
0,2,0,0, 2,2,2,0, 0,2,2,0, 0,0,0,2,
0,2,0,0, 2,0,0,0, 0,0,2,0, 0,2,2,2,
0,2,2,0 0,0,0,0 0,0,2,0 0,0,0,0


3. Logika igre:

generisati random tile


prekopirati tile na tablu negde na vrh na sredinu


testirati da li je doslo do kolizije sa ostalim tileovima na tabli... tj da li se neka jedinica iz tile niza poklopila sa jedinicom na tabli


ako se poklopila to je ocigledno kraj igre... ako nije za odredjeni broj milisekundi (zavisi od nivoa tezine) tile se spusta polako dole (obrise se sa trenutne pozicije i prekopira na istu x poziciju samo na y+1 poziciju)


u istom trenutku testirati kursorske tastere i dugme za rotaciju i reagovati na njih (pomerati tile po tabli)


ako dodje do sudara tile-a po x osi sa ostalim tileovima ili zidom table ne dozvoliti da se tile dalje pomera


ako dodje do sudara tile-a po y osi, onda ga je igrac ugasio, generisati novi tile, na vrhu table i krenuti sve ispocetka


dodati uslov da svaki put pre generisanja novog tile-a (odnosno kad prethodni padne na dno table), testira se cela tabla da li postoji neki red koji je skroz ispunjen (odnosno da li neki y ima sve x-eve razlicite od 0)


ako ima, setovati sve te x-eve (koji imaju vrednost 2) na 0 i pomeriti ceo niz od te pozicije na gore za jedan na dole


4. opciono ubaciti scoring sistem, nivoe, razne druge oblike... itd... itd...

5. ima li ista lakse od ovog :) po meni tetris je jednostavniji od pacmana, jer nema AI-a

boshkodj
30.6.2009, 23:08
Ajmo ljudi,ako vas ne mrzi,pisite za druge igrice,ovako kao sto je napisao Patton car :D

Eni
30.6.2009, 23:29
Ne vidim nikakav problem u logici ove igre, samo treba razmisliti malo.

To je zato što razmišljaš kao programer i imaš dobre programerske navike (koje se usvajaju najbolje kroz C ili Pascal).

Onaj ko je počeo da radi sa recimo game makerom, koliko god on bio dobar u nekim segmentima, nikad taj problem neće posmatrati na isti način, već uvek kroz gotove sprajtove, kockice, ili nešto slično, i odmah će naići na logičku blokadu - izgledaće mu nemoguće.

Patton
1.7.2009, 10:15
To je zato što razmišljaš kao programer i imaš dobre programerske navike (koje se usvajaju najbolje kroz C ili Pascal).

Onaj ko je počeo da radi sa recimo game makerom, koliko god on bio dobar u nekim segmentima, nikad taj problem neće posmatrati na isti način, već uvek kroz gotove sprajtove, kockice, ili nešto slično, i odmah će naići na logičku blokadu - izgledaće mu nemoguće.
Upravo je u tome poenta programiranja - logika, zato treba sto pre bataliti GM i preci na konkretne jezike; pogotovu sada kada ima gomila biblioteka za crtanje grafike (http://www.libsdl.org/), kontrolu zvuka (http://www.fmod.org/)... itd... itd... koje olaksavaju taj deo oko zezanja sa sistemom. O Visual Studiu kao razvojnom okruzenju da ne pricam; debagovanje ide kao od sale. Windows je (a verovatno i linux) takodje zahvalna platforma za programiranje. Ovo kazem zato sto sam programirao i pod Dos-om, i kad vam se skuca program, niti znate sta je, niti znate gde je, jer se npr restartovao racunar koliko ste ga skucali. Hocu da kazem da je danas mnogo jednostavnije programirati u ozbiljnim jezicima, nego recimo pre 10-15 godina i ne vidim poentu zasto bi se iko zadrzavao u GM-u vise od mesec-dva.

boshkodj
1.7.2009, 13:17
A najgore od svega je to sto oni dok rade u GM-u ne prave igre preko GM jezika nego preko onog clik - drop sistema :D

doctor
1.7.2009, 17:25
A najgore od svega je to sto oni dok rade u GM-u ne prave igre preko GM jezika nego preko onog clik - drop sistema :D

Dosta o GM skontali smo da je smece :D Pa cak i ja :opanachke

Dakle C++ je definitivno naj izbor za izradu igara... Bacio sam se na njega ali stvarno ne znam kako cu nauciti da maipulisem API-jem i kako cu nauciti da direktno radim sa podacima u memoriji... nista mi nije jasno a tutoriali na netu su totalno nepovezani... jedni preferiraju cout<< drugi printf( ... :confused:
Srecno i meni i vama :D

rudar
1.7.2009, 17:37
Polako, tezak je C++ dosta..Doooosta :). Prihvati ovaj savjet i redovno, ali bash redovno radi u njemu jer se one komplikacije brzo zaboravljaju u pochetku. Ja sada ne bih znao ni hello world od nule da napishem :o

Tako da morash da budesh uporan ako zelis da uchish C++, pogotovo ako zelish da se bavish game-devom. Mnogo je tu posla, glavni razlog zashto sam ja prekinuo sa game-dev-ov i prije nego shto sam pocheo. Sada se mnogo vishe zanimam za security, mada je i to opshirno..

Uglavnom, kod C++ u kombinaciji sa game-devom, volja i trud i volja i rad redovni i volja. Tim redom :p

LoshMeeBre
1.7.2009, 18:11
Ja sam tek od skora poceo da ucim C++.. Prvo sam radio pascal/delphi, onda presao na c# i javu, sad se vracam c++u, planiram od jeseni ozbiljnije..

Nikada se nisam bavio OpenGL i DirectX programiranjem, ali i bez tih dzidzabidza moze da se napravi nesto lepo..

npr, bio sam ponosan na svoj Tablic koji moja sestra nije mogla da pobedi :kreza:

sve u svemu, za pocetak najbolje praviti jednostavne 2d igre bez AIa..

pong - skoro sam izdiktirao ortaku preko telefona za par sati, ali je super da se shvati poenta objekata i njihovih atributa. Inace zaista ne vidim sta ima jednostavnije od njega. dva pravougaonika koji idu gore dole, jedna kugla, procedura za odredjivanje kolizije i za kretanje i to je to.. Al je fenomenalno za pocetak..

jako je jednostavno napraviti osnovnu verziju neceg poput chicken invaders-a. A onda se mozete mesecima zabavljati shminkanjem. Grafika, power up-ovi, razliciti neprijatelji, itd, itd..

Minesweeper je isto relativno lako napraviti.. To skoro svi vole da igraju, samo dodajte nesto po cemu ce biti poseban.


Sledeci vazan korak je AI.. Razne igre kartama, podmornice, sah (al to je zaista tesko, bar meni koji lose igram sah) i mnoge druge drustvene igre. Jako vazan korak, treba napraviti ai koji ce u svakom trenutku odigrati na najbolji moguci nacin..


nakon toga pocinje directX programiranje kada uz dovoljno vremena mozete napraviti sta god hocete :kreza: al zato i jeste tesko i placeno. Sve u svemu ljudi, prvo se bacite na jednostavnije stvari, posle ide API itd..

player1
1.7.2009, 18:42
jedni preferiraju cout<< drugi printf( ... :confused:

Printf je standardna komanda za ispis iz C-a. "Count <<" je ubacen u C++ i realno je superiornija varijanta. Koristi to.

Zgodno bi bilo da se napomene, mada je skoro ocigledno, da je C++ backward kompatibilan sa C-om. Tj. svaki program uradjen u C-u ce da radi i u C++. Inace, glavna prednost u C++ je mogucnost objektno orjentisanog programiranja, i to je nesto sto obicno bude teze pocetnicima da skapiraju. Eto, ja sam sa basic-a, skocio na pascal i C bez skoro ikakvih problema, ali mi je bio problem da ukapiram ceo sistem po kome C++ i java rade.


P.S.
Ja volim javu, zasto sto dosta lici na C++, a i jednostavnija je za programiranje. Ali eto, java nije zgodna za igre (mislim komplikovanije, ne "igrice"), bas zbog losih performansi (ali uopste nije losa za razme programcice, tipa JDownloader i slicno). Mada, bilo sta uradjeno na javi ce da radi na bilo kom operativnom sistemom koji ima java virtual masinu.

boshkodj
1.7.2009, 18:44
pong - skoro sam izdiktirao ortaku preko telefona za par sati, ali je super da se shvati poenta objekata i njihovih atributa. Inace zaista ne vidim sta ima jednostavnije od njega. dva pravougaonika koji idu gore dole, jedna kugla, procedura za odredjivanje kolizije i za kretanje i to je to.. Al je fenomenalno za pocetak..

Lako je uraditi koliziju za pong ako mislis da loptica ide samo po pravoj putanji. Razmisli malo da li bi toliko bilo lako da se uradi pod kojim ce se uglom loptica odbiti od "kvadrata" i od "zida".

Patton
1.7.2009, 19:20
Lako je uraditi koliziju za pong ako mislis da loptica ide samo po pravoj putanji. Razmisli malo da li bi toliko bilo lako da se uradi pod kojim ce se uglom loptica odbiti od "kvadrata" i od "zida".
Pa s obzirom da i kvadrat i zid imaju prave stranice, odbice se pod istim uglom pod kojim je i udarila o objekat :rolleyes: Mada uvek se moze dodati caka da ako loptica udara u "kvadrat" koji je u pokretu, dodate joj neku dozu felsha, sto zahteva da se malo procita sta je sinus i kosinus. Nije los efekat i moze napraviti od ponga, pravu malu zezalicu u dva igraca.

irreal
1.7.2009, 19:22
@doctor
ti si vise puta navodio cas da ucis C++ cas da ucis C ?
znas li ti sta ucis uopste ?



Printf je standardna komanda za ispis iz C-a. "Count <<" je ubacen u C++ i realno je superiornija varijanta. Koristi to.

Zgodno bi bilo da se napomene, mada je skoro ocigledno, da je C++ backward kompatibilan sa C-om. Tj. svaki program uradjen u C-u ce da radi i u C++. Inace, glavna prednost u C++ je mogucnost objektno orjentisanog programiranja, i to je nesto sto obicno bude teze pocetnicima da skapiraju. Eto, ja sam sa basic-a, skocio na pascal i C bez skoro ikakvih problema, ali mi je bio problem da ukapiram ceo sistem po kome C++ i java rade.


P.S.
Ja volim javu, zasto sto dosta lici na C++, a i jednostavnija je za programiranje. Ali eto, java nije zgodna za igre (mislim komplikovanije, ne "igrice"), bas zbog losih performansi (ali uopste nije losa za razme programcice, tipa JDownloader i slicno). Mada, bilo sta uradjeno na javi ce da radi na bilo kom operativnom sistemom koji ima java virtual masinu.

prvo, nije Count << nego cout <<

c out, cout i c in, cin.

kao drugo, nece svaki program napisan u c-u da se kompajlira u c++ kompajleru.

nisu ogromne razlike, ali ih ima.

naprimer, alokacija memorije je drugacija (u c++-u ide sa new i delete, ne sa malloc itd)

drugo, u c++-u je obavezno napisati prototip za strukture i funkcije, u c-u nije

ima tako jos stvari.



Lako je uraditi koliziju za pong ako mislis da loptica ide samo po pravoj putanji. Razmisli malo da li bi toliko bilo lako da se uradi pod kojim ce se uglom loptica odbiti od "kvadrata" i od "zida".

nije tesko uopste.

za samo kretanje u bilo kojem pravcu koristis malo trigonometrije (sinus i kosinus) da ne bi bilo samo cetiri pravca (gore desno, gore levo, dole levo i dole desno) vec da moze da putuje loptica pod bilo kojim uglom.

kod kolizije "ugao" kretanja prvo "flipujes" a onda ako se radi o odbitku od "kvadrat" (a ne zid) dodas ili oduzmes odredjen broj stepeni u zavisnosti koliko od centra je loptica udarila.

ako umes da pretvoris stepene u radijane i imas osnovno znanje trigonometrije nije neki problem.


-EDIT-
dok sam pisao Patton me pretece :)

holodoc
1.7.2009, 19:38
Inace, glavna prednost u C++ je mogucnost objektno orjentisanog programiranja, i to je nesto sto obicno bude teze pocetnicima da skapiraju.Ne flejmujem već samo konstatujem :)

Glavna prednost OOP paradigme nad ostalima jeste mogućnost korišćenja design patterna. Prava snaga OOP-a ne leži u osobinama kao što su nasleđivanje, polimorfizmi, enkapsulacija itd. već u načinima na koji se sve te stavke pojedinačno kombinuju. Postoji nekoliko poznatih izreka grupe koja je zbog svoje popularnosti i uvođenja design patterna u praksu dobila famozno ime "Gang of Four" (Erich Gamma, Richard Helm, Ralph Johnson i John Vlissides) i ona kaže "favor composition over inheritance" a šta to konkretno znači shvatiće svako ko ikada bude došao u situaciju da u OOP-u primenjuje design patterne tim pre što ih svaki ozbiljniji projekat sadrži. Inače design patterni se uopšte ne vezuju za bilo koji jezik koji su i onako alati već kada jednom naučite kako koji funkcioniše znaćete kako da ih implementirate u svakom jeziku koji ima osnovne OOP karakteristike kao što su enkapsulacija, polimorfizam i nasleđivanje.

player1
1.7.2009, 19:46
prvo, nije Count << nego cout <<
O boze. :boodala:
Sta ces, nisam skoro nesto programirao u C++-u.


kao drugo, nece svaki program napisan u c-u da se kompajlira u c++ kompajleru.

nisu ogromne razlike, ali ih ima.

Kad sam prvi put ucio C, koristio sam stari Borlandov kompajler za C++ (pod DOSom), i sve je iskompajlirao kako treba, ukljucujuci malloc i slicne stvari.

E sad, ne tvrdim da nisi u pravu, samo da ono sto sam ja radio u C-u je kompajlirano pod C++ bez problema (mada eto, ja sam uvek stavljao prototipove i slicno :D). Verovatno dobar deo kompajlera, ako ne i svi, za C++, mogu da se snadju i sa kodom iz C jezika.

Ne flejmujem već samo konstatujem :)

Idi bre, kakvo flejmovanje. Lepo si objasnio sta je u stvari OOP.

holodoc
1.7.2009, 20:29
Jedna napomena onima koji žele da se bave razvojem igara. Nemojte potcenjivati Flash kao odličnu platformu za učenje osnovnim principima kreiranja igre. Razmislite malo. Dok budete bili u prilici da dobijete nešto što je realno opipljivo u bilo kom drugom jeziku proći će poprilično dugo vremena i izgubićete na vrednom iskustvu koje bi ste stekli kada bi ste od samog početka razmišljali o logici izrade igara. Flash sve to nudi jer omogućava u isto vreme i način da se izrade svi neophodni resursi za igru plus veoma moćno programersko okruženje kao što je ActionScript da bi se realizovala kompletna "igrica".

Pogledajte sledeći link i porazmislite dobro da li bi iskustvo stečeno razvojem bilo koje igre sa linka koji dajem pomoglo u razumevanju nekih osnovnih principa izrade igara ;)

http://www.techcult.com/the-150-best-online-flash-games/

Čujem li to nekoga da kaže "ali to ipak nije ni prineti igrama koje se igraju na desktopu". Seća li se neko bilo koje od PopCap-ovih igara? Evo Flash varijante pa procenite da li nije ista stvar ;)

http://www.popcap.com/gamepopup.php?theGame=zuma

P.S. Nije bitno što naslov članka sadrži "150 najboljih". Bitno je da je to izvodljivo u Flashu i da nije ni na koji način nedostupno ;)

LoshMeeBre
1.7.2009, 23:07
Lako je uraditi koliziju za pong ako mislis da loptica ide samo po pravoj putanji. Razmisli malo da li bi toliko bilo lako da se uradi pod kojim ce se uglom loptica odbiti od "kvadrata" i od "zida".
posto sam prozvan i ja da se javim. Kao sto rekoh osnovan pong je mnogo jednostavan. Koliziji sa plocicom sve sto treba da uradis je:

lopta.Vx:= -lopta.Vx aka. nikakva matematika samo malo mozga.

Kada sam zavrsio osnovni pong onda sam ga sminkao i dodao da se lopta razlocito odbija od odredjenih delova. Na kraju krajeva, tvoja je igrica i ti smisljaj prirodna pravila, sve dok je zabavno :D :D


ELEM, malo teorije :D Java i C# (aka. kopija jave :D) su interpreterski jezici. To im daje mogucnost da se izvrsavaju na svim platformama isto (linux, win, mac, simbian...) ali se na svakom "emuliraju" i rade samim tim sporije od programa odradjenim specificno za tu platformu u c++u npr.

Zato su java aplikacije popularne na internetu i na mobilnim telefonima gde vise razlicitih platformi pristupa nekim aplikacijama koje nisu toliko zahtevne (sto ne znaci da su obavezno flash igrice, igrao sam punokrvni full3d RTS programiran u javi).

Sa druge strane kompleksnie aplikacije se lakse optimizuju na c++-u. To ne znAci da je nemoguce napraviti Cyrsis u javi, al ga TEK TAD niko ne bi mogao igrati.


Obe struje imaju svoje prednosti i mane. Ja smatram da nisi potpun programer ako ne vladas solidno i jednim i drugim taborom.

holodoc
1.7.2009, 23:13
ELEM, malo teorije :D Java i C# (aka. kopija jave :D) su interpreterski jezici.Hm... Mislim da si malo pobrkao lončiće jer se C# i Java koje ja znam dobrano kompajliraju ;)

player1
1.7.2009, 23:38
Java jeste interpreter. Radi preko virtuelne masine. Da bi program radio neophodno je da imas JRE na svom racunaru (verziju zavisno od OS-a).

Kod jave ne postoji klasicno "kompajliranje" nego konverzija sorsa u "byte kod", koji se posle interpreterski izvrsava u virtuelnoj masini na korisnickom racunaru.

LoshMeeBre
1.7.2009, 23:44
Hm... Mislim da si malo pobrkao lončiće jer se C# i Java koje ja znam dobrano kompajliraju ;)

Pa ako cemo tacno java, a i c# su nesto izmedju. Prvo se kompajlira do medju koda koji se onda interpretira na Java virtuelnoj masini.. Zar ne? ;)

edit: player1 je vec objasnio, ne radi mi tastatura pa kucam sporo :D

boshkodj
2.7.2009, 0:27
Ne idite u off :D

doctor
2.7.2009, 13:27
@doctor
ti si vise puta navodio cas da ucis C++ cas da ucis C ?
znas li ti sta ucis uopste ?


Znam sta ucim, i znam osnovne razlike izmedju C i C++ medju kojima su one koje si i ti naveo. Zar ces da mi zameris sto sam pisao cas C cas Cpp? Istina pisao sam to jer je i bilo tako. Navedeni primer me je zbunio, pa sam se sa Cpp bacio na C, e onda sam skontao u cemu je stvar i sad opet ucim Cpp.

No, pitanje je pre bilo kao "Zasto uopste programeri koriste printf bez obzira na to sto je backward compatible?" Dalje, mnogi i ne "poshtuju" ANSI pravila C i C++ jezika u raznim tutorialima koje sam nalazio, tako da nekad neki tutorial ume lako da zbuni coveka raznim peripetijama i mesanjem C i Cpp sintakse.

doctor
2.7.2009, 13:32
Hm... Mislim da si malo pobrkao lončiće jer se C# i Java koje ja znam dobrano kompajliraju ;)

Ovo ne znam iz iskustva, ali koliko sam shvatio citajuci razne tekstove, mislim da je Java cisti interpreterski jezik. Mada sam, naravno, vidjao i *.exe fajlove programa pisanih u Javi, ali i dalje mislim da je to interpretovani jezik, jer na racunaru uvek moraju postojati "runtime" fajlovi za Javu da bi bilo koji program pisan u njima radio. Zar ne?

player1
2.7.2009, 13:54
Inace, ti exe fajlovi uopste nisu izvrsni fajlovi za java program.

Eto, ako si koristio JDownloader ili neki slicni J program, mogao si da primetis da on uopste nema svoj proces u taskmanageru, nego koristi java.exe.

Zasto? Zato sto taj exe nije nista drugo nego "launcher" za java vitruenlu masinu koja ce da interpretira java bajt kod koji dolazi uz taj java program (obicno u jar datoteci).

irreal
2.7.2009, 15:57
nisam ti ja zamerio nista, ja te samo pitam da li znas sta ucis. sad si rekao da znas i to je uredu, kraj price.

kish
2.7.2009, 21:43
Ovo ne znam iz iskustva, ali koliko sam shvatio citajuci razne tekstove, mislim da je Java cisti interpreterski jezik. Mada sam, naravno, vidjao i *.exe fajlove programa pisanih u Javi, ali i dalje mislim da je to interpretovani jezik, jer na racunaru uvek moraju postojati "runtime" fajlovi za Javu da bi bilo koji program pisan u njima radio. Zar ne?

Nope. Interpreteri izvrsavaju source kod direktno. Kompajleri source kod skeniraju, parsuju, kreiraju intermediate code koji prevode u masinski kod (exe). Virtualne masine (Java) su negde izmedju: pri kompajliranju se kreira intermediate kod koji se kasnije pokrece preko virtualne masine. Dakle nije cist interpreterski jezik jer se ne ponavlja ceo postupak prevodjenja svaki put kad se program pokrece.

Patton
2.7.2009, 21:55
Ajde da se vratimo na temu :dedica:

EDIT: Evo neka neko napise najprostije moguce algoritam za pong (kao sto sam ja delimicno uradio za tetris) i moze eventualno pridodati matematicke funkcije za odbijanje loptice pod razlicitim uglovima u zavisnosti gde udari loptica.

player1
10.7.2009, 15:11
Veoma interesantan clanak o programiranju i igarama:
http://www.firaxis.com/jobs/career.php?page=HTPROG09

boshkodj
17.7.2009, 18:27
Ajde ako vas ne mrzi da svako od iskusnijih programera igara napise put kojim je poceo(mislim koje je igre prve pravio) ?

Andross
17.7.2009, 19:27
Tebe bas mrzi da bilo sta smislis? Uzmi pravi zmijicu ili top-down shooter.

irreal
17.7.2009, 19:37
Ajde ako vas ne mrzi da svako od iskusnijih programera igara napise put kojim je poceo(mislim koje je igre prve pravio) ?

brzas mnogo.

vidim po drugim temama da si zbudzio iks oks i pong (koji rade, ali su daleko od gotovog proizvoda)
i vec trazis sta ces dalje.

lepo je sto imas zelju da radis komplikovanije stvari, ali neces postati game developer preko noci.

odnosno, nemoj to shvatiti kao fiksnu ucrtanu putanju do cilja.

ne moze se reci "napravi iks oks, pa pong, pa pekemena... pa xy e, sada si profesionalac"

probaj da prosiris znanje na ovome sto si do sada napravio, probaj da naucis po nesto o svim aspektima programiranja (igara).

evo, sad cu da nalupam ovako nabrzinu sta sve mozes da naucis na jednom pongu :

Glavni meni sa pod menijima, tranzicije izmedju menija i igre, cuvanje podesavanja u fajlu.

high score lista

nivoi sa preprekama, level editor.

jos elemenata (teleporti, ubrzavaci, usporivaci, dinamicke prepreke).

to su samo neke ideje koje su meni pale napamet odmah.

najbolje bi bilo da ti razmislis sta bi tebi bilo zabavno za implementaciju.
po mogucstvu nesto sto otprilike imas ideju kako bi trebalo da funkcionise ali nemas u glavi tacno u detalje kako ce raditi.
i onda se baci na razmisljanje, guglanje i resavanje problema.


ustvari pokusavam da ti kazem "stici iskustvo"
nemoj shvatati kao cilj "sto pre napraviti igru i krenuti na sledecu"


naravno, to je sve jedan veliki savet, a kako ces postupiti to ti najbolje znas :)

M.Silenus
17.7.2009, 20:44
Ajde ako vas ne mrzi da svako od iskusnijih programera igara napise put kojim je poceo(mislim koje je igre prve pravio) ?

Predložio bih ti da pročitaš sledeći članak: How do I make games? A Path to Game Development (http://www.gamedev.net/reference/design/features/makegames/default.asp) sa GameDev.net (http://www.gamedev.net). U članku autor preporučuje listu igara za napraviti i pri čemu ukazuje na nove stvari koje ćeš naučiti sa svakom novom igrom.

Dorfeus
9.8.2009, 3:50
Da li neko moze da mi preporuci koji free game engine da koristim, posto ih ima dosta pa ne znam za koji da se odlucim :confused:. Hvala.

Patton
16.9.2009, 13:39
Da li neko moze da mi preporuci koji free game engine da koristim, posto ih ima dosta pa ne znam za koji da se odlucim :confused:. Hvala.
Malo kasnim sa odgovorom... reci nam kakav engine ti treba (2d, 3d, osnovne biblioteke za grafiku, zvuk, input)...?

Ivan-94
16.9.2009, 13:54
Da li neko moze da mi preporuci koji free game engine da koristim, posto ih ima dosta pa ne znam za koji da se odlucim :confused:. Hvala.
Evo ja sam u ovoj temi neke naveo.Imas i 2d i 3d
http://www.sk.co.yu/forum/showthread.php?t=47539

fingerprint
16.9.2009, 14:41
Znam da ce ovo izazvati neku prozivku ili nesto a receno je vec dosta puta ali ja moram (nemojte da se neko nadje uvredjen ili prozvan, ovo je moje misljenje) :
1. Mislim da C++ NIJE dobar jezik za pocetnike (odgovor na prvu poruku u temi). C++ je jedan od najkomplikovanijih zveri od jezika na svetu, bez preterivanja. Pocetnik treba da uhvati konac sa programiranjem, da nauci kako da razmislja kao programer, a ne da juri gde mu curi memorija. C++ programer mora (ili bi trebalo) da zna sta njegov kompajler radi u pozadini. Trebao bi da razume razliku izmedju alokacije na stack-u i heap-u, da zna kako da napravi staticki operator overload da npr. natera std::map da koristi std::string kao kljuc, da zna razliku izmedju virtuelnih i ne-virt. metoda, koje posledice to nosi. Diamond inheritance problem? Virtuelno nasledjivanje? Sta ce sve to pocetniku? Pocetnik u C++ vrlo verovatno nece umeti da napise kod dovoljno dobar ni da pridje brzini jedne Jave, tako da argument of efikasnosti definitivno otpada. Ista stvar kao i sa rucnim pisanjem assembly-a, samo onaj ko stvarno poznaje jezik moze da iskoristi sve sto on pruza.

2. C++ nije najbolji PL za pisanje igara, najbolji je onaj u kome igra moze da se napravi brzo i sa sto manje muke, a da ispunjava zadate zahteve. Znaci najbolji je onaj koji radi pos'o. Primer toga je ekipa koja pise Hellthrone Lepterija. Sto se tice ostalih jezika, Java ili C# su po mom misljenju najbolji za pocetnike. Jasni su, odlicni jezici, koristi ih ogroman br ljudi, i korisni su. Po mom misljenju C# je bolji jezik (pruza vise dobrih stvari) od Jave, ali ga koci to sto je prilicno M$ centrisan. Ako se neko setio Mono-a, nek pogleda poslednje benchmarkove istog i izbrise ga iz glave :D

3. Ne postoji jedan jezik u kome se pisu AAA naslovi. Mislite da se utility programi (map editori, neki mission editori i td) uvek pisu u C++-u? U vecini slucajeva ne. A evo jos jedne jako bitne stavke : ako hocete da promenite atribute nekog oruzja u igri (npr damage), sta cete da radite, da rekompajlirate celu stvar? Jok, za to se koriste skrit jezici (tipa Lua, unreal scritpt, i td) ciji se interpreteri embeduju u engine igre.

PS : Koga zanima graficko zezanje, nek pogleda processing.

PPS : Sto se tice game makera i slicnih stvari, i one imaju svoje mesto, ali nisu preterano korisni kao alat za ucenje.

PPPS : Otiso sam da pojedem nesto.

PPPPS : jos jedna preporuka koja je meni dosta pomogla. Probajte razlicite jezike po koji mesec. Svaki sledeci ce vam ici lakse i brze, a naucice vas puno. Probajte i one malo redje, npr Lisp, ili Haskell (ja nisam uspeo da ga ukacim nikako). Svako novo iskustvo naucice vas nesto sto cete moci da koristite u drugim jezicima. Osim brainf*ck-a, on nije nesto posebno za ucenje.

PPPPPS : A da ne bude off, uskoro cu napisati neki mali tutorial za neku sitnu igru i kao sto rece Patton.

Andross
16.9.2009, 15:29
Potpisujem :)
Sto se performansi tice evo jednog primera:
Ja recimo uradim inventory na nacin koji znam da ce 100% da radi. Posle par dana uvidim bolji nacin i prepisem kod i dobijem osetni performance boost (brze ucitavanje i sortiranje itema).

Jezik nije boostovao performanse jer je uber brz ili sta ti ja znam, vec ja jer sam napisao kod na bolji nacin. Tako da batalite price "C++ je godlike" i uzmite jezik i alate koji vam odgovaraju.

player1
16.9.2009, 16:15
3. Ne postoji jedan jezik u kome se pisu AAA naslovi. Mislite da se utility programi (map editori, neki mission editori i td) uvek pisu u C++-u? U vecini slucajeva ne.

I s razlogom. Performanse su nebitne za editor, tako da je lakse i brze napraviti isti u nekom drugom jeziku koji nije kompleksan kao C++.

Uvek je najbolji jezik koji najbolje radi za konkretnu situaciju.

Primer:
Civ3 je uglavnom radjen u obicnom C-u (endzin), ali su pathfinding algoritne radili u asembleru.

Zasto: Zato sto su isti veoma zahtevni, i u vreme kad se igra radila, bilo kakav drugi nacin bi bio previse spor za komercijalni naslov.

Editor za istu igru nije radjen u C-u, ne secam se sta su koristili.


P.S.
Stariji Civ naslovi su koristili neke heruistike umesto pravog pathfining algoritma koji su mnogo brze ali veoma neprecizne. Cesto se desavalo da jedinica ne uzme najbrzi put i slicno.

P.P.S.
Za male igre C++ je overkill. Nije cudno sto je adobe flash najpopularniji za iste (iako je ubogo spor).

P.P.P.S.
Prednost C-a (pa i C++) je sto je "nizi" jezik, tj. blizi je masniskom nego neki drugi jezici, sto je dobro ako je cilj sto je moguce bolje optimizovati kod. Npr. ako treba da se napravi neki endzin (od nule) za zahtevnu igru. Dosta stvari koje kompajleri drugih jezika rade automatski moraju kod njega da se rucno urade (alokacija/delokacije memorije, nepostojanje garbage kolektora i slicno).

fingerprint
17.9.2009, 13:16
Aj kad sam vec počeo, vidim da mnoge zbunjuje koncept kompajliranja, interpretiranja, i šta su tacno java i C#. Objasniću onako kako ja to razumem, ako grešim neka me neko od starijih i iskusnijih ispravi :

Kompajlirani jezici su oni jezici koji se pomoću kompajlera prevode direktno u mašinski kod (ili u neki drugi jezik koji se onda prevodi u mašinski kod). Manje su portablini od interpretiranih jezika. Primeri : C++, C, D...

Interpretirani jezici se eventualno prevode u bytecode, ali rade tako što ih interpreter interpretira u toku rada. Interpreter se sastoji (uglavnom) od leksera i parsera, gde lekser služi da jezik pretvori u logičke strukture, koje parser moze da parsira. Tj, lekser "tokenizuje" source kod, i ne zanima ga šta on radi. Parser je deo interpretera koji radi šta već treba kad naidje na određeni opcode. Ovi jezici su obično sporiji, ali dosta više portabilni. Čisti interpretirani jezici su Lua, Bash, Python (koliko ja znam).

Java : Java tehnički jeste interpretiran jezik, jer se kompajlira u bytecode, koji interpretira VM (Virtuelna Masina). Sad, šta tačno radi VM, nikako nisam uspeo da provalim (a jurio sam) jer svuda čitam različite stvari. VM je nešto što emulira neku platformu, u ovom slučaju to omogućava javi da bude 100% portablina. Dva najpopularnija načina za implementaciju VM-a su interpretacija i JIT (Just in Time Compiling, ili kako ja to zovem đitanje). Ako JVM intepretira, onda je java čist intepretiran jezik, ako java đita, onda nit' smrdi nit' miriše, jer je đitanje u stvari prevođenje (kompajliranje) u runtime-u, pa onda java nije ni intepretirana ni kompajlirana. Kaže se da je java Đitovana, ako baš hoćete nekog da zbunite, recite mu da se "java đita".

C# : E, ovo je čudna zver. C# nije đitovan, on se prevodi u MSIL (CIL), a MSIL je interpretiran od strane .NET virtuelne mašine, koja ga, koliko ja znam, đituje. Šta to znači? Pa, Microsoft voli da štanca jezike (od kojih je C# ubedljivo najbolji). Znači, svi M$ jezici : C#, VB, J# se prevode u MSIL/CIL. MSIL znači "Microsoft Intermediate Language", a CIL "Common Intermediate Language". Isti đavo, samo nisam siguran koji od ta dva da koristim, pa pišem oba.

A sad bih napisao nešto kratko na temu Java vs C#, i voleo bih da vidm da li se slažete ili ne, i zašto. Po mom mišljenju, C# bi rasturio Javu, samo kada bi bio tako portabilan. .NET ima najbolju implementaciju C#, Mono se trudi al' je*iga. Što se tiče sintakse, evo par stvari koje C# ima a Java nema izgovor što nema :

1. C# ima objekte koji se prenose po vrednosti, umesto po referenci (strukture).
2. C# ima alokaciju na steku (strukture)
3. C# ima delegate, ekstremno moćne funktore. To što ih java nema u startu ograničava programera. Smem da kažem da onaj ko kaže da se ista stvar postiže interfejsima zaslužuje da bude bičevan.
4. C# ima operator overloading. Argument koji Javaši imaju za ovaj nedostatak leži u ideji da programerima treba odbrana od sebe samih. To je uglavnom tačno, ali ako će neko da te spasi saplitanja tako što će ti amputirati noge, onda on ne pomaže preterano. Operator overloading je stvar koja PODIŽE nivo apstrakcije tako što programer korisnik koji (npr) koristi vašu generičku smart-pointer klasu uopšte ne mora da zna da to nije običan pointer. Ili klasa za rad sa vektorima, šta izgleda lepše, i šta je lakše za rad (mada smo svi vidjali i krajnje kretenske zloupotrebe operator overloadinga):

//C#, C++
Vector a = b * 2 + c - 6 * d;

//Java
Vector a = (b.multiply(2)).add( c.subtract( d.multiply(6) ) );


5. C# ima propertije (properties) i atribute

Ako se neko seti još nečega, nek navede :kreza:
Ali iako mislim da je C# bolji i moćniji jezik, više volim da koristim Javu, jer radi na mojoj Fedorici :)

MG-RAY
17.9.2009, 20:46
... MSIL/CIL. MSIL znači "Microsoft Intermediate Language", a CIL "Common Intermediate Language". Isti đavo, samo nisam siguran koji od ta dva da koristim, pa pišem oba....

IL. :D

Ima jos jedna stvar u kojoj java ne moze da parira C#... Refleksija i Emitovanje koda... Sto bi vam, npr., omogucilo da otvorite plugin biblioteku, ucitate tip iz nje, implementirate mu interfejs, dodate potrebne metode, i ponovo tu novu klasu sacuvate u fajl... Ili naterate program da sam sebi prepravlja kod... Ne tako cesto koriscena opcija, ali vrlo zanimljiva...

doctor
17.9.2009, 21:15
Potpisujem :)
Sto se performansi tice evo jednog primera:
Ja recimo uradim inventory na nacin koji znam da ce 100% da radi. Posle par dana uvidim bolji nacin i prepisem kod i dobijem osetni performance boost (brze ucitavanje i sortiranje itema).

Jezik nije boostovao performanse jer je uber brz ili sta ti ja znam, vec ja jer sam napisao kod na bolji nacin. Tako da batalite price "C++ je godlike" i uzmite jezik i alate koji vam odgovaraju.

Amin. :)
I sto je finger rekao 1. Mislim da C++ NIJE dobar jezik za pocetnike - Amin i tome :)

Konacno reci koje su na mestu :)

Vidim ja da je C# bas dobar, je li?
Pa sta kazete da "migriram" sa VB6 na njega (omg bice malo tesko)? :D (pretpostavljam da sledi odgovor OFC :) ) Sta ce mi on pruziti?
P.S. Najvise se bavim izradom nekih utilityja za sve i svasta, editora svega i svacega itd...?

Dorfeus
17.9.2009, 22:41
Malo kasnim sa odgovorom... reci nam kakav engine ti treba (2d, 3d, osnovne biblioteke za grafiku, zvuk, input)...?
Neki 2d engine, posto ne verujem da bih znao da uradim nesto u 3d-u pa malo da se promajem uz 2d:). Probacu neki od ovih sto je Ivan94 postavio.

Markonije
18.9.2009, 0:11
Po meni ne treba se lomiti sa 'fizickim modelom' tetrisa i iks-oks algoritmima,pocnite od jednostavnih slika na backgroundu forme i svakoj slici dodelite razlicita svojstva i click driven dogacaje u sprezi i dobijate jednostavnu click-point avanturu.

Treba vam minorno znanje bilo kog 'vizuelnog' razvojnog okruzenja:

-ispis teksta
-dinamicko uklanjanje i dodavanje dugmati,pics,gifova i sl.
- i snimanje prostih txt fajlova sa podacima koji menjaju samu igru(rudimentirani save option)
-i play prostih audio fajlova koji su vezani za dugme ili stanje neke javne promenljive
- i naravno dosta maste i laganog 'kupljenja' novih forica

Meni je sve ovo islo od ruke,pa sam cak pomocu timera(vestackog vremena u programu) napravio da se mora sacekati odredjeno vreme da bi se nesto desilo ne vezano za interakciju igraca.

Sve je bilo ok dok nisam hteo da uozbiljim stvari malo jer mi je trebao neko da nacrta avanturu u jedinstvenom grafickom stilu koji se proteze kroz igru da sve to ne izgleda mrtvo previse.

MG-RAY
18.9.2009, 9:05
Vidim ja da je C# bas dobar, je li?
Pa sta kazete da "migriram" sa VB6 na njega (omg bice malo tesko)? :D (pretpostavljam da sledi odgovor OFC :) ) Sta ce mi on pruziti?
P.S. Najvise se bavim izradom nekih utilityja za sve i svasta, editora svega i svacega itd...?

Pokusaj prvo za VB.NET, obzirom da slicnu sintaksu vec poznajes, pa vidi kako ces se uklopiti sa samim Framework -om. Posle toga predji na C#, ako ti se ceo koncept dopada.

boshkodj
18.9.2009, 10:13
Vidim ja da je C# bas dobar, je li?
Pa sta kazete da "migriram" sa VB6 na njega (omg bice malo tesko)? :D (pretpostavljam da sledi odgovor OFC :) ) Sta ce mi on pruziti?
P.S. Najvise se bavim izradom nekih utilityja za sve i svasta, editora svega i svacega itd...?
Ako si programirao u jos nekom prog. jeziku osim VB6 ( konkretno mislim na C, C++ ili Javu ) onda ti nece trebati vise od 5 - 6 dana da se naviknes na C#.
P.S Najvise u C# - u volim .ToString() , a vi? :D

sasha vukelic
18.9.2009, 11:04
1. Mislim da C++ NIJE dobar jezik za pocetnike...nije bas tako jednostavno.

s jedne strane se slazem. bilo bi najbolje kad bi neko poceo sa jednostavnijim jezicima i na kraju presao na c++ ako se stvori potreba za tim. ali za to treba dosta vremena, prvo da se do neke mjere savlada taj jedan (ili vise jezika), a onda treba dosta vremena i za c++.

s druge strane, opet se slazem da c++ nije lagan za pocetnike. medjutim, daleko od toga da je nemoguce tezak. za rad na jednostavnim igricama vam ne treba savrseno poznavanje jezika.

a tu su i druge stvari koje se trebaju razmotriti. npr c++ ima dosta podrske na internetu, mozete skinuti milione fazona i rjesenja, naci tutorijale za ono sto vam je nejasno. ako pogledate ponudu poslova za programere vezano za igre, c++ je najzastupljeniji.

u mom slucaju, prvi jezik je bio microsoftov qbasic. vise ili manje uspjesno sam se bavio raznim jezicima i glupostima i nema sta nisam probao. u posljednje dvije godine na posu radim u c#/vs2008 i mogu reci da debagovanje divota. da li je sad to dobar izbor za pocetnike, ili uopste za pravljenje igara (uz XNA), ne znam.

na kraju, koji god programski jezik izaberete za prvi, u njemu cete moci svasta napraviti i svasta nauciti. ono sto svi vole i zele jesu brzi rezultati, a to je tesko postici, opet: koji god programski jezik izabrali.

doctor
19.9.2009, 22:29
Pokusaj prvo za VB.NET, obzirom da slicnu sintaksu vec poznajes, pa vidi kako ces se uklopiti sa samim Framework -om. Posle toga predji na C#, ako ti se ceo koncept dopada.

Pa radim pomalo i u VB.Net i nije tako lose...
Eh sad, zanima me da li da ucim C# ili C++ jer sam nabavio adekvatnu literaturu za oba?
Kao logican odgovor se namece C++ ali ipak...? prednosti jednog nad drugim?

Eh, da, posto su oba jezika "C", pretpostavljam da im je sintaksa vrlo slicna?

boshkodj
20.9.2009, 12:51
Pa radim pomalo i u VB.Net i nije tako lose...
Eh sad, zanima me da li da ucim C# ili C++ jer sam nabavio adekvatnu literaturu za oba?
Kao logican odgovor se namece C++ ali ipak...? prednosti jednog nad drugim?

Eh, da, posto su oba jezika "C", pretpostavljam da im je sintaksa vrlo slicna?
Pa zavisi sta hoces... Ako hoces da radis igre ( slozenije ) onda uci C++ , a ako hoces da se bavis ovim sto sad radis ili da radis prostije igre , onda uzmi C# ... Sintksa im je VRLO slicna... Tako da ako naucis C++ bice ti lako da se prebacis na C# ... ;)

P.S Ovo je moje misljenje , verovatno neko drugi ne misli k'o ja :)

voodoo_
21.9.2009, 11:49
Samo bih da citiram Toma Cargilla, autora brojnih knjiga o programiranju:

"If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one?"

:)

PrO_bOy
22.4.2010, 14:50
mi uskoli radimo sa visual basicom da li on moze da sluzi i za ovo a tekst je super:alealeee::alealeee::alealeee::alealeee:

irreal
22.4.2010, 16:05
visual basic nikako nije dizajniran sa pravljenjem igara na umu.

visual basic se najbolje snalazi sa aplikacijama u prozoru koje koriste gotove kontrole da sastave interfejs.

e sad, to ne znaci da visual basic ne moze da se koristi za pravljenje igre, ali velika vecina igara u vb-u su napravljene da bi dokazale koncept, da bi pokazale da je moguce.

ako ozbiljno razmisljas o pravljenju igara, batali vb.

to ne znaci da moras da naucis C++ ili C, i ako su oni najbolji izbor, ima dosta drugih jezika koji ce ti posluziti da pravis igre (naravno, ne moze svaki jezik sve vrste igara). Izaberi nesto sto ti se svidi: Java, Python, C#, Actionscript, GML... u cemu god da radis stecices neko znanje, napredovaces i ako si dovoljno uporan, napravices nesto igrivo :)

sasha vukelic
23.4.2010, 8:19
jedino sto bih dodao je, ako krenes nesto da pravis, kreni od jednostavnih stvari. mozda negdje i postoji tutorijal za open-world multiplayer fps itd. pa ti se ucini da bi takvo nesto mogao da napravis... nemoj! samo ces se iznervirati i bataliti programiranje.

to sto naucis u vb, vjerovatno ce ti biti dovoljno za neku jednostavnu igru... npr. kompjuter "zamisli" jedan broj, a ti treba da ga pogodis... sto ce u buducnosti (kada postanes pravi programer) prerasti u "pogodi broj, dok balansiras jabuku na bilijarskom stapu, pucajuci u mafijase, koji prate tvoj auto."

Todors
30.4.2010, 9:45
P.S Najvise u C# - u volim .ToString() , a vi? :D

Mnogo jaka metoda, a još je i bolja u kombinaciji sa Int32.Parse() ;)

irreal
30.4.2010, 15:53
Mnogo jaka metoda, a još je i bolja u kombinaciji sa Int32.Parse() ;)

:S

ako neki podatak moras da pretvaras u string da bi taj string parsovao u int, nesto ne radis dobro ;)

mozda ti treba samo castovanje ?
aj navedi primer gde to koristis.


inace, obrati paznju i na TryParse, koji je bolje resenje ako nisi siguran da je ulaz provereno validan int.

Todors
30.4.2010, 16:51
Najvise se koristi kada zelis da iskoristis vrednost iz textboxa. Npr. uneses broj u textbox, pa ga parsujes u int ili sta ti vise odgovara za dalju obradu. Ne znam kako bi drugačije to izveo.

irreal
30.4.2010, 18:43
Najvise se koristi kada zelis da iskoristis vrednost iz textboxa. Npr. uneses broj u textbox, pa ga parsujes u int ili sta ti vise odgovara za dalju obradu. Ne znam kako bi drugačije to izveo.

ako uzimas vrednost iz textboxa, ne treba ti .ToString() !

uradio bi nesto tipa int.Parse(textbox1.Text);

ja te pitam gde to idu u kombinaciji int.Parse(nesto.ToString());

daleko od toga da nema situacija gde je ovako nesto potrebno, al uglavnom nije.

recimo, kada citas vrednost iz DataTable, dobices je kao genericni "object"

prvi instinkt ce ti mozda biti da na tom objectu pozoves .ToString() pa da to ubacis u int.Parse();

medjutim to je bacanje i memorije i procesora, jer ako ti u polju u tabeli vec stoji int, mozes taj objekat da kastujes, tako da bi int.Parse(polje.ToString()); zamenio sa (int)polje;

Todors
30.4.2010, 22:12
Uh, nismo se razumeli.
ako uzimas vrednost iz textboxa, ne treba ti .ToString() !

uradio bi nesto tipa int.Parse(textbox1.Text);

Na to sam i ja mislio.


ja te pitam gde to idu u kombinaciji int.Parse(nesto.ToString());

Nisam ni mislio na ovu kombinaciju, ne znam odkud ti to, vec da prvo parsujes vrednost, pa da je onda obradis kroz algoritam i da na kraju prikazes obradjenu vrednost sa ToString. U principu se slazem sa tobom :).

boskodrakulovic
23.10.2010, 23:05
Bravo. Dobar tekst.

Mislim da mozda ne bi bila losa ideja opisati proces pravljenja jedne relativno jednostavne igre.
ne mora se tu koncentrisati na tacan kod, bitan je proces razmisljanja, nacin resavanja problema. sta uraditi kada ne znas kuda dalje. kako debugovati.

cisto da ljudi koji nemaju nikakvog iskustva steknu neki osecaj kako sve to izgleda.

ukoliko mislite da bi ovo bilo iole korisno ja mogu da napisem proces pravljenja ponga za 4 igraca u c++-u ili recimo onaj moj remake Logicala.
Ako neko zna da pravi igru onda sam to ja,Znam da uradim igrace,neprijatelje i ostalo ukljucujici i pozadinu i znam da im namestim kretanje

boskodrakulovic
23.10.2010, 23:07
visual basic nikako nije dizajniran sa pravljenjem igara na umu.

visual basic se najbolje snalazi sa aplikacijama u prozoru koje koriste gotove kontrole da sastave interfejs.

e sad, to ne znaci da visual basic ne moze da se koristi za pravljenje igre, ali velika vecina igara u vb-u su napravljene da bi dokazale koncept, da bi pokazale da je moguce.

ako ozbiljno razmisljas o pravljenju igara, batali vb.

to ne znaci da moras da naucis C++ ili C, i ako su oni najbolji izbor, ima dosta drugih jezika koji ce ti posluziti da pravis igre (naravno, ne moze svaki jezik sve vrste igara). Izaberi nesto sto ti se svidi: Java, Python, C#, Actionscript, GML... u cemu god da radis stecices neko znanje, napredovaces i ako si dovoljno uporan, napravices nesto igrivo :)

Ja sam se registrovao za YoYo Games,i sve igrice mi imaju rate 5 zvezdica:dzavo:

boshkodj
23.10.2010, 23:40
Ja sam se registrovao za YoYo Games,i sve igrice mi imaju rate 5 zvezdica:dzavo:
Što si opak :dzavo:

Geomaster
24.10.2010, 0:07
Što si opak :dzavo:
http://api.ning.com/files/snNCzw4wMFFqoc3-1Uca89IlgUVwpKYJzu21048ueZOu7DOWB8jSIPnsg-mIiDcCJlPupyluT-lC3JG4zuYN2fcstxJEkKwV/trollsinternet1.jpg

doctor
24.10.2010, 12:09
Ako neko zna da pravi igru onda sam to ja,Znam da uradim igrace,neprijatelje i ostalo ukljucujici i pozadinu i znam da im namestim kretanje

Ja sam se registrovao za YoYo Games,i sve igrice mi imaju rate 5 zvezdica:dzavo:

Kad čitam ovako nešto, osećam kako mi nešto skače u stomaku, majke mi.

Highlander
26.10.2010, 14:12
Kad čitam ovako nešto, osećam kako mi nešto skače u stomaku, majke mi.
I meni, ali je to zbog smeha. :D Pustite lika, neka piše, uvek mi ulepša dan.
"Znam da pravim dobro zvukove jer sviram el. gitaru" :rofl:

siv0nja
26.10.2010, 19:41
A jeste primetili što voli da citira Irreala-a :) , i kako komentari nemaju veze sa citatima :facepalm

irreal
26.10.2010, 20:48
to je neverovatna cast i privilegija.

vi nikada necete znati kako je to imati uhoditelja na sk forumu :)

Geomaster
26.10.2010, 22:18
A jeste primetili što voli da citira Irreala-a :) , i kako komentari nemaju veze sa citatima :facepalm
Verovatno ne zna za dugme Odgovori, pa mora da ide na Citat da bi došao na stranicu za odgovor :a_whistli

doctor
26.10.2010, 22:25
Ali to ne menja činjenicu da ga uhodi :D

boshkodj
26.10.2010, 22:48
Ali to ne menja činjenicu da ga uhodi :D
I to ne menja cinjenicu da ga sad hranite :D

doctor
26.10.2010, 22:53
Očekivao sam takav odgovor :D
Onda, kako ono beše... </conversation>

boshkodj
24.3.2011, 21:48
Primetio sam da se mnogi trude da imaju sto vise redova, dajuci svom projektu na tezini. Valjda je cilj uraditi isti posao sa sto manje koda? :icon_scra

Geomaster
24.3.2011, 22:04
Šalim se. Realno tih 15.000 njemu verovatno predstavljaju svojevrsni achievement, dok pojedincima to verovatno ne predstavlja ništa, al' on toga nije svestan, a trebalo bi da postane svestan ;)
Kvantitet≠kvalitet. Mene je sramota da priznam koliko sam hiljada redova iskucao i onda skontao da je đubre i da moram da ga napišem ispočetka :a_whistli

Teva
24.3.2011, 22:17
Primetio sam da se mnogi trude da imaju sto vise redova, dajuci svom projektu na tezini. Valjda je cilj uraditi isti posao sa sto manje koda? :icon_scra

A zavisi od sadržine redova :) Ja recimo kad kucam volim svaki početak i kraj bloka (vitičaste zagrade xD ) da stavim u novi red :) i da uvlačim sve u stranu :)
I ispadne program za 100inak redova duži a nema ništa pametno sem tih viška redova xD :D

doctor
24.3.2011, 23:57
Ja recimo kad kucam volim svaki početak i kraj bloka (vitičaste zagrade xD ) da stavim u novi red :)
Umm... Po meni je to sasvim dobra (ako ne i neophodna) navika, ništa čudno, to i ja radim da bih kasnije čitao kod normalno.

boshkodj
25.3.2011, 1:11
A zavisi od sadržine redova :) Ja recimo kad kucam volim svaki početak i kraj bloka (vitičaste zagrade xD ) da stavim u novi red :) i da uvlačim sve u stranu :)
I ispadne program za 100inak redova duži a nema ništa pametno sem tih viška redova xD :D
Nisam mislio bukvalno da ima sto manje redova, naravno da je bolje kada je kod pregledniji, i kada se na nekim mestima stavljaju komentari, to je sasvim uredu :)

mikronac
26.6.2011, 1:03
Svako ko zeli da pravi igru a dosao je na ovaj forum da procita nesto o tome treba da postavi sebi nekoliko pitanja.

1. Da li sam na ovu ideju dosao igrajuci WoW , CS:S (neki AAA naslov) pa sam shvatio da bih ja to bolje napravio?
1. Da li ja mozda ipak zelim da budem scenarista, "designer" ("gameplay") ili "artist"?
Ako je odgovor pozitivan, promasili ste temu.
2. Da li zelim sam sve to da uradim ovih dana?
Ako je odgovor pozitivan, razmislite malo bolje i informisite se malo vise o razvoju igara.

2. Da li hocu da to bude moj hobi?
Ako je odgovor potvrdan, to je lepo. Znaci da ste strastveni igrac, volite kreativnost,
umetnik ste i filozof.(Ako niste znali u Americi je gamedev progleasen za umetnost).
U tom slucaju za vas je nesto sto je "iz programerske perspektive" brzo, razumljivo,
dostupno,a to je po mom izboru Flesh ili C# i XNA.

3. Da li time hocu profesionalno da se bavim u zivotu?
Trebalo bi razmisliti o upisu nekog fakulteta (ETF, PMF, FON... ). Pa tada vam ova tema
nece ni biti potrebna. Programiranje je nauka, umetnost, zanat.... I ne uci se preko noci ili
dve ili sto, uci se celog zivota!!! Kao programer u nekoj velikoj firmi koja se bavi razvojem
igara, vas posao je da brzo, efikasno razvijate odredjeni deo softvera (npr. fizika, AI...) ili
cak deo nekog dela. Mozete da radite na engine-u ili nekom tool-u (npr. map editor).
Vasa uloga je da razvijate optimalan, ponovo upotrebiv softver. Programer igara je nista
drugo nego programer. Kod Indie je malo drugacije, jer tu imate ulogu svega sto je potrebno
jednom timu, i mislim da je to ubedljivo nazanimljivije. :)

Eto toliko od mene...napominjem, ovaj tekst je namenjem pocetnicima i treba da im da neke smernice. Pozdrav.

mikronac
26.6.2011, 20:30
Dodatak:

Ah. Malo sam prelistao forum i saosecam se sa svim pocetnicima koji tumaraju okolo naokolo, trazeci
odgovore na svoja pitanja.Svako od njih treba da porazmisli o gore navedenim pitanjima.
Pre svega, da napomenem da nemam mnogo iskustva u razvoju igara pa tako da ovo izlaganje predstavlja
moje vidjenje stvari. Uzgred budi receno, trudio sam se da sve spustim na sto nizi nivo da pocetnicima bude sto jasnije.
Takodje, nisu toliko bitne cinjenice koliko da se shvati poenta.
Da krenem od istorije. Kada su se racunari jos razvijali, ljudi koji su razvijali hardver razvijali su i softver.
To je predstavljao znacajno mali broj ljudi, koji su cinili tadasnju inzenjersku elitu potkovanu znanjem matematike,
fizike i elektrotehnike. Tada zanimanje programer jos nije ni postojalo. Jedna od prvih video igara napravljena je
da se prikazuju na osciliskopu (merni uredjaj koji su ti isti inzenjeri koristili za razvoj racunara). Tu igricu
koja je bila jako prosta (tenis) , napravili su ne zbog zarade i profita, vec iz cistog licnog zadovoljstva. Ona nije posedovala
pricu, grafiku niti zvuk. Tennis for Two (http://en.wikipedia.org/wiki/File:Tennis_for_Two_-_Screen.png)
Kao sto vidite ti ljudi nisu morali da znaju da nacrtaju bilo sta vise od lineje i loptice, niti da iskomponuju bilo
sta vise od jednog beep.
Vremenom, razvoj hardvera i softvera je napredovao. Pa su racunari postali sve pristupacniji, a programski jezici sve laksi
za upotrebu, manje apstraktni vecem broju ljudi. Tako je i broj ljudi koji umeju da programiraju rastao pa je nastalo zanimanje programer. Time je
rastao i broj video igrica, takodje zbog entuzijazma a i da se mozda nesto zaradi. Kako je konkurencija rasla, tako je rasla i potreba
za sto boljim, lepsim i zanimljivijim igrama. A razvoj video igara je postala industrija. Na jednoj igri je radilo sve vise ljudi, razlicitih profesija.
Kao sto vec rekoh, javila se potreba za scenaristima, muzicarima, slikarima, dizajnerima, "level designer", testerima......
Tako je uloga programera u osmisljavanju jedne igrice sve vise opadala.
I tako dosli smo do poente. Programeri koji rade u nekoj firni danas za razvoj igara programirju engine i tool-ove, ne prave igrice.
Pa da malo uprosteno pojasnim ulogu navedenih.
Engine (u daljem tekstu endzin)
Endzin je srce igrice, motor i pokretac. Jedan endzin moze se sastojati iz vise endzina (za Grafiku, Fiziku, zvuk...).
Pa sta je to endzin? To je specijalizovani program, kao i bilo koji koji imate na vasem racunaru. Pa da li se
programer igre odnosno endzina razlikuje od nekog drugog programera? Ne.
Zamislite to kao jedan mehanizam koji radi po unapred odredjenim pravilima ( program ). U taj mehanizam mozete
da ubacujete fajlove razlicitih formata. Fajl ima ulogu da skladisti neku informaciju. Evo par primera:
Tekstura predstavlja niz bitova (jedinica i nula) koje opisuju boju i osvetljenost svake tacke.
3D modeli predstavljaju informaciju o polozaju tacaka u prostoru koji cine model.
Skripta koja cini skup pravila ponasanja vasih entiteta u igri.
Da se vratimo na endzin. Kada sa svim tim fajlovima pothranite vas endzin dobijate jednu AAA igricu.
Evo primera jednog endzina, a to je Source (http://en.wikipedia.org/wiki/Source_(game_engine)).
Kada njega nakljukate ovim razlicitim fajlovima (teksture, modeli, skripte, zvukovi) dobijate razlicite igre.
Ali opet jako slicne. Zasto? Zato sto koriste isti motor.
Pa da li programer pravi teksture, zvukove, modele, skripte? Odgovor je NE. Programer pravi motor
koji sve to pokrece. Covek koji pise skripte svakako mora da poznaje osnove programiranja,
jer ih pravi pomocu skript jezika. Ali on nikako ne moze da se nazove programer.
Danasji endzini su sve opstije namene ( Unity engine ), sto znaci da mozete da pravite
razlicite tipove igara koji pokrece jedan motor (FPS, RTS, RPG... ). Povecanjem opste namene endzina
smanjuje se njegova brzina, mada je danasnjim razvojem i ta razlika sve manja.
Zato, se neki odlucuju na pravljenje svog endzina za specificnu namenu, odnosno specificnu igru.
Tools
Ukratko. To su alatke specificne namene za lakse kreiranje fajlova sa kojim hranimo
nas gladni endzin. Npr. map editori, texture editori, script editori...
Lakse je napaviti lepu teksturu crtajuci cetkicom po nekoj podlozi osetljivoj na dodir, a kasnije je
preradjivati fensi efektima koji predstavljaju matematicke obrade tih slika, nego je praviti tako sto cemo
kucati milione jedinica i nula kojima ne znamo ni pocetak ni kraj. Zar ne? E pa tome sluze tool-ovi.

Zbog svega toga zapitajte se da li hocete da budete programer, ili samo zelite da ucestvujete u smisljanju jedne igrice. Ako hocete da ucestvujete u
smiljsnju jedne igrice postoje i drugi zanati za to.
Video game development (http://en.wikipedia.org/wiki/Video_game_development)

Lepota u Indie timovima je sto radite sve to. Neki Indie timovi razvijaju
svoj endzin, sto nije komercijalno, a neki koriste sto vise gotovih. Pa cak
i gotovih tekstura i modela. Kao sto vidite, danas nije potrebno da znate matematiku, fiziku i elektrotehniku
da bi napravili video igru. Jer koristite razne alate koji to "znaju" umesto vas, ali da bi pravili te alate
morate da znate.

Pozdrav.

EclipsE
26.6.2011, 21:25
Evo primera jednog endzina, a to je Source (http://en.wikipedia.org/wiki/Source_(game_engine)).
Kada njega nakljukate ovim razlicitim fajlovima (teksture, modeli, skripte, zvukovi) dobijate razlicite igre.
Ali opet jako slicne. Zasto? Zato sto koriste isti motor.

Lista igara napravljenih source-om. (http://en.wikipedia.org/wiki/Category:Source_engine_games)

Alien Swarm? Dota 2? Dogfights: The Game? Half-life 2?
Sta te igre imaju zajedničko (osim što koriste source)? U principu ništa.
Jedno je top-down shooter, drugo je RTS, half life je FPS i dogfights je "Combat Flight Simulator".

Lakse je napaviti lepu teksturu crtajuci cetkicom po nekoj podlozi osetljivoj na dodir, a kasnije je
preradjivati fensi efektima koji predstavljaju matematicke obrade tih slika, nego je praviti tako sto cemo
kucati milione jedinica i nula kojima ne znamo ni pocetak ni kraj.

Kad su ljudi kucali jedinice i nule? Možda za pravljenje praistorijskih igara, ali u 21. veku smo sad btw.

Pa da li se
programer igre odnosno endzina razlikuje od nekog drugog programera? Ne.

Pa da li se kardiolog razlikuje od stomatologa? Ako je odgovor ne, znači idemo kod kardiologa da nam vadi zube i završimo ovako :kreza:

Programiranje je opširno, neko ko recimo ume da napravi neki sajt ne mora da znači da ume da napravi neku 3D igru.

I tako dosli smo do poente. Programeri koji rade u nekoj firni danas za razvoj igara programirju engine i tool-ove, ne prave igrice.

Ne koristi svaka igra neki engine od 100.000$. Nećeš da kreneš da praviš ekstra-veliki-super-engine-sa-milion-stvari-od-kojih-nećeš-da-koristiš-10% da bi napravio pacman-a.

Kao sto vidite, danas nije potrebno da znate matematiku, fiziku i elektrotehniku da bi napravili video igru.

Ne znam što spominješ elektrotehniku, jer to nema nikakve veze sa programiranjem :eek:
Fizika ti u principu ne treba, zato što možeš da iskoristiš neki od physics engine-a, kojih ima gomilu (Physx, Newton, Bullet etc..).
Kako ti ne treba matematika za pravljenje igara? Moraš da znaš šta su vektori, šta su matrice, kako se vrše transformacije, šta su dot i cross i mnogo drugih stvari. Recimo, dobiješ 2 pozicije nekih likova u igri, i moraš da pronađeš ugao za koji prvi lik mora da se okrene da bi gledao prema drugom liku. GJ bez matematike.


Zaključak: Ako želite da krenete da pravite igre, krenite od XNA frameworka. Relativno je jednostavan za upotrebu, i naučićete kako stvari funkcionišu u game-developmentu. Nemojte da se fokusirate na engine, već jednostavno krenite da pravite igru. Napravite pacman-a, ping pong, nešto jednostavno što može da se uradi za par dana. Ako planirate da napravite nov Need for Speed ili World of Warcraft... well... neće vam uspeti :D

Geomaster
26.6.2011, 21:37
Kao sto vidite, danas nije potrebno da znate matematiku, fiziku i elektrotehniku
da bi napravili video igru.
Wait, what?

Elektrotehnika nikada nije ni bila potrebna, osim osnova (kako funkcioniše komp i ostalo), ali to je daleko od elektrotehnike. Fiziku, iako nije obavezno, trebalo bi znati, bar osnovne formule - ravnomerno kretanje, akceleracija, gravitacija i ostale proste stvari koje se rade u osnovnoj i drugom-trećem srednje max. Ako neko planira da piše recimo shadere, dobro će mu doći znanje iz optike (opet - fizika) za refrakciju&refleksiju. Dalje, bez matematike se jednostavno ne može. Čak i neko ko blage veze nema sa programiranjem i uzme neki ready-made tool tipa UDK ili Unityja mora da zna matematiku, bar osnove o vektorima, quaternionima, matricama, analitička geometrija u suštini, osnovno o funkcijama, kompleksne brojeve itd. Bez toga nema nikakve šanse da nešto napravi (pod uslovom da ne koristi snippete i tutorijale koje ne razume, što je nažalost ipak veoma verovatno). Tako da, argument da matematika i fizika nisu potrebne je totalno pogrešan.

Što se tiče stava o engine-ima, uglavnom je većina onih dostupna javnosti veoma generička i mogu se koristiti za gomilu raznih stvari. Usko specijalizovani engine-i se koriste u većim timovima i obično se razvijaju baš za neku specifičnu igru.

I potpisujem EclipsE-ov post.

mikronac
27.6.2011, 0:44
Alien Swarm? Dota 2? Dogfights: The Game? Half-life 2?
Sta te igre imaju zajedničko (osim što koriste source)? U principu ništa.
Jedno je top-down shooter, drugo je RTS, half life je FPS i dogfights je "Combat Flight Simulator".
Pa jako je slicno, ne znam kako to ne uvidjas, da li je kamera zakacena na glavu ili lebdi iznad, za endzin malo opstije namene nije nikakav problem.
Kao i druge slicne stvari. Danas se i tezi napraviti endzin koji je sto opstiji
i ponovo upotrebiv. Sta mislis da oni svaki endzin pisu od nule?

Kad su ljudi kucali jedinice i nule? Možda za pravljenje praistorijskih igara, ali u 21. veku smo sad btw.
To sam upravo i napisao. Zato se i prave programi koji olaksavaju sve to.

Pa da li se kardiolog razlikuje od stomatologa? Ako je odgovor ne, znači idemo kod kardiologa da nam vadi zube i završimo ovako
Programiranje je opširno, neko ko recimo ume da napravi neki sajt ne mora da znači da ume da napravi neku 3D igru.
Pa pitaj nekog ko studira stomatologiju, pa ces da vidis koliko ih je namucila anatomija, patologija, histologija. Doktor je doktor.
A i doktori nisu dobro poredjenje za programere.

Ne znam sta podrazumevas pod pravljenjem sajta?

Ne koristi svaka igra neki engine od 100.000$. Nećeš da kreneš da praviš ekstra-veliki-super-engine-sa-milion-stvari-od-kojih-nećeš-da-koristiš-10% da bi napravio pacman-a

Pa pacman, danas prave samo amateri, pocetnici i entuzijasti. A ne neko ko radi u ozbiljnoj firmi.

Ne znam što spominješ elektrotehniku, jer to nema nikakve veze sa programiranjem
Osim sto je grana programiranja proistekla iz ove prve?
Stvarno ne znam zasto ja na Elektrotehnickom fakultetu ucim programiranje
kad nema vezu jedno sa drugim? Danas se te dve grane razdvajaju, ali nekada su bile usko povezane. Ne citas pazljivo moj post. Programiranje ima i sire znacenje! Ne samo znanje nekog jezika i biblioteke. Sta mislis,
da li su nekadasnje ves masine bile programirane, ili disk sa zubcima ne smatras programom?
Uostalom, to sam napisao kao istoriju. Danas svakako nije potrebno.

Fizika ti u principu ne treba, zato što možeš da iskoristiš neki od physics engine-a, kojih ima gomilu (Physx, Newton, Bullet etc..).
Kako ti ne treba matematika za pravljenje igara? Moraš da znaš šta su vektori, šta su matrice, kako se vrše transformacije, šta su dot i cross i mnogo drugih stvari. Recimo, dobiješ 2 pozicije nekih likova u igri, i moraš da pronađeš ugao za koji prvi lik mora da se okrene da bi gledao prema drugom liku. GJ bez matematike.
Opet ne citas pazljivo moj post. Onaj ko radi skripte ne mora da zna fiziku,
kao ni onaj sto pravi animacije, teksture, komponuje muziku.
Onaj ko pravi PhysX, mora dobro da zna fiziku. Taj ko razvija PhysX on ne pravi igrice!!! Sta si jos rekao. A da. Ako smatras da neko ko zna sta je matrica i elementarne transformacije, sta su vektori i njihov skalarni i vektorski proizvod ZNA matematiku, ne znam sta da ti kazem? :facepalm

Sa tvojim zakljuckom se slazem. :D Ali to pije vodu za one koji hoce
time da se bave iz hobija.


@Geomaster
Elektrotehnika nikada nije ni bila potrebna, osim osnova (kako funkcioniše komp i ostalo), ali to je daleko od elektrotehnike. Fiziku, iako nije obavezno, trebalo bi znati, bar osnovne formule - ravnomerno kretanje, akceleracija, gravitacija i ostale proste stvari koje se rade u osnovnoj i drugom-trećem srednje max. Ako neko planira da piše recimo shadere, dobro će mu doći znanje iz optike (opet - fizika) za refrakciju&refleksiju. Dalje, bez matematike se jednostavno ne može. Čak i neko ko blage veze nema sa programiranjem i uzme neki ready-made tool tipa UDK ili Unityja mora da zna matematiku, bar osnove o vektorima, quaternionima, matricama, analitička geometrija u suštini, osnovno o funkcijama, kompleksne brojeve itd. Bez toga nema nikakve šanse da nešto napravi (pod uslovom da ne koristi snippete i tutorijale koje ne razume, što je nažalost ipak veoma verovatno). Tako da, argument da matematika i fizika nisu potrebne je totalno pogrešan.

Što se tiče stava o engine-ima, uglavnom je većina onih dostupna javnosti veoma generička i mogu se koristiti za gomilu raznih stvari. Usko specijalizovani engine-i se koriste u većim timovima i obično se razvijaju baš za neku specifičnu igru.
http://en.wikipedia.org/wiki/History of video games
Covece. Pa, koliko ti je potreban neki softver, toliko je i hardver. Pa neces valjda na papiru da citas kod, nesto treba da ga "pokrece". Ako mislis da programer pravi igrice, sto to ne kazes i za ljude koji razvijaju Xbox?
Zar to nije elektrotehnika?
Opet. Fiziku bi trebalo znati bar osnovne formule? I to je tebi znanje fizike?
Matematiku mora da zna bar osnove? Ja to ne smatram znanjem matematike.

Ocigledno je da niste razumeli moje postove. Treba razdvojiti pravljenje igara iz hobija i programiranje, znanje matematike, fizike...

Treba razdvojiti osmisljavanje price, gameplay-a, nivoa, muzike
i programiranja.


Dakle, cesto ljudi koji vole da igraju igrice pozele da naprave svoju.
Zato sam rekao da postave sebi gore navedena pitanja.
Sta zele i sta ocekuju. Cesto ti ljudi ne znaju mnogo matematiku,
niti programiranje pa dodju i postave ovde nebulozna pitanja.
Za njih je odgovor da batale to, ili da uzmu neke game maker ili slicno.
Dobra vest za njih je da ce jednog dana, (elektro)tehnika toliko napredovati, da ce moci mislima da prave igre i u mislima igrate iste.

Onaj ko je pak na ovu temu dosao zato sto je entuzijasta, zeli da uradi sam nesto svoje, da se divi svom delu, njemu ce biti dovoljno i da u asembleru napravi pong.

Onaj ko ne znam ni ja hoce da pravi igre, malo da okusi programiranje
, modelovanje i drugo, za njega je dobar izbor C# i XNA, ali ne i jedini.
Sva sreca pa nece morati da pravi svoju platformu, za koju gle cuda
mora da zna elektrotehniku(citaj elektroniku).

Lepo je kada neko zeli da napravi igricu, pa pocne da uci neki jezik,pa kasnije zavoli programiranje. Zato ne treba uciti c++ da bi napravili nesto
za sta ce brzo videti rezultate. Jel mogu doziveti razocarenje.
C++ treba uciti zbog ljubavi prema programiranju a ne zbog pravljenja igara. Opet kazem, lepo je kad neko zavoli programiranje tako sto je poceo da pravi igrice, bolje nego da se drogira ili gleda farmu. :p

Andross
27.6.2011, 0:56
Pa jako je slicno, ne znam kako to ne uvidjas, da li je kamera zakacena na glavu ili lebdi iznad, za endzin malo opstije namene nije nikakav problem.
Kao i druge slicne stvari. Danas se i tezi napraviti endzin koji je sto opstiji
i ponovo upotrebiv. Sta mislis da oni svaki endzin pisu od nule?

Druze nalupetao si se za medalju ovde.
Nije tu samo razlika u kameri za recimo akcioni RPG ala Dark Messiah bi morao **** da pomeris UDK-u ili bilo kom engineu "opstije namene". Znam i sam koje su promene bile potrebne da bih u NeoAxisu oformirao takvu mehaniku za Hell Throne/Arilientu (u UDK npr. bi bilo jos vise posla zbog samog UnrealScripta i celokupne skriptne forme) tako da nije to "kamera je zakacena ovde il ovde". Sam si rekao da se nisi bavio razvojem igara, glupo je praviti se pametan oko necega sto ne znas zar ne?

Btw. Source jeste keva engine i ima dosta osnovnih stvari po defaultu, ali se ni one ne mogu prosirivati bez znanja programiranja i matematike. Vec sama ta promena kamere na top-down shooter menja algoritam rotacije igraca i detekcije pravca pucanja, bolji melee sistem takodje zahteva matematiku za izracunavanje povrsi koji je zahvacen udarcem itd. itd.

mikronac
27.6.2011, 1:08
Posto nije bilo vise mesta, moram novi post. :p

Dakle, nekada si morao da znas elektrotehniku, matematiku, fiziku
da bi napravio najprosiju video igru. Jer nije bilo nikog drugog da ti napravi
procesor, memoriju, katodnu cev, LCD(mislim na one crno-bele)...morao si sam.

Danas osim sto ne moras da pravis svoju racunar, ne moras
ni OS, ni drajvere, ni API, ni engine, jer je sve to neko pre tebe napravio.
A sve je to neophodno za jednu igru.

Danas AAA naslove prave producenti, muzicari, slikari...
Nekada su proste igrice pravili inzenjeri.
Programeri(inzenjeri) danas ne prave igrice,
nego prave alate koji producentima ostvaruju njihove perverzije :D

Zato treba da se zapitaju da li hoce da budu producenti ili programeri?

Ako hoce da budu programeri, samo napred. I nista ih ne sprecava
da iz licne satisfakcije prave male igrice, koje vec postoje, ali to je vec
ljubav. :love: I to je dug put. Ne kazem ni da je lako biti producent. I to je
dug put.

mikronac
27.6.2011, 1:28
Druze nalupetao si se za medalju ovde.
Nije tu samo razlika u kameri za recimo akcioni RPG ala Dark Messiah bi morao **** da pomeris UDK-u ili bilo kom engineu "opstije namene". Znam i sam koje su promene bile potrebne da bih u NeoAxisu oformirao takvu mehaniku za Hell Throne/Arilientu (u UDK npr. bi bilo jos vise posla zbog samog UnrealScripta i celokupne skriptne forme) tako da nije to "kamera je zakacena ovde il ovde". Sam si rekao da se nisi bavio razvojem igara, glupo je praviti se pametan oko necega sto ne znas zar ne?

Btw. Source jeste keva engine i ima dosta osnovnih stvari po defaultu, ali se ni one ne mogu prosirivati bez znanja programiranja i matematike. Vec sama ta promena kamere na top-down shooter menja algoritam rotacije igraca i detekcije pravca pucanja, bolji melee sistem takodje zahteva matematiku za izracunavanje povrsi koji je zahvacen udarcem itd. itd.
Nisam se profesionalno bavio, sto ne znaci da nisam radio nesto u slobodno vreme.

Evo, dacu ti jedan primer. OGRE je graficki endzin opste namene,
koji podrzava vrlo lako pomeranje kamere. Ono sto se razlikuje od igre do igre je mehanika igre. I to da li je FPS ili top-down menja mehaniku igre
a ne graficki endzin. Zato se cesto prave specijalizovani endzini(za mehaniku) koji pokrecu odredjene igre. Danas se tezi komercijalnim endzinima i "development kit" koji mogu da pokrecu sto razlicitije mehanike. Tako da se sama mehanika skriptuje. I dalje to nije savrseno,
tako da je programer jos uvek neophodan.

"Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the end-user.

EclipsE
27.6.2011, 2:18
...

Stvarno ne znam zasto ja na Elektrotehnickom fakultetu ucim programiranje
kad nema vezu jedno sa drugim?

...

To je, kolega, zato sto je ETF shit. Prva godina je Opšti Odsek, gde se kao što ime kaže, rade opšte stvari. Meni recimo nikada neće trebati osnove elektrotehnike u životu ili laboratorijske vežbe iz fizike zato što planiram da upišem RTI, ali neki odseci koji se upisuju na 2. godini zahtevaju predznanje iz OET-a/fizike/matematike/programiranja i zato, među ostalom, učite programiranje.

Uostalom, mogli ste da vidite da je programiranje na ETF-u pravi shit. Ceo jedan semestar se gubi na PCASM/Pascal što je po meni takođe beznačajno. Očigledno je da im je plan i program zastareo. Valjda će na RTI-u biti bolje :aplauz:

siv0nja
27.6.2011, 11:34
Evo ja sam klasican primer nekoga ko je pozeleo da pravi video igru i onda sam dosao na ovaj forum da procitam nesto vise o tome ovde i ovde sam zahvaljujuci ovom forumu i pojedinim forumasima nacinio prve korake u tom pravcu , a da pritom nista osim zelje da napravim igru nisam imao...pa da krenemo iz pocetka :) ,odmah da kazem na pocetku IZVINJAVAM SE NA DUZINI MOJE PORUKE KOJA NIJE MOGLA DA STANE U JEDAN POST :)
Svako ko zeli da pravi igru a dosao je na ovaj forum da procita nesto o tome treba da postavi sebi nekoliko pitanja.

1. Da li sam na ovu ideju dosao igrajuci WoW , CS:S (neki AAA naslov) pa sam shvatio da bih ja to bolje napravio?
1. Da li ja mozda ipak zelim da budem scenarista, "designer" ("gameplay") ili "artist"?
Ako je odgovor pozitivan, promasili ste temu.
2. Da li zelim sam sve to da uradim ovih dana?
Ako je odgovor pozitivan, razmislite malo bolje i informisite se malo vise o razvoju igara.
2. Da li hocu da to bude moj hobi?
3. Da li time hocu profesionalno da se bavim u zivotu?


1. Da li sam na ovu ideju dosao igrajuci WoW , CS:S (neki AAA naslov) pa sam shvatio da bih ja to bolje napravio?
ili bolje da kazem 1.1. Da kad sam prvi put video neka od tih fantasticnih ostvarenja odmah mi je kroz glavu sinulo kako bih i ja tako ( i tata bi sine!) ...dobro mene su malo stariji naslovi isprovocirali ,ali cinjenica je da onaj ko igra video igre 20 i kusur godina kao ja jednostavno jednom mora da sam pokusa napraviti igru , meni s takva zelja javila jos daleke 1991 kad sam na pokojnom ZX spektrumu pokusavao da napravim jednu obicnu side scroll pucacinu u verovao ili ne u BASIC-u , izvodljivo jeste ,prakticno ...a bas i nije ...godine su prosle i stigla je era PC-a , naravno i raznih alatki i eto pre godinu dana kupim cheap tablu za crtanje jer imam nekog slikarsko/vajarskog talenta u sebi, i naravno cim sam probao tablu nije mi se svidelo , wtf pa to nije isto kao da crtas po papiru , zamisli da gledas na ekranu sta ti ruka radi po tabli ?! ,jeste svi to ustvari radimo sa misem , ali probajte misem da cratte pa cete shvatiti sta sma hteo time reci , naravno je potreban je period privikavanja na takve stvari ali idemo dalje , batalio sam crtanje na samom startu , i googlajuci malo po netu naletim na Zbrush...hm modelar !!! zanimljivo ...svidi mi se modelovanje , lagano je , Zbrush je extra program ,gomila tutorijala... savrseno ! ....krenem ti ja tako da obradjujem tutorijale i pozelim da napravim nesto svoje , cisto da utvrdim gradivo ....hm ...pa ja nemam skicu sta bih radio ....ajde da napravim obicnu muvu recimo ...hm ne ide ...kako muvi uopste izgleda glava ...trazim po netu nadjem i shvatim ...cekaj malo pa zar modelari moraju to tako da rade ...pa naravno da ne postoje ljudi koji se zovu Concept Artisti , oni su ustvari ti koji odredjuju kako ce sta da izgleda ....ops to mi se nije svidelo , odmah sam zamislio situaciju u kojoj mi boss nad glavom kljuca kako nisam dobro uradio kao sto je C.A zamislio ....odmah sam modelovanje shvatio kao jedan fizicki posao gde svoju kreativnost ne mozes da ispoljavas jer to ustvari radi C.A (to je moje individualno laicko misljenje u to vreme,nemojte ovo shvatiti kao moju danasnju teoriju :) ) ....da pojednostavim malo ....kao u gradjevini imate Arhitektu i Inzinjera , arhitekta naravno osmisli jedan objekat i nije ga bar preterano briga kako ce to inzinjer da uradi , inzinjer naravno kad vidi nacrt ,prvo jedno 100 puta pomene arhitektovu majku ,pa ga jedno 100 puta nazove ludakom ,i onda na kraju dobijemo jedan objekat koji je em siguran i stabilan ,em lepo izgleda. Naravno obojica su isli na fakultet i naravno da Arhitekta zna sta sme a sta ne , tako da je obostrano poznavanje posla veoma pozeljno u ovakvim slucajevima. Da se vratim mojoj prici , kad sam shvatio da ne zelim da budem 3d modelar , vratio sam se crtanju i krenuo malo ozbiljnije da radim, za pocetak izbacio sam misa iz upotrebe i sve radio sa olovkom i tabletom pa cak i igrao video igre , nebi li se sto bolje privikao na olovku.
Eto jos jednom znaci ja sam u ovo sve upao jer sam zeleo da budem artist, i ok ako mislis da sam promasio temu , to je tvoje misljenje.

1.2. DA , nije redak slucaj da jedan covek sve sam radi ,naravno svi ce te reci "ali on ne moze da napravi AAA naslov "...greska ...sve se moze napraviti ako imate volju , ja licno znam nekoliko ljudi koji su sami radili sve i postigli dobre rezultate doduse ne AAA ali prilicno dobre, a posto si se dotakao proslosti ,onda nemoj da izostavis imena poput David Brabena , Sid Meiera i drugih koji su radili AAA naslove , a i dan danas uzimaju pare od nekih naslova poput elite,pirates idr. ,mislim ovo su ti samo banalni primeri iz proslosti , evo ti jedan primer iz buducnosti gde je jedan 14 godisnji klinac napravio obicnu igru za iphone ,ali toliko zaraznu da je na njoj zaradio preko 600.000 $ , da je poslusao tvoj savet o tome da ne misli onako kako ti pises ...verovatno nikad to nebi ni uradio. Ovde na ovom forumu ima pojedinaca poput Mercury-ja koji sve sami rade i eto ,njegov castle defense klon kad bude gotov a verujem da hoce , nece biti nista manje kvalitetniji od recimo Angry Birds ...koji se smatra AAA naslovom...
pre svega treba iz glave izbaciti to AAA kao bitan faktor za pravljenje video igara , ko ti je rekao da ne moze pojedinac napraviti AAA naslov ...taj te debelo slagao , a ti ako si sam dosao do tog zakljucka onda si previse citao forume na kojima pljuju po pocetnicima :)
Sto se tice mog posla ,osim sto radim celokupnu 2d grafiku kako za 2d tako i za 3d igre (recimo radim texture za 33 modele) ,ponekad moram i da pisem scenario, odredjujem gameplay, bavim se bukvalno svim ostalim stvarima sto nije programiranje , i veruj mi ima posla preko glave. Celo vreme potenciras da je ovo forum za nekog ko programira ...pa eto ja ne programiram i ovde sam na forumu i nisam promasio temu .....izbaci iz glave da je samo programiranje dovoljno da bi se napravila igra ili igrica kako ti zoves video igre.

siv0nja
27.6.2011, 11:38
3. Da li time hocu profesionalno da se bavim u zivotu?

DA ...trenutno zivim od toga naravno, radim u jednoj kompaniji , koliko zaradim i kako zaradim ,gde radim i sta sve radim , to nebih otkrivao , posto neke stvari ne smem da pominjem, tako je u ugovoru i moram da drzim jezik za zubima , a to nije ni bitno za ovu temu sad. I pre ove kompanije sam radio na nekim indie projektima , male flash igre , cak sam radio na jednom 2d MMO naslovu za jednu holandsku kompaniju ....naravno mora se od necega poceti , ne mozes biti odjednom profesionalac, stalno se ucis , ja i dan danas nisam profesionalac u svom poslu ,ali tezim ka tome da cu jednog dana biti ,a eto nisam isao na nikakav fakultet i verujem da na fakultetu neces bas puno nauciti o game dev. , programiranje hoces, i sve je to ok ali jedna stvar je neizbezna ...dzaba ti svo znanje sveta ako si duduk za neke stvari ,ukoliko si odigrao par igara kao neki pa se upustili u game dev onda ces naici na gomilu problema , video igre se ne prave tako sto sednes za racunar i pravis igre kao u fabrici ...na normu ... jedno zlatno pravilo u game dev. ...ali ne samo i u game dev. vecu svim sferama zivota , umetnosti , politici ,nauci ...bukvalno u svemu ...to pravilo glasi ....DA NEMA PRAVILA. ....treba da se sledi unutrasnji instikt i covek moze bukvalno sve . Meni bi recimo dosta pomoglo u mom poslu da sam isao na likovnu akademiju ili FPU ,ali sta da radim kad u moje vreme moji roditelji nisu imali da mi plate kiriju u BG ili NS ,a kamoli da izdvoje ostala sredstva za skolovanje , nista nije greh biti slikar amater ( mater ...eno je kuci kuva rucak , pegla )

i molim te ispravi se sam kad si rekao da je umetnost zanat ,nemoj takve stvari da pricas molim te , posto nebih stobom da se raspravljamo i o umetnosti ovde ....postoje drugi forumi za takve stvari.


Na kraju sta da kazem ....hvala forumasima koji stvarno veoma puno pomazu na ovom forumu , neki su prijatni i ljubazni ,neki su malo arogantni , medjutim nista licno ne treba shvatiti . Put do zvezda je trnovit sto kazu pa tako i ovde :) ....ajd sad paljba :):a_bleh:

Geomaster
27.6.2011, 12:08
Covece. Pa, koliko ti je potreban neki softver, toliko je i hardver. Pa neces valjda na papiru da citas kod, nesto treba da ga "pokrece". Ako mislis da programer pravi igrice, sto to ne kazes i za ljude koji razvijaju Xbox?
Zar to nije elektrotehnika?
Opet. Fiziku bi trebalo znati bar osnovne formule? I to je tebi znanje fizike?
Matematiku mora da zna bar osnove? Ja to ne smatram znanjem matematike.
Ne čitaš moj post. Neko ko razvija engine mora da ima sve to u malom prstu. Ali, i onaj ko piše najjednostavnije skriptice mora da poseduje bar osnovno znanje iz fizike iz matematike. (Pod formulama sam opširnije mislio i naravno na zakone iz kojih iste proizilaze, mada se to podrazumeva.) Za njega, naravno, nije bitna elektrotehnika (iako si u pravu da je programiranje nastalo iz nje), pošto on nije neko ko se time bavi, iako će nekom ko pravi grafičku kartu itekako trebati mnogo opširno znanje iz elektrotehnike.

Ni ti, ni ja, ni bilo ko drugi, neće moći da nauči "celu matematiku" (kao da je tako nešto uopšte moguće), već će znati ono što mu najviše treba, i to će znati u prste, a ovo ostalo taman toliko da se znanje može nazvati zavidnim, ali ne i naprednim.

mikronac
27.6.2011, 13:29
Pa dobro, da li razumete poentu mijih postova?

1. Imas ljude koji dodju na ovaj forum, i forume slicne ovome
i postave pitanje, "hocu da napravim svoj WoW koji jezik da naucim?".
Njima ide odgovor, da postoje i druga zanimanja koja se bavi pravljenjem igara, kao scenarista, producent...programianje je ozbiljna disiplina,
i ako naucis sintaksu nekog jezika ne znaci da znas da programiras.

2. Ludi koji hoce da naprave neku malu igru(iz perspektive programera), u kojoj nije toliko bitna grafika
i prica, nego jednostavno za svoju dusu zele da naprave nesto. Takvim ljudima ide odgovor da pokusaju sa nekim game makerom, development kit-om :D, malo napredniji
da probaju C# i XNA, a oni jos napredniji da naprave svoj neki mini-endzin.
Ako jos zna dobro da crta, ima strava ideje, to je plus. I svaka cast...:aplauz:
U ovom slucaju osnovno poznavanje matematike i fizike je neophodno.
I naravno u ovom slucaju su nastali mnogi profesionalci.

3. I oni koji hoce time profesionalno da se bave. A to povlaci
da upisu neki ozbiljniji fakultet, i tada ce im biti neophodno znanje iz programiranja, matematike, fizike, elektrotehnike(arhitekturu i organizaciju racunara, algoritmi i strukture podataka. itd). I da ne mastaju,
da ce time da prave svoje WoW-ove, nego ce da budu samo jedan od mnogih koji radi sta ima se kaze, i mozda ce u svemu tome imati jako malo udela.

Za one koji omalovazavaju ETF -> kad zavrse isti
onda nek se jave. Ne poricem da postoje genijalci koji nisu zavrsili faks
a uspeli su vise nego bilo ko ko jeste. Doduse uspeh je relativna stvar.


Naravno ni jedna podela nije zahvalna, jer uvek postoje izuzeci.
Evo da ne bude da pricam napamet, posetite sajt grupe koje sam ja clan
pa pogledajte malo sta radimo. EGDC++ (https://sites.google.com/site/etfgamedevcrew/home)
Forum (http://forum.etf.rs/index.php?showtopic=26558)
Jako sporo napredujemo zbog obaveza na fakultetu,i ovime se bavimo u slobodno vreme kojeg nema puno.

@ siv0nja
U vecini slucajeva se slazem sa tobom. I ti si trebao da se pronadjes u tacki priblizno 2. :), jeste da si dosao na ovaj forum zbog tacke 1. :)
Poenta je da je pravljenje igre != programiranje. Napraviti igru, mozes bez
znanja programiranja, matematike, ... ali ne i da budes profesionalac.
Ja sam daleko od profesionalca. I dobro znam gde mi je mesto.
Imam 23 godine, a prvu igricu sam napravio na commodore 128d pre jedno
12 godina. Bila je tekstualna, ali je bila igrica :D Na ETF se nisam upisao zbog igrica, ali tu ljubav imam od malena pa se u slobodno vreme time i bavim. Ja ne poricem da neko sam moze da napravi igru, i da bude strava,
a u vecini slucajeva je tako. Ali njih smatram za hobiste. Kao i sebe. Volim i crtanje , i modelovanje, i muziku, i intereosovanja su mi siroka.
Zato sam i napominjao da je Indie najzanimljivije, zato sto radis sve.
Ja o game dev-u nisam nista naucio na faxu. Sve sam sam ucio kao i vi.
E sad sto je neko uspeo kao Indie, pa je poceo time profesionalno da se bavi, to je druga prica i svakako za pohvalu.

I na kraju da dodam, jer vidim da me vecina pogresno razume:
Baviti se razvojem video igara <=> nije potrebno zavrsiti neki fakultet.

siv0nja
27.6.2011, 20:39
Ok, shvatio sma ja tebe veoma dobro , ali ti mene nisi bas doslovce , ok sad ima dosta smisla ovo sto si napisao , ja sam samo izrazio moje negodovanje zbog tih tacaka ...ne volim da neko postavlja nekakva pravila tamo gde ih nema ...to je sustina mog predugackog govora , znaci imas ideji volju ...pa brate tvoj je svet , naravno ukoliko ne odes na neki forum gde je pod 1. zabranjeno postaviti glupa pitanja , pod 2. zabranjepo postaviti glupa pitanja i pod 3. zabranjeno popstaviti glupa pitanja . Nema pruijatelju moj glupih pitanja ima samo glupih odgovora :) ,nadam se da me sad u potpunosti razumes ...nije greh kad neki klinac ima zelju i dodje ovde i pita " kako se pravi WoW, 'ocu i ja tako" , greh je ne znati odgovor na to pitanje ,a jos veci greh je takvog klinca usmeriti na pogresan put recenicom "bezi bre mali juce si se rodio a 'oces da pravis WoW , ej bre znas koliki moras da budes da bi to napravio, moras prvo fax da zavrsis pa onda dodji"

IcaRakijica
28.6.2011, 1:48
Pre svega, da napomenem da nemam mnogo iskustva u razvoju


Pa iz kog razloga onda ti deliš savete?


Uzgred budi receno, trudio sam se da sve spustim na sto nizi nivo da pocetnicima bude sto jasnije.


To je tvoj nivo, možda neko nije upoznat sa tom temom, ali niko ovde nije glup.


Takodje, nisu toliko bitne cinjenice koliko da se shvati poenta.


Činjenica je neoboriv argument ili dokaz, bez činjenica nema ni poente.


Jedna od prvih video igara napravljena je
da se prikazuju na osciliskopu (merni uredjaj koji su ti isti inzenjeri koristili za razvoj racunara). Tu igricu
koja je bila jako prosta (tenis) , napravili su ne zbog zarade i profita, vec iz cistog licnog zadovoljstva. Ona nije posedovala
pricu, grafiku niti zvuk. Tennis for Two (http://en.wikipedia.org/wiki/File:Tennis_for_Two_-_Screen.png)


Prva video igra sa grafikom je bila napravljena 1952 godine i zvala se OXO, to je bila verzija IKS OKS-a kreirana na univerzitetu u Kembridžu. Tennis for Two je napravljen 1958 godine.


Kao sto vidite ti ljudi nisu morali da znaju da nacrtaju bilo sta vise od lineje i loptice, niti da iskomponuju bilo
sta vise od jednog beep.


Tada su ljudi morali da znaju više nego sada, tada nije postojala mogućnost da samo nacrtaš liniju ili lopticu. Probaj na napraviš samo liniju, lopticu ili samo jedan beep od jedinica ili nula. Danas je sve mnogo lakše, postoje mnoga razvojna okruženja, kao što je Visual Studio, koja čine programiranje pristupačnijim i jednostavnijim. U današnje vreme sve što je potrebno je da pristupiš određenoj klasi ili funkciji sa određenim parametrima i dobiješ ono što tražiš. Pre se sve radilo hard core.


Tako je uloga programera u osmisljavanju jedne igrice sve vise opadala.
I tako dosli smo do poente. Programeri koji rade u nekoj firmi danas za razvoj igara programirju engine i tool-ove, ne prave igrice.


Uloga programera je ogromna, programer pravi srce igre ili engine bez koje igra ne bi ni postojala. Programeri prave engine da bi sebi olakšali posao, kada se napravi engine i svi ostali alati nisi valjda pomislio da će neko da zaposli kako ti kažeš likove koji pišu skripte a ne programere koji su napisali sam engine. Resursi kao što su modeli, teksture, zvuk, animacije itd. se prosleđuju programerima koji sve to povezuju u engine-u.


Pa sta je to endzin? To je specijalizovani program, kao i bilo koji koji imate na vasem racunaru.


Engine nije specijalizovani program nego skup klasa kao što je XNA engine za C#, Ogre za C++, Irlicht engine ili čak Unity koji ima svoj editor pisan u C++ ali opet pristupa klasama preko svog jezika.


Pa da li se
programer igre odnosno endzina razlikuje od nekog drugog programera? Ne.


Naravno da se razlikuje, programer koji radi sa C++ nije isto kao programer koji radi sa Visual Basic ili C# programskim jezikom. Postoje mnogi drugi jezici i sa svakim je moguće praviti igre.


Kada sa svim tim fajlovima pothranite vas endzin dobijate jednu AAA igricu.


Za AAA igricu je potreban kvalitet a ne gomila fajlova.


Evo primera jednog endzina, a to je Source (http://en.wikipedia.org/wiki/Source_%28game_engine%29).
Kada njega nakljukate ovim razlicitim fajlovima (teksture, modeli, skripte, zvukovi) dobijate razlicite igre.


Možeš da uzmeš bilo koji engine i da ga kljukaš ćime god hoćeš, ali ako ne poseduješ znanje nećeš napraviti ništa.


Ali opet jako slicne. Zasto? Zato sto koriste isti motor.


Ako igre nisu u istom žanru nisu ni slične, kako jedna RTS može biti slična jednom FPS bez obzira koji je engine u pitanju.



Covek koji pise skripte svakako mora da poznaje osnove programiranja,
jer ih pravi pomocu skript jezika. Ali on nikako ne moze da se nazove programer.


Ćovek koji piše skripte je programer, da bi neko koristio XNA engine mora da zna C#, da bi neko pravio igre sa Ogre-om mora da zna C++. Ovi engine-i nisu sa vizuelnim editorom kao što su UDK, Unity ili C4 nego predstavljaju skup klasa.


Povecanjem opste namene endzina
smanjuje se njegova brzina, mada je danasnjim razvojem i ta razlika sve manja.


Brzina engine-a ne zavisi od njegove namene nogo od načina na koji je napisan.


Zbog svega toga zapitajte se da li hocete da budete programer, ili samo zelite da ucestvujete u smisljanju jedne igrice. Ako hocete da ucestvujete u
smiljsnju jedne igrice postoje i drugi zanati za to.
Video game development (http://en.wikipedia.org/wiki/Video_game_development)


Zapitajte se da li ste voljni da učite i da li imate volju i želju da pravite igrice, to je ono što vam je potrebno. Uvek postoji milion razloga i izgovora kako nešto nije u stanju da se postigne a da bi nešto postigli potrebna vam je samo volja.


Kao sto vidite, danas nije potrebno da znate matematiku, fiziku i elektrotehniku
da bi napravili video igru.


Nego morate da znate domaćinstvo, prirodu i društvo, fizičko, geografiju i stočarstvo. Sve ste to naučili ali kada treba treba da radite sa vektorima ili sa trigonometrijom gledate u belo.


Jer koristite razne alate koji to "znaju" umesto vas, ali da bi pravili te alate
morate da znate.


"Ali da bi pravili te alate morate da znate"??? Dečko je tu stao jer je shvatio da morate da znate matematiku i fiziku. Alati koji to znaju umesto vas WTF!!! Gde to ima??? Alat ti samo koristi da bi ti lakše odradio posao. Neće alat odraditi posao umesto tebe.

Lepo je kada se neki ekspert po pitanju razvoja igara pojavi da deli savete, još lepše je ako post počinje sa "Pre svega, da napomenem da nemam mnogo iskustva u razvoju igara" ili u prevodu probao sam da kljukam Source engine sa raznim fajlovima ali mi nije izbacio AAA igru.

Mercury
28.6.2011, 9:15
Kako volim kada ljudi trose vreme na pisanju i raspravljanju o
tome kako se prave video igre, a ne rade nista po tom pitanju ? ( kudos izuzecima: Ica rakijica, Andross, i ostali koji rade )

Ovih 6 strana je sasvim dosta da se pokaze pocetnicima game
dev iz perspektive pogramera, no se vi prebacite malo na dev a ne na chat mod...

Tada cemo imati zasta da cakulamo :)

Bolje da postoji tema "Work in progress", pa tu da se nadjemo da debatujemo i delimo ideje.

Nebih da trosim svoje vreme na prepirke i rasprave, treba igra da se pravi ... :D

mikronac
28.6.2011, 11:35
Hteo sam da pomognem, a na kraju ispao budala.

Srecno pocetnicima, zdravo i dovidjenja. :odoK:

mikronac
28.6.2011, 13:45
Pa iz kog razloga onda ti deliš savete?
Vec sam napisao, ne zelim da se ponavljam. Ja imam iskustva ali
ne precenjujem sebe.

Prva video igra sa grafikom je bila napravljena 1952 godine i zvala se OXO, to je bila verzija IKS OKS-a kreirana na univerzitetu u Kembridžu. Tennis for Two je napravljen 1958 godine.
Kao sto sam i napisao jedna od prvih.

Tada su ljudi morali da znaju više nego sada, tada nije postojala mogućnost da samo nacrtaš liniju ili lopticu. Probaj na napraviš samo liniju, lopticu ili samo jedan beep od jedinica ili nula. Danas je sve mnogo lakše, postoje mnoga razvojna okruženja, kao što je Visual Studio, koja čine programiranje pristupačnijim i jednostavnijim. U današnje vreme sve što je potrebno je da pristupiš određenoj klasi ili funkciji sa određenim parametrima i dobiješ ono što tražiš. Pre se sve radilo hard core
Zasto komentarises moje postove kad ih ne razumes? Kao umetnik nisi morao da znas
da nacrtas vise od linije, a ne kao inzenjer! Ostalo u citatu ponavljas moje reci. A ujedno uskaces sebi u usta, i sam pises da je danas sve manje potrebno znjanja.

Uloga programera je ogromna, programer pravi srce igre ili engine bez koje igra ne bi ni postojala. Programeri prave engine da bi sebi olakšali posao, kada se napravi engine i svi ostali alati nisi valjda pomislio da će neko da zaposli kako ti kažeš likove koji pišu skripte a ne programere koji su napisali sam engine. Resursi kao što su modeli, teksture, zvuk, animacije itd. se prosleđuju programerima koji sve to povezuju u engine-u.
Kada neko dodje ovde jer ima ideju da napravi bolji WoW, dodje zato sto
misli da ima bolju pricu ili sta vec, a ne zato sto ima ideju kako da optimizuje neki endzin
ili mu je sinuo neki do jaja algoritam. Zato, kao sto sam vec nekoliko puta napisao postoje i druga zanimanja koja se bave razvojem video igara.

I opet moram da se ponavljam. Kada neko voli video igre i zeli da ucestvuje u razvoju
svakog njenog dela, kao ti i ja i ostali koji su komentarisali moje postove, onda zeli i
da programira, i da napravi modele, smisli pricu , osmisli gameplay....itd.

Jeste, uloga velika kada to radi jedan covek (hobi), ali kada na razvoju jedne igre rade stotine njih uloga jednog programer nije ogromna (pro). Zato po stoti put kazem da je zanimljivije kada se time bavis iz hobija. Naravno, ova podela nije zahvalna, jer nije sve crno belo, i ne kazem da Indie to rade manje profesionalno u smislu dobro. Sve vreme kada pisem
profesionalno, mislim na one koji rade u npr. Blizardu, idu na posa i primaju platu.

Engine nije specijalizovani program nego skup klasa kao što je XNA engine za C#, Ogre za C++, Irlicht engine ili čak Unity koji ima svoj editor pisan u C++ ali opet pristupa klasama preko svog jezika.
Al si ga objasnio nekom pocetniku. A usput si i pogresio, kad vec hoces cinjenice. XNA nije endzin. Ogre nije za C++ nego je pisan u c++-u. Za ogre postoje nekoliko binding-a. Skup klasa je biblioteka.

In computer science, a software engine refers to the core of a computer program.
Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates computer game development and management.

Naravno da se razlikuje, programer koji radi sa C++ nije isto kao programer koji radi sa Visual Basic ili C# programskim jezikom. Postoje mnogi drugi jezici i sa svakim je moguće praviti igre.
Ja ne vidim razliku. Ja kao programer ne pravim razliku da li pisem neki game engine, biblioteku ili aplikaciju za recimo konverziju video formata.
programiranje != pravljenje igre

Ćovek koji piše skripte je programer, da bi neko koristio XNA engine mora da zna C#, da bi neko pravio igre sa Ogre-om mora da zna C++. Ovi engine-i nisu sa vizuelnim editorom kao što su UDK, Unity ili C4 nego predstavljaju skup klasa.
Ti editori su alati koji olaksavaju razvoj softvera za zabavu(igre). Kao sto je Blender alat koji
olaksava kreiranje modela i animacija.

Nego morate da znate domaćinstvo, prirodu i društvo, fizičko, geografiju i stočarstvo. Sve ste to naučili ali kada treba treba da radite sa vektorima ili sa trigonometrijom gledate u belo.
Igre napravljene u Game Maker-u (http://www.yoyogames.com/browse) su ocigledno igre. Da bi napravio igru <=> nije potrebno znanje matematike ili fizike.

"Ali da bi pravili te alate morate da znate"??? Dečko je tu stao jer je shvatio da morate da znate matematiku i fiziku. Alati koji to znaju umesto vas WTF!!! Gde to ima??? Alat ti samo koristi da bi ti lakše odradio posao. Neće alat odraditi posao umesto tebe.
Alati i sluze da rade posao umesto tebe. Pravljenje alata nije isto sto i pravljenje igre. Dacu ti banalan primer. Kada hoces da napravis kocku u nekom alatu za modelovanje,a kasnije da je prepolovis, nije potrebno da znas
matematiku koja stoji iza toga, dovoljno je da kliknes add cube, a kasnje zavisno od editora
kliknes na funkciju koja ce da ti je prepolovi. Uostalom to i sam znas.

Lepo je kada se neki ekspert po pitanju razvoja igara pojavi da deli savete, još lepše je ako post počinje sa "Pre svega, da napomenem da nemam mnogo iskustva u razvoju igara" ili u prevodu probao sam da kljukam Source engine sa raznim fajlovima ali mi nije izbacio AAA igru
Nikada nisam koristio neki game development tool da bih pravio igru, niti sam imao ambicije da
pravim AAA naslove. Bavim se programiranjem.

I molim te ne vadi moje recenice iz konteksta, nego sagledaj ceo post
pa onda razmisli sta sam napisao.

A sad :odoK:

federer
28.6.2011, 16:57
Beži bre, skroz me demotivisaste.:kreza: Sad će mnogi da završe sa učenjem programiranja prije nego što počnu.

Geomaster
28.6.2011, 17:16
Beži bre, skroz me demotivisaste.:kreza: Sad će mnogi da završe sa učenjem programiranja prije nego što počnu.
Motivation is a lie. Ako hoćeš nešto da uradiš uradićeš, nema tu motivisan sam/nisam motivisan...

Djape007
28.6.2011, 21:51
Samo hocu da vam pokazem kako sam napravio jednu igricu , multiplayer igru moze se igrati preko interneta . A nemam veze sa skriptanjem , uglavnom sve skripte sam nasao na internetu :D , neke sam morao da popravljam , a to je bilo tesko :confused: , al sam uspeo da napravim igru. Koristio sam Unity3d , veoma je lak za koriscenje , pogledao sam dva tutorijala na yt :icon_stud i odma sam skontao osnove , tako da ko god hoce da pocne da pravi (3d) igre nek skine Unity. A najbolje je to sto modele mozes da napravis u Sketchup-u i da ih ubacis u Unity :n_klanja: . A evo i mog sajta ( http://sites.google.com/site/games4dz/home )gde mozete da skinete (ako hocete) igru sto sam pravio , igru kad skinete stoji pod nazivom Fudbal-Kolima.djape :to_care: , otvara se pomocu WinRAR-a . Vi procenite dal je igra dobra za pocetnika , nemam iskustva zato sto u avgustu punim 15 godina. :)

Pozdrav :ciao: :D

Geomaster
28.6.2011, 22:12
tako da ko god hoce da pocne da pravi (3d) igre nek skine Unity.
NE.
http://5char.org

BobaL
28.6.2011, 23:33
NE.
http://5char.org


Zasto ne? Ne se odnosi na bilo koji 3D engine ili bas Unity3D i zasto?

doctor
28.6.2011, 23:41
Bolje koristite Game Maker, to je hteo da kaže...

/sarcasm

Markonije
28.6.2011, 23:50
kontam zasto ima dosta prepirke na ovoj temi...

Jer ljudi koji su iole upoznati sa programiranjem znaju koliko je tezak poduhvat napraviti iole ozbiljniju igru,a onda se jave noobovi koji nemaju pojma gde se nalaze (vreme-prostor kontinium) i pitaju da li da kupe engin od ID-a ili da naprave bolju varijantu sami,i onda normalno iznervirate ljude i ne dobijete odgovor na neko normalno pitanje.


Ne letite pre nego sto prohodtate i ne hodajte pre nego sto progledate.... e isti fazon u programiranju-izradi igara.

Geomaster
28.6.2011, 23:52
Zasto ne? Ne se odnosi na bilo koji 3D engine ili bas Unity3D i zasto?
Ne odnosi se ni na bilo koji engine, niti na Unity, nego na stav "yo ako hoćete 3D igre baš ono do j*ja full extra msm koristie Unity on je cool, ja eto nem pojma niss al sam napravio dojajnu igru". To je jedna od najgorih stvari koju možete da kažete početnicima. Krenuće da rade u Unityju po raznim tutorijalima od kojih ništa ne razumeju nego samo ponavljaju, a kada se malo uozbilje, skontaće da moraju da uče skript jezik(!), pa onda, ako nalete na feature koji u besplatnoj verziji Unityja nije dostupan, pa će shvatiti da moraju da uče i pravi programski jezik(!!), pa onda da uzmu i neki bolji engine ako hoće neku veću kontrolu(!!!). I zato Unity nikako nije izbor za nekoga kome je juče palo na pamet da hoće da pravi igru kao GTA, samo malo drugačiju.

BobaL
29.6.2011, 0:14
...

Stekao sam utisak da postoji snazan razlog zasto treba izbeci upotrebu Unity3D engine-a, a da taj razlog nije povezan sa razlogom "skinite Unity ako zelite da napravite WOW klon" pa sam pitao, cista radoznalost.

Geomaster
29.6.2011, 0:22
Stekao sam utisak da postoji snazan razlog zasto treba izbeci upotrebu Unity3D engine-a, a da taj razlog nije povezan sa razlogom "skinite Unity ako zelite da napravite WOW klon" pa sam pitao, cista radoznalost.
Pa sad, pazi, mogli bismo da razglabamo o tome zašto je Unity3D dobar a zašto je loš. Ja, lično, ne volim Unity. Priznajem da nemam neki objektivan, jaki razlog – jbga, ne sviđa mi se, antipatičan mi je. Uglavnom zbog toga što se sve nudi na tacni (iako bi to trebalo da bude dobra stvar?) i što ne dozvoljava dovoljno slobode korisnicima. Kao neko ko uvek hoće da razume sve što stoji iza svake njegove linije kôda, ne želim da koristim takav alat, posebno ako nije open-source i ako nisam tačno shvatio kako šta radi. Početnicima jeste bolje da koriste Unity, ali ako imaju neko predznanje o programiranju i da znaju šta rade i u šta se upuštaju, dok nema ništa goreg od početnika koji Unity zna samo po tome što je to "nešto što služi za pravljenje uber 1337 'igrica'". U njegovom slučaju je loše što će dugo napredovati bez ikakvog pravog znanja o programiranju, a onda, kad bubne u prepreku o kojoj nema ničeg na Youtube-u – BAM! Odjednom će shvatiti šta je sve propustio, i u 99% slučajeva će izgubiti želju da dalje radi pošto je već navikao na sve već gotovo. A ako se razume u to (koliko-toliko), a ne želi da ide na neki niži nivo od Unityja, onda to može da bude dobitna kombinacija, posebno ako je u pitanju umetnik sa talentom. Moj stav je da umetnici sa idejom za igru mogu mnogo bolje da prođu sa Unityjom, dok će programeri u velikom broju slučajeva na pomen imena Unity samo nezainteresovano odmahnuti glavom i nastaviti da fanatički kuckaju u C++-u, C-u, C#-u ili šta već koriste da pišu svoje igre.

OgnjenM
8.7.2011, 14:16
bez ljutnji al pojma vi nemate sta unity engine moze da uradi ;)

Geomaster
8.7.2011, 14:38
bez ljutnji al pojma vi nemate sta unity engine moze da uradi ;)
Ma može i ručak da kuva. ;)

doctor
9.7.2011, 2:30
bez ljutnji al pojma vi nemate sta unity engine moze da uradi ;)

A tek kad ga platiš... ;) Onda se pokaješ što nisi kupio CE3 ili UE3 :p

Geomaster
9.7.2011, 13:00
A tek kad ga platiš... ;) Onda se pokaješ što nisi kupio CE3 ili UE3 :p
Kada sam video feature list besplatne verzije Unityja... :paranoia: Nema ni RTT.

doctor
9.7.2011, 13:49
Kada sam video feature list besplatne verzije Unityja... :paranoia: Nema ni RTT.

Vidi stvarno, ja sam sada pogledao pažljivije listu :kreza: Koji POS :opanachke

IcaRakijica
9.7.2011, 17:33
Unity u početku i nije baš nešto ali kada ga dresiraš sve ume da radi, kuva, pere, pegla... Unity je veoma dobar engine ali mu je besplatna verzija malkice osakaćena, pod malkice spada i to da ne podržava senke u realnom vremenu(RTS). Mislim da je to poprilično dobra kompenzacija za licencu koja dolazi sa free verzijom, ali ipak mislim da je RTS danas standard ili čak minimum koji bi neki engine trebao da ima. Unity u svojoj free verziji vam omogučava da pravite i prodajete, ili šta god već želite da uradite sa svojim projektom, bez plaćanja dodatnih licenci. Svakako nema smisla porediti Unity free verziju sa Unreal Engine ili sa Cry Engine, dok Unity Pro spada među najbolje engine na tržištu.
Electronic Arts je koristio Unity za Need for Speed World http://world.needforspeed.com/intro?wfvar=wfctrl

Top 10 engine-a
1. Unreal Engine
2. Gamebryo
3. Cry Engine3
4. Unity3D
5. BlitzTech
6. Infernal
7. Vision Engine
8. Bigworld
9. Vicious
10. Torque 3D

Ja lično mislim da tu mogu da se dodaju još neki kao što su Shiva3D, C4 Engine, NeoAxis a posebno jedan koji je na mene ostavio ogroman utisak je UNIGINE za koji čak mislim da je i bolji od svih deset gore navedenih.
http://unigine.com/screenshots/

Mislim da jednoj osobi ili manjem timu nisu ni potrebni takvi engine-i jer u stvari nisu ni u mogućnosti da iskoriste njihove prave mogućnosti. Unreal Engine je vrhunski engine i dostupan je kao UDK na http://www.udk.com/ kao besplatn engine, i iskreno mislim da par ljudi nisu u mogućnosti da iskoriste sve njegove potencijale.

Andross
9.7.2011, 17:44
Za engine od 5 do 9 ne znam, ali Torque3D komotno mozes da izbacis sa liste :)

hr0nic
9.7.2011, 17:56
da torque je puko :/ nazalost... Unigine jeste dobar, imao sam prilike da radim malo u njegovom editoru, kada sam radio na Primal Carnage igri, ali ne znam sta se tacno desilo pa su likovi jednostavno odustali od tog engina, a imali su zavrsen tech demo za nvidia-u, sada igru zavrsavaju u UDK... mislim da je nedostatak dobre tehnicke podrske bio uzrok prebacivanja na UDK...

IcaRakijica
9.7.2011, 17:56
Za engine od 5 do 9 ne znam, ali Torque3D komotno mozes da izbacis sa liste :)

Definitivno, nisam siguran koji su im tačno kriterijumi za bodovanje ali kao što sam rekao Unigine je sigurno bolji od Torque-a i još par gore navedenih.

hr0nic
9.7.2011, 18:00
a nema ni idTech-a na listi, a koliko je zasluzan za sve danasnje fps-e :/

siv0nja
9.7.2011, 18:23
Pa dobro on je stavio listu enginea koje za koje misli da su po njemu najbolji , nema ni source ako se ne varam i to je dobar engine :) , onoliko koliko se ja u to razumem :) ,ako sam pogresio nemojte zameriti ja nisam programer :)

hr0nic
9.7.2011, 18:34
nisam ni ja programer (mozda bas onako amatersko/pocetnicki), ali kada bi hteo to da radim, prvo bi sigurno krenuo od programskih jezika koji su pogodni za razvoj igara, pa bi se mnogo kasnije prebacio, zavisno od zaduzenja i vrste posla u neki specifican engine... dzabe sva ta gotova resenja kada covek ne zna osnove...

IcaRakijica
9.7.2011, 18:46
Pa dobro on je stavio listu enginea koje za koje misli da su po njemu najbolji , nema ni source ako se ne varam i to je dobar engine :) , onoliko koliko se ja u to razumem :) ,ako sam pogresio nemojte zameriti ja nisam programer :)

Nije to moja lista da se razumemo, ta lista je sastavljena na nekom sajmu, čini mi se E3 ali nisam siguran.

chaami
10.7.2011, 13:56
Nije to moja lista da se razumemo, ta lista je sastavljena na nekom sajmu, čini mi se E3 ali nisam siguran.
Lista koju si naveo je u potpunosti subjektivna http://www.develop-online.net/news/32250/The-top-10-game-engines-revealed
Svako može na net da izbaci svoju listu najboljih engine-a http://pc.ign.com/articles/100/1003725p1.html
Ono što hoću da kažem je da su meni tamo neke liste potpuno beznačajne. Mnogo više mi znače komentari ljudi koji koriste te engine. Nemam ja ništa protiv Uniti enginea ili ShiVa3D. Smatram čak šta više da su odlični za razvoj igara, ali samo u plaćenim varijantama. U besplatnim varijantama nisu vredni pomena, pogotovo kad vidimo šta recimo Ogre (koji je besplatan) može da uradi.
http://youtu.be/0VGAH5CYpuk
http://youtu.be/bPzsuYz7yRI
http://youtu.be/ghQBj6Gfn10
http://youtu.be/jzWYxZLZWOE
http://youtu.be/QMtTpIcoYOQ
i meni omiljena http://youtu.be/QMtTpIcoYOQ
Besplatna verzija Uniti engine-a može odlično da posluži za neku 2D igru (koju bi mogao da napraviš i sa par dobrih biblioteka u C++) ili za vežbanje. Kad se jednog dana budeš odlučio da radiš komercijalnu igru nadam se da ćeš kupiti punu verziju Uniti-ja.

voodoo_
21.5.2015, 11:19
Videh oglas na Linkedinu

https://image-store.slidesharecdn.com/bbabed53-be92-4377-a539-f5652e4296cc-original.png

Ajmo mlade nade :)

Andross
31.7.2015, 11:22
Hvala kolegi voodoo_ na okacenom oglasu gore, danas sam zvanicno dobio ponudu od Ubisofta za poziciju Junior Gameplay Developera :)

brano88
31.7.2015, 13:09
Hvala kolegi voodoo_ na okacenom oglasu gore, danas sam zvanicno dobio ponudu od Ubisofta za poziciju Junior Gameplay Developera :)


Svaka cast! Nek' je sa srecom! :aplauz:

mciggzy
3.8.2015, 8:49
Evo oraspolozilo me je ovo na ovaj tmuran ponedeljak... bas lepo sve ispalo. Sve najbolje na novom poslu :D

Geomaster
12.8.2015, 13:55
Svaka čast Zemljače :D

voodoo_
5.4.2016, 10:36
Oglas sa Fejsbuka:

Ebb software iz Beograda traži programera za razvoj igre Scorn. Pozicija je otvorena za rad u punom radnom vremenu u dinamičnom i izazovnom okruženju u našem studiju u Beogradu.

Prednosti:
* Poznavanje Unreal enginea
* Sposobnost rada u timu
* Odgovornost, sistematičnost.

http://www.scorn-game.com/

Necro
24.9.2016, 20:36
John Carmack o svom znanju iz matematike:

"I wish I was half the math genius a lot of people think I am -- I pretty much got here with well applied high school math."

https://twitter.com/ID_AA_Carmack/status/767911253763170304