Pošto vidim da ima dosta zainteresiranih ljudi za pravljenje igri, učenju programiranje. Odlučio sam malo pomoć početnicima u kretanju u prve korake i to kroz način pitanja i odgovori :
Ono što mnoge zanima kada je pitanju izrada igri je :
P ( nulto pitanje ) :
Ne znam programirat, dal mogu izradit igru ?
O : Da i ne, zašto da , postoje alati uz pomoć kojih možete manipulirati objektima i temeljem predodređenih svojstava napraviti određene akcije, ali čak i ti alati u velikoj mjeri slučajeva podrazumjevaju neki oblik ubacivanja koda. Dal nužno morate znat C ili C++ da biste krenuli, pa to sigurno ne, bitno je da znate logiku , da znate razumjeti kako kroz kod možete izvršiti neke stvari da razumijete tu sintezu kod - izvršenje.
P: OK ali s kojim jezikom onda početi ?
O: Možete početi sa bilo kojim jezikom, bitno je kod tog izbora vidjeti za koji jezik čete imati najviše potpore od ljudi koji već koriste jezik za koji ste se vi odlučili. Ne ustručavajte se postavljat pitanja, ma koliko glupa ona bila. Krenite postepeno sa učenjem shvatite tipove podataka, varijeble, kako se kreiraju i pozivaju potprogrami, kako napraviti neku cjelinu. Nikako ali nikako nemojte odmah u početku uzeti hrpu već rješenih primjera i početi "prčkati" po njima jer iz toga nećete vrlo vjerojatno naučiti ništa. Kasnije kada savldate jezik i napravit par programa od nule onda je jako preporučljivo pregledavati primjere i rješenja , ali prije toga ne. Moj prijedlog vam je C#, VB.Net i Java , naravno ne da sve učite u isto vrijeme nego izaberite jedan i krenite od osnova.
P : OK recimo ovako programiram već neko vrijeme i znam koncepciju izrade programa , što sada ?
O: Možete početi na razne načine , koristeći game makere, SDK-ove, frameworkove , game engine i render api -je. Što se tiče game makera na tržištu postoji niz proizvoda , manje više uspješnih u smislu da s istima se u stvari može nešto i izraditi. Posebno obratite pažnju na broj naslova izrađenih pod dotičnim makerom, jer postoje proizvodi koji u teoriji rade , ali u praksi nemaju rezultata.
P: Dobro koje onda game makere upotrijebiti ?
Ovako YoYoGames ima izvrstan game maker alat , ono što je dobro u vezi yoyogames-a je to što izrađene igre možete publishirati kroz njihov web servis, te postoji velika podrška u materijalima za izradu igri na njihovoj stranici. FPS creator , ovo vam ne bih preporučio jer dosta je hardverski zahtjevan i po pričama korisnika bug-ovit. Game studio A7 je po meni car game maker alatima. Ono što definotvno ne bih ga preporučio ljudima koji nemaju barem nekih praktičnih iskustava sa programiranjem. Obavezno pogledjate galeriju radova sa A7 . Sama cijena mu je jako prihvatljiva 1100 kuna za komercijalnu i 4500 kuna za pro verziju su savim razumne cijene za takav alat. 3DRad studio možda po meni najbolji game maker tool u kojem ne trebate imati uopće znanja iz programiranja da biste nešto i napravili i ono što je važno za napomenuti alat je potpuno besplatan, zato palac gore za 3DRad. Ovo su naravno samo neki od game makera koji postoje, naveo sam ih iz razloga što po mom mišljenju vrijedno ih je isprobati ako se odlučite za izradu igre sa game makerima i ako vam programiranje nije jača strana.
P: Spomenuo si SDK-ove što je to ?
SDK je u biti skup biblioteka, klasa i grooo stvari koje imaš na jednom mjestu u smislu izrade određene vrste projekta. Kod upotrebe SDK-ova potrebno je bit na ti sa programiranjem. Kod odabira SDK-a bitno je vidjeti dal postoje wraperi za jezik u kojem programirate. Ako ste na ti sa C++ om onda nećete imati problema sa ubotrebom bilo kojeg SDK-a jer koliko sam vidio gotovo svi izlaze sa podrškom za C++. Osobno preporučam odličan Truevision3D SDK, sa 100% podrškom za DirectX9 i sa ugrađenim Newton Game Dynamics fizičkim engineom, te podrškom za gotovo sve programske jezike, svrstava ga u sam vrh SDK-ova. Osobno sam radio sa njime i mogu reć da je izvrstan , zajednica je izvrsna ( barem je bila ) lako se uči i sve je logički složeno. Ako se želite odlučiti za TV3D mogu vam ponuditi svoj source kod game engine prototipa, sa izrađenim scena i unit editorom ( imate oko 12000 linija koda te iz toga vjerujem da možete izvuć ponešto korisno ).
P: A frameworkovi ?
O: Pa ovako imam iskustva sa XNA i njega mogu i preporučiti. Osobno ako je moguće savjetovao bih vam da ga preskočite, osim ako ne želite napraviti game engine u istom i ne pucate isključivo na XBOX platformu, onda bi XNA bio pravi izbor za vas u svakom slučaju ima puno boljih rješenja ,npr SlimDX .
P: Render API ?
O: E sada tu je nešto malo zanimljivije područje za diskusiju i dalo bi se prožet kroz par stranica. Ono što tu treba razgraničiti i osnovno za razumjevanje je sljedeće :
Koja razina , ako idemo od neke normalne razine onda danas tu vladaju dva cara DirectX i OpenGL ( sad koji je aktualni standard OpenGL-a provjerite sami ). Što konkretno s njima možete napraviti, pa odogovor je sve i ništa. Dal možete sa DirectX-om napraviti game engine ili igru ? Pa ne baš al možete napraviti odličan render engine. E to nas sada dovodi do sljedeće razine a to je sinteza DirectX-a i OpenGL-a, zašto, zato što ako krećemo od početka i želimo se krvavo namučiti da nešto u napravimo onda neka to bude i multiplatformno. Tu, tj na ovoj razini nezaobliazno je ne spomenuti OGRE , ogre je render engine sa podrškom za DirectX i OpenGL. U samoj srži Ogre je namjenjen C++ programerima, ali postoji i wraper za C# i VB.Net po nazivom MOGRE. Probao sam MOGRE i mogu reć da je izvrstan.
P: Pa ako znam DirectX kako onda ne mogu napraviti igru ?
O: Možete ali igra ne kombinira samo grafiku nego i fiziku i inteligenciju i rad sa mrežama i dosta još drugih stvari.
P: Game engine ?
O: E to je prava stvar, skup i render API-ja i fizike i logike ( intelogencije ) i alata editora . Kao što ime kaže to je stroj za pokretanje igre. Ima ih hrpa manje više kvalitetnih. Navest ču samo one s kojima imam praktična iskustva. Znaći ako Vam je buđet skroman onda definitivno vam preporučam irrlicht naime riječ je open source game engineu prvenstveno namjenjen C++ programerima, ali postoji i verzija za druge jezike. Drugo nezaobilazno je ne spomenuti Unity , ipak u tom engineu trenutno radim. Unity je odličan logički i elagantno dotjeran po mome mišljenu do savršenstva, otvoren je prem JavaScript i C# jezicima te funkcionira na pricipu skriptiranja. UDK epicgames-ov game engine sa podrškom za sve što danas moderne igre traže. Po meni kvalitetniji i bolji od Unity-a , ali možda malo preširok za manje timove, te hardwerski jako zahtjevan.Leadweks game engine, pa probao sam verziju 2 i užasno mi je štekala na kompu. 30 dana probni period , malo pre malo za vidjet što se može napraviti u jednom game engineu. U svakom slučaju engine vrijedan spomena, cijena mu je razumna s obzirom što nudi.
P: OK naučim ili napravim game engine, rasturam programiranje dal sada mogu napraviti igru ?
O: Kratko i jasno NE.
P: Pa koji vrag mi još onda treba ?
O: e sada dolazi naj, naj zanimljiviji dio, a to je modeliranje, animiranje, teksturiranje, obrada zvuka, obrada slika, izrada spriteova ( ako vam je igra 2D ) i možda najbitnije mašta i volja :)
P: pa zašto smo onda sve ono gore nabrajali ?
O: ono je samo alat da nešto pokrenete, pristup koji čete izabrati, par smjernica , to gore sve skupa navedeno nije niti zagreblo površinu problema koji se nameće kod izrade igri. Uz engine ( napravili ga sami ili koristili tuđi ali morat ćete ga imat u bilo kojem obliku , čak i game makeri koriste engine ) i znanje programiranja potrebno je još mnogo mnogo toga. Ono što vidim po porukama članova foruma po nekom defaultu se smatra da ako netko zna programirat da je odmah i game programer, pa osobno mogu reć da to nije istina, jer poznajem ljude koji su programeri ( i to vrsni sa više godina iskustva i radom na poslovima isključivo u vezi programiranja ) ali siguran sam da niti za tri života ne bi napravili igru ( ma ne samo igru nego niti engine, ili barem nešto što sliči na engine ) , a razvaljuju baze podataka , C, C++ , itd ... znači ne može svaki programer niti napraviti igru isko kao što ne može niti svaki glazbenik znat svirat istodobno 10 instrumenata.
Eto nadam se da sam vam barem malo približio problematiku izrade igri.