Začetniki v izdelovanju iger - pogosta vprašanja

Za vse novince v izdelovanju iger.

Začetniki v izdelovanju iger - pogosta vprašanja

OdgovorNapisal/-a Wing » To Jul 28, 2009 8:23 pm

Ta tema je obvezno branje za vse, ki vas zanima izdelovanje lastnih iger, pa ne veste, kje točno začeti. Na internetu je bilo o tem povedanega in zapisanega že marsikaj, zato tema služi predvsem kot usmeritev na osrednje strani o izdelovanju iger; tam bo vsak zelo verjetno našel informacije, ki jih išče.

Zaželen predpogoj - preden se človek spusti v svet izdelovanja iger - je znanje angleščine, saj je število virov za učenje v slovenščini relativno skopo. Omeniti je potrebno še Google (ali poljubni iskalnik), ki z malo spretnosti poišče domala vse, zato je njegova uporaba nujna. Vnos niza "game development" in stisk gumba za iskanje tako že postreže z mnogo uporabnimi povezavami.

Če si začetnik in iz te teme nisi dobil informacij, ki si jih iskal, brez slabe vesti odpri novo temo.


1. Rad bi delal svoje igre pa nimam pojma, kje začeti.
Jokerjev vedež za začetnike, ki ga je spisal Retro, bi moral razjasniti situacijo: F1 za garažno izdelovanje iger.
Nadalje kot uvod lahko služi tudi GameDev Wiki; celotna Introduction sekcija je posvečena začetnikom.
Pogosta začetniška vprašanja pokriva Beginner FAQ.
Informacije nudi tudi Wikipedia: Game Development.

Večina si za začetek kot sredstvo izdelovanja iger izbere programiranje, ker je to eden od najbolj učinkovitih načinov za izdelavo kompletne igre, ko delaš sam. Tema se od tu naprej zato osredotoči predvsem na programiranje iger; ostala področja (npr. modeliranje, animacija) so bolje predstavljena na straneh, zapisanih v nadaljevanju.


2. Glavne strani in internetne skupnosti o izdelovanju iger
Po internetu obstaja kar nekaj velikih strani, kjer sodeluje ogromno razvijalcev iz celega sveta. Te strani nudijo kup raznih informacij, virov za učenje in prostor za razpravo o praktično kateremkoli aspektu izdelovanja iger. Nekatere bolj znane izmed njih so:
Več povezav: GameDev Wiki Links


3. Kaj za vraga so to indie igre?
Indie je okrajšava za independent, torej govorimo o neodvisnih igrah.
Velike igre (ki jih lahko gledaš na policah trgovin) normalno razvijajo relativno velike razvijalske skupine pod okriljem založnikov, ki tako ali drugače financirajo razvoj - v procesu je veliko denarja, saj je razvoj modernih iger zelo drag. To pomeni, da si založnik ne sme privoščiti slabe prodaje igre, če želi ustvariti dobiček. Razvijalci pod okriljem založnikov imajo posledično pogosto omejeno svobodo, ker morajo igro snovati tako, da se bo ta dobro prodajala.
Kot alternativa mainstream industriji se je pojavila ti. indie scena, ki jo sestavljajo večinoma zanesenjaki, ki na lastno pest izdelujejo igre po svojih lastnih merilih - brez zaledja velikih založnikov, neobremenjeno; kar pa ne pomeni, da so vse indie igre zastonj - indie je zgolj oznaka načina razvoja igre brez pomoči založnika oz. zunanjega financiranja. Indie razvijalci pogosto skušajo inovirati in v igre vnašati nove elemente, ki jih mainstream igre niso deležne. Indie scena sicer premore od domačih garažnih izdelovalcev pa do večjih, profesionalno organiziranih skupin.

Zakaj sploh izpostavljam indie igre? Ker je veliko ljudi na SloGameDev neodvisnih oz. hobi razvijalcev.

Nekatere strani, ki pokrivajo indie igre:


4. Rad bi programiral igre. Kateri programski jezik izbrati?Pri profesionalnem razvoju je za kodiranje velikih iger daleč največ v uporabi C++. Predvsem med domačimi izdelovalci se vedno bolj uveljavlja C# (še posebej v navezi z XNA, ki je namenjen prav izdelavi iger). V splošnem velja, da je izbira jezika precej postranskega pomena in da tu veliko vlogo igra osebni okus. Za domače oz. neprofesionalno izdelovanje iger izberi jezik, ki ti odgovarja - z nobenim splošnim ne moreš zgrešiti; C++ ti recimo nudi veliko fleksibilnost, hitrost končne kode in morje pomagalnih knjižnic (za npr. delo z grafiko, zvokom...), na račun nekoliko težjega in dolgotrajnejšega programiranja; C# ti vzame nekaj malega hitrosti produkta in fleksibilnosti, a zato naredi programiranje lažje in hitrejše; nato so tu za igre še nekoliko manj uporabljani Python, Java, Visual Basic itd. Izbira je tvoja.


5. Kam naj pišem kodo, ko sem izbral jezik? Kako sploh poženem kakšen program?
Igre so tehnično gledano software oz. program. Za začetek je zato koristno (ne pa tudi nujno) razumeti, kako okvirno deluje računalnik, kaj je to prevajalnik (compiler), kaj strojna koda (machine code), kaj IDE itd. Če se ti ne sanja, kaj programiranje sploh je in kako se programi izvajajo, si za boljšo predstavo pomagaj z naslednjimi viri (za branje označenih s pdf potrebuješ Adobe Reader):
S čim torej pisati kodo in s čim si pri programiranju pomagati? GameDev Wiki - obsežen seznam razvijalskih orodij.

Samo nekaj bolj znanih:
Viri za učenje jezika samega so pod naslednjo točko.


6. Programski jeziki - viri za učenje
Ponavadi svoje delo zelo dobro opravi Google - vnos npr. "<ime jezika> tutorial" bo vrnil dovolj materiala.


7. Knjižnice
Pri razvoju iger si večinoma pomaga z raznimi knjižnicami (ali paketi njih - pojem knjižnica je v nadaljevanju uporabljen zelo ohlapno) ki omogočajo, da iz danega programskega jezika lažje delamo z npr. grafiko, zvokom, fiziko, omrežjem ali čemerkoli že. Knjižnice so različno velike, od majhnih, strogo usmerjenih pomagal do ogromnih kompletov za celotno izdelavo iger. Nekatere so zastonjske, druge plačljive, tretje nekaj vmes. Izbire je veliko, tu jih je naštetih le peščica.
  • Free Game Development Libraries - obsežen seznam različnih knjižnic.
  • GDWiki - seznam knjižnic.
  • XNA - zelo popularen komplet orodij, ki se ga uporablja preko C#. Velika prednost je, da igre, narejene z XNA, tečejo tako na Windowsih kot na Xbox 360.
  • SDL - splošna knjižnica, ki podpira delo z grafiko, tipkovnico, miško, zvokom itd.
  • SFML - splošna knjižnica s podobnim naborom funkcionalnosti kot SDL, a verjetno nekoliko lažja za uporabo.
  • Allegro- še ena splošna knjižnica, namenjena za uporabo v navezi s C ali C++.

Pogosto se pojavljata še dve imeni - DirectX in OpenGL. Vpis ene ali druge besede v Google bo razsvetlil nebo.
Na kratko: DirectX je nabor API-jev, ki je izjemno uporabljan predvsem pri profesionalnem razvoju iger. Omogoča delo z grafiko, inputom, zvokom itd. Gre za težkokategorno zadevo; najbolj znan del DirectX-a je Direct3D - API za programiranje grafike.
OpenGL je alternativa Direct3D - enako gre za API, ki omogoča delo z grafiko, a je drugače zasnovan. Njegova popularnost za izdelovanje iger je v profesionalni industriji z leti zbledela, kljub temu pa ohranja svoje mesto in služi namenu. Velja omeniti, da niti Direct3D niti OpenGL v končni fazi teoretično ne omogočata "boljše grafike" ali česa podobnega, ker je ta odvisna od funkcionalnosti strojne opreme, v tem primeru grafične kartice - Direct3D oz. OpenGL sta zgolj načina, kako se s to grafično kartico pogovarjamo. Debata, ali je iz stališča uporabe za programerja boljši eden ali drugi ne sodi sem in nima nekega absolutnega odgovora. S pomočjo do sedaj omenjenih virov se lahko vsak odloči zase.

Direct3D in OpenGL se večinoma uporabljata za delo s 3D grafiko, podpirata pa seveda tudi 2D grafiko.
Uporabljata se praktično enako kot knjižnice - iz jezika, v katerem programiramo, dostopamo do npr. Direct3D ali OpenGL in tako delamo z grafiko. Pozor, Direct3D oz. OpenGL nista nujno nekompatibilna s prej omenjenimi knjižnicami - povsem mogoče je recimo hkrati uporabljati OpenGL in poljubno knjižnico za umetno inteligenco, spet drugo knjižnico za zvok in tretjo za delo s tipkovnico ipd. Pogosto se tak način celo spodbuja in obstajajo kupi knjižnic, narejenih za uporabo istočasno z enim ali drugim.


8. OK, brez kompliciranja - povej mi eno realno kombinacijo orodij, ki jih potrebujem za programiranje kompletne igre, npr. 2D strelske arkade.
Če pustimo risanje, oblikovanje, izdelavo glasbene podlage ipd. na strani, sta tu dva primera programerskega kompleta, ki bi ga lahko uporabil.
1. C#, XNA.
2. C++, OpenGL, SFML, Box2D (po želji za simulacijo fizike).
Izbira je normalno delno odvisna od igre, ki jo delaš - za 2D ali 3D boš mogoče želel izbrati drugače; če delaš multiplayer igro, boš verjetno posegel še po neki mrežni knjižnici; če ne potrebuješ zahtevne 3D fizike, ne boš uporabil težkokategornih fizikalnih API-jev itd. Namesto knjižnic lahko uporabiš tudi že kakšen zgrajen (3D) pogon, a razprava o tem presega to temo. Skratka, možnosti je ogromno in tu naštete so zgolj primer.


9. Nočem programirati, pa bi vseeno rad delal igre.
Najprej si preberi članke pod točko 1.
Seznam nekaterih orodij, ki omogočajo izdelavo iger brez programiranja.


10. Kaj pa, če me zanima risanje, animacija, 3D modeliranje, snemanje glasbe, modanje, Flash igre... in ne programiranje?
Portali, našteti pod točko 2, nudijo dovolj navodil in vrata v svet tudi za ta področja. Predvsem si poglej ustrezne podforume, ki večinoma vsebujejo teme, podobne tej, z ustreznimi informacijami. In ne pozabi na Google.
Uporabniški avatar
Wing
SGD Admin
SGD Admin
 
Prispevkov: 481
Pridružen: Sr Jan 08, 2003 9:33 pm
Kraj: Kranj

Vrni se na Začetniki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron