PDA

Pogledaj cijelu verziju : [Članak] Želite raditi igre?



RayDX
26-03-2008, 21:18
Mogu vam reći da ste došli na pravo mjesto! Ovo je mjesto gdje svi novaci mogu saznati više o razvoju samih igara. Vjerojatno ste mladi, osjećate se nabrijano i želite raditi igre. Od samog početka, bit ću iskren... Svijet razvoja igara je veoma okrutan i kompliciran... Ali nije nemoguće! Veoma je moguće, ako imate volje i spremni ste na nova znanja... Sa ovom malom temom nadam se da ću vam poslužiti kao vjetar u leđa. Kao prvo, ja vam iskreno preporučam da se NE zatupljujete sa različitim game makerima i glupostima koji vam žele izvući pare iz džepa bez da vas nauče bilo čemu. Preporučam da se uhvatite programiranja. I to ne bilo kakvog programiranja. Vaš je izbor danas... Želite li raditi u okrilju C++a ili C#a? Ja ću vam pomoći tako što ću vam ponuditi dvije priče.

Visual C++ & DarkGDK

C++ je jedan od najzastupljenijih jezika današnjice te je jezik izbora najjačih kompanija na današnjem gaming tržištu. Svojom performansama i nevjerojatnim mogućnostima koje pruža programeru, užitak je raditi u ovom programskom jeziku. The Game Creators i Microsoft su se udružili da vam ponude set biblioteka za kreiranje 2D i 3D grafike tako da ćete vrlo brzo doći do razvoja veoma zanimljivih igara.

http://darkgamesdk.thegamecreators.com/g/darksdk/logo_net.jpg


Visual C# & XNA

Visual C# je jezik baziran na .NET frameworku, odličnom setu biblioteka razvijenih od strane Microsofta koji je dobio još bolji framework za izradu iigara, radi se o XNA (X No Acronym) koji će vam omogućiti razvoj igara i za PC ali i za XBOX 360. Definitivno vrijedi probati. Samo moram malo napomenuti da je XNA kompliciraniji za početnike ali ipak... Isplati se truda.

http://www.nuclex.org/system/files/images/nodes/197/xna-logo.png

To je to za početak, ja sam se malo počeo baviti DarkGDKom čisto iz znatiželje, mogao bih u skoroj budućnosti možda i mali tutorial napisati.

Da biste došli do više informacija i gdje skinuti sve potrebno:

OVDJE KLIK! (http://www.microsoft.com/express/gamedevelopment/)

Možda će nekima ovo zvučati veoma neugodno i okrutno od mene, ali ako ne znate engleski, nemojte ni pokušavati dok ne naučite... Hvala na pažnji!

Plexihack
26-03-2008, 22:39
Evo,da ja nastavim...
Luka,može stavljanje pod obavjesti?Da se ističe...

U gornjem postu je kolega predstavio dva riješenja koja su odlična za početi,a ovdje ću vam predstaviti neke dobre engine-e i alate,te industrijske standardeS...
Pa,krenimo...


-SLista besplatnih engine-a i recenzije : Ovdje (http://www.devmaster.net/engines/)



-SAko želite modelirati i imate love (ako radite u piratskoj verziji i distributirate igru,vjerovatno je da će vas tužiti),možete razmisliti o ovim programima:

3DSMax (http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=5659302)
Maya (http://usa.autodesk.com/adsk/servlet/index?id=7635018&siteID=123112)

A ako niste dubokog džepa,pogledajte:
Blender (malo teži za početak,ali mogućnosti su kao u profesionalnim programima) (http://www.blender.org/)
Maya Personal Edition (Namijenjena učenju i nekomercijalnim projektima) (http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=7639525)

-SAko vam treba Level Editor,dobar besplatan je Deled (http://www.delgine.com/index.php?filename=product_deled)S


-SPoznatiji zvučni "library" (aka engine) su:
Fmod: http://www.fmod.org
OpenAL: http://www.openal.org

-SNetwork API:
RakNet: http://www.rakkarsoft.com
Zoidcom: http://www.zoidcom.comS

-SFizikalni engine-i (besplatni):
Newton Game Dynamics: http://www.newtondynamics.com
Novodex: http://www.novodex.comS
ODE: http://ode.orgS
Tokamak: http://www.tokamakphysics.com
Havok : http://tryhavok.intel.com/

Note: Najavljeno je da će ubrzo Havok Engine (najpoznatiji fizikalni engine,korišten u mnogo igara) postati besplatan...update-at ću ako dođu novosti.

-SMeđu (besplatnim,inače dođu par stotina tisuća dolara ++) grafičkim engine-ima,često se spominju Irrlicht (http://irrlicht.sourceforge.net/index.html)Si Ogre (http://www.ogre3d.org/).Irrlicht je lakši,ali prema performansama lošiji(barem kako čujem,nisam još probao).Ogre ima čak i knjigu koju možete kupiti ovdje (http://www.amazon.co.uk/gp/explorer/1590597109/2/ref=pd_lpo_ase/202-9550778-6522202?)

Evo vam usporedba između to dvoje:
Ovdje (Ogre forum ^^ ) (http://www.ogre3d.org/phpBB2/viewtopic.php?t=3970&highlight=)
I ovdje (Irrlich forum..oh,ironijo,slatka ironijo...) (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=16785&sid=bde846d47e444a91345e633b2d5ea30f)

-SGrafički API-i (Application Programming Interface (http://en.wikipedia.org/wiki/API)):

OpenGL
- Čisto grafički API
- Industrijski standard od 1992.
- Čisti,čitljivi kod
- Lagan za naučit
- Prijenosnost na sve platforme

Poznatiji naslovi:

America's Army
Baldur's Gate 2 – D3D u Windowsima po defaultu
Call of Duty
City of Heroes
City of Villains
CodeRED: Alien Arena
Counter-Strike
Darwinia - D3D u Windowsima po defaultu
Doom 3
Dwarf Fortress
Earth 2150
Enemy Territory: Quake Wars
Far Cry – D3D u Windowsima po defaultu
Frets On Fire
FlightGear
Half-Life (not Half-Life 2)
Homeworld 2
Neverwinter Nights
Penumbra: Overture
Prey
Quake series
Rage
Scorched3D
Second Life
Serious Sam
Serious Sam 2 – D3D u Windowsima po defaultu
Spring
Starsiege: Tribes
Star Wars Jedi Knight: Jedi Academy
The Chronicles of Riddick: Escape from Butcher Bay
Tux Racer
Ultima IX: Ascension
Unreal series
Warcraft 3 - D3D u Windowsima po deafultu
Wolfenstein: Enemy Territory
World of Warcraft - D3D u Windowsima po defaultu
Wurm Online
X-Plane

Stranice i tutoriali:

http://www.opengl.org
http://www.openglforums.com/
http://nehe.gamedev.net
http://www.gamedev.net
http://www.gamedev.net/community/for...sp?forum_id=25
http://www.lighthouse3d.com/opengl/
http://www.zeuscmd.com/tutorials/opengl/

Red Book: http://fly.cc.fer.hr/~unreal/theredbook/

Sad da biste ga koristili morate ga postaviti u svom kompajleru:
http://www.zeuscmd.com/tutorials/ope...nvironment.php

Osobno mogu preporučiti OpenGL,lak je za naučiti i ima veliku zajednicu korisnika.Nisam probao DirectX pa možete zanemariti S


DirectX (Direct3D)

- Skup API-ja,od kojih su Direct3D i DirectDraw namijenjeni grafici.
- Prvo je bio zanemarivan,ali sad je postao direktan konkurent OpenGL-u
- Napravljen iskuljučivo za Windows platformu
- Ima jako puno tutoriala,ali ga je malo teže naučiti
- Podržavaju ga (skoro) sve poznatije igre

Stranice i Tutoriali:

http://msdn.microsoft.com/directx/
http://www.gotdotnet.com/team/directx/learn/
http://nexe.gamedev.net/directKnowledge/
http://www.pluralsight.com/wiki/defa...DTutorialIndex
http://www.alanphipps.com/VisualBasicdotNET-XNA.html
http://gpwiki.org/index.php/DirectX:Tutorials

Kolega rayDX je krenuo sa jako dobrom serijom tutoriala o DirectX-u:
http://www.pcplay.hr/forum/viewtopic.php?f=45&t=17035


Za početak,morati ćete DirectX SDK (http://msdn2.microsoft.com/en-us/xna/aa937788.aspx),koji je Windows-only.Rad koristeći DirectX je lakši ako imate Visual Studio,pa ako nemate,skinite Visual Studio Express (http://www.microsoft.com/express/).
Konfiguracija DirectX-a koristećo Visual Studio:
http://cs.gmu.edu/~jchen/graphics/bookx/Notes/IntroDirectX.doc

Teže je koristiti DirectX i Dev-C++,ali evo jedan tutorial(malo stariji):
http://nexe.gamedev.net/directKnowle...Using%20DevCpp

I da vam napomenem,česta je zabuna da se govori da radite igru koristeći DirectX.
DirectX je samo skupina API-ja,od kojih je Direct3D zadužen za 3D a i za 2D grafiku.


Mali dodatak:
Dopustite mi da vam usput olakšam i smanjim vrijeme učenja.
Vjerovatno koristite Internet Explorer ili Firefox.
Iako koristim Firefox,uz njega koristim i Operu (http://www.opera.com/).
Kako vam može pomoći u učenju?

Opera ima odličan način pretrage koji možete podešavati po vlastitim željama.
Npr. ako želite potražiti OpenGL na googleu samo upišete u adresnu traku:

g OpenGL

ili za wikipediju (lako podesite): w OpenGL

Ovo vam može puno olakšati i skratiti vrijeme učenja,pretrage itd.

Samo za vas,Plex (aka eXpelled aka *.Xpl )

Luka
01-07-2008, 14:15
da se i ja nadovežem.. evo mali F.A.Q.


P : Što je ustvari igra ?
O : Igra je vrsta zabavnog interaktivnog softvera, koja radi na ponešto drugačijim principima od "običnih" programa poput Notepada ili Firefoxa. Potonji rade na tzv. "event-driven" (eng. pokretano događajima) paradigmi. To znači da aplikacija u većini slučajeva miruje sve dok joj korisnik, operativni sustav ili neki drugi ne program ne odluči poslati nekakvu informaciju koju zovemo događaj. Igre rade na principu konstantnog izvršavanja - ne miruju ni u kojem trenutku. Osnovni dio igre zovemo "Petljom igre". Petlju igre možemo predstaviti sljedećim pseudokodom :



Izvršavaj dok (korisnik ne želi izaći)
Provjeri jesu li pritisnute tipke/pomaknut miš/gamepad ...
Ažuriraj logiku igre (provjera sudara između objekata, pomicanje elemenata)
Nacrtaj sve što se treba nacrtati

Uz nabrojano, u petlji se mogu nalaziti i drugi elementi - npr. puštanje zvukova. Sve ono što se nalazi u petlji će se izvršavati sve dok korisnik na neki način ne odluči izaći. Svaki "prolaz" kroz petlju nazivamo iteracijom. U sekundi se može izvršiti više desetaka iteracija. Ovisno o količini elemenata i njihovoj složenosti, trajanje iteracije se razlikuje - ukoliko hardver (prvenstveno CPU i GPU) nije dovoljno brz iteracija može potrajati više od očekivanog i nama se čini da se igra usporila. Većina modernih igra uzima ovo u obzir, pa je usporavanje (ili ubrzavanje) petlje manje primjetno.

P : Što sve moram znati/imati da bi napravio igru ?
O : Postoje 2 osnovna načina kojim možete krenuti. Prvi je koristeći razne "game maker" alate, programe koji generiraju igre uz pomoć vlastitog koda i koje je relativno lako naučiti koristiti. Bitno je napomenuti da to onda nije vaša igra, nego igra autora Game Makera koji je izradio kod igre. U slučaju da se odlučite za ovaj način izrade igra, trebat će vam neki alati pomoću kojeg ćete izraditi sadržaj za igru. Sadržaj uključuje : teksture (slike) i zvukove, a ako je igra 3D, onda i 3d modele. Danas game makeri često dolaze s ovim sadržajima, i u tom je slučaju sve što morate napraviti odrediti kako će se ti materijali ponašati (što se s ćim odbija, što prolazi kroz nešto, što će uzrokovati game over, što će povećati rezultat ...).
Drugi (bolji) način jest programiranje. U ovom slučaju Vi pišete kod (petlju koju sam objasnio u prvom pitanju). U ovom ćete slučaju morati izraditi svoje sadržaje (zvukove, animacije, "efekte", teksture, 3d modele ...) . Naravno, postoje stranice na kojima besplatno možete preuzeti ove sadržaje i koristiti ih u svojim igrama. U slučaju da se odlučite za ovaj način izrade, trebat će Vam :

- Poznavanje programskog jezika (primjeri : C, C++, C#, VB ...)
- Razvojno sučelje (primjer : Visual Studio)
- Grafički API (primjer : OpenGL)

Trebat će Vam i alati za izradu sadržaja, evo nekih besplatnih :

- Gimp (teksture)
- Skale Tracker (glazba)
- Blender (3d modeliranje)

Najbitniji za samu igru su razvojno sučelje i grafički API, pa ću njih objasniti. Razvojno sučelje je program u kojem pišete kod svoje igre. Taj kod možete pisati i u Notepadu, ali razvojno sučelje olakšava i pojednostavljuje proces. Razvojna sučelja su često ograničena na samo jedan programski jezik. Od jezika, danas se najčešće koristi C++ (u kombinaciji s skriptnim jezikom igre i assemblyom za kritične dijelove igre koji zahtjevaju brzo izvršavanje). Danas se sve češće koristi i C#, Microsoftov jezik baziran na C-u. Programirati možete i u drugim jezicima poput Jave ili VB-a, ali su C++ i C# najzastupljeniji. Grafički API je nešto što Vam je potrebno za iscrtavanje grafičkog dijela igre na ekran. Danas su najpoznatiji : DirectX (koji uz API za grafiku posjeduje i druge - npr. za zvuk i ulazne uređaje), OpenGL i XNA. Datoteke koje sadrže željeni API potrebno je uključiti u kod, i funkcije u njima se pozivaju iz koda.

Na kraju, moj prijedloga razvojnog sučelja je "Microsoft Visual C# 2005 Express Edition", a grafičkog API-a "XNA 2.0". Mogu se besplatnog skinuti s Microsoftovih stranica. Za predloženo razvojno sučelje potrebno je poznavati jezik C#.

P : U prethodnom odgovoru spomenuto je programiranje, što je to i gdje to mogu naučiti ?

O : Programiranje je proces koji se sastoji od zamišljanja, planiranja, pisanja, testiranja i objavljivanja programa. Najznačajniji dio je pisanje programa, točnije pisanje koda. Da biste bili u stanju napisati program, morate poznavati neki programski jezik. Ovisno o odabiru jezika koji želite naučiti, trajanje učenja se razlikuje. Ukoliko se odlučite na Basic, osnove ćete savladati u tjedan dana, ako se odlučite na npr. C++, trebat će Vam mjeseci dok ga ne upoznate. Čak i tada, nemožete reči za sebe da ste programer - to postajete kad ste u stanju napisati aplikaciju koja u potpunosti rješava problem kojim se bavi (a taj je problem takav da je za njegovo rješavanje netko spreman platiti).
S kojim jezikom započeti ? Prevladava mišljenje da je bolje početi od jednostavnijih prema kompliciranjim, ali je najbolje odmah krenuti na ono s čim se mislite baviti. U slučaju igra i općenito aplikacija najbolji izbor je C++, jer kad njega naučiti lako ćete savladati ostale jezike iz C obitelji poput C#-a. Najbolji način jest pronaći dovoljnu količinu slobodnog vremena, kupiti knjigu (npr. "Demistificirani C++", ili "C++ Analiza i primjena") i vježbati.


Pojmnovnik

APIS= Application Programming Interface = Biblioteka funkcija koje pomažu programu u obavljanju nekog zadatka.
IDES= Intergrated Development Enviroment = Intergrirano razvojno sučelje
(Game) EngineS= središnji dio igre, pojednostavljuje razvoj igre ugrađenim komponentama. Obično sadrži sljedeće funkcionalnosti : “renderer” za 2D ili 3D grafiku, fizički engine, zvuk, skriptiranje, umjetnu inteligenciju i mrežnu komponentu. Svrha enginea jest ponovna iskoristivost. Umjesto da se za svaku igru ispočetka piše kod, koristi se kod enginea koji tako ubrzava proces nastajanja igre.
ProgramS= Skup instrukcija namijenjenih hardveru.
ProgramerS= Osoba koja piše programe.
ProgramiranjeS= Postupak pisanja programa. Cjeloukupni razvoj programa se okvirno dijeli na planiranje, pisanje, testiranje i objavljivanje programa.
Programski jezikS= Umjetni jezik koji je razumljiv čovjeku i koji je određenim postupcima moguće pretvoriti u oblik razumljiv računalu. Najpoznatija je podjela na više i niže jezike. Što je jezik "viši" razumljiviji je običnom čovjeku, ali je nakon prevođenja u oblik pogodan procesoru sporiji.
Compiler/Kompajler/PrevoditeljS= Vrsta programa, namjena mu je prevesti kod pisan u nekom programskom jeziku u oblik pogodan za izvršavanje.

fps_gamer
18-12-2008, 14:55
a jeste komplicirani...joj... :hangin:

ako ti je ovo komplicirano, okani se programiranja igra...

Luka
18-12-2008, 18:04
lock da ne bude spama