• Apgrejdovali smo forum na XenForo 2.1.1, ukoliko imate predloga vezanih za izgled ili funkcionalnost foruma, ili ukoliko naletite na neki problem, javite nam OVDE

    DEFINISALI SMO PRAVILA FORUMA. Pročitajte ih, pojaviće se automatski kada krenete da čitate nešto!

XNA Programiranje Igara | Tutorijal #08 | Uvod u XNA | Mini Update

Uni

PCAXE Addicted
Učlanjen(a)
31.08.2018.
Poruka
2.469
Rezultat reagovanja
984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Pre svega, kao i uvek, apelujem na vas da, ukoliko ste propustili iti jedan tutorijal iz serije ovih, iščitate dotične, pošto se svi nadovezuju jedni na druge. Ovo možete učiniti unosom "#xna-gwid" bez navodnika u polje foruma "Pretraga...". :)

Mini Update
Ako ste pratili serijal tutorijala, primetili ste da sam obećao pravljenje još nekoliko tutorijala koji obuhvataju osnove C#-a. Promenio sam svoje odluke, jer su te teme manje korisne što se tiče programiranja igara, te ću ih prepustiti jednom drugom članu ili ću ih obraditi kada bude bilo potrebe :)
Od ovog tutorijala krećemo sa pravim i konkretnim programiranjem igara, uvođenjem grafike ali i objašnjavanjem nekih elementarnih principa. I ako ste spremni, 'ajde da počnemo! :)

Šta je XNA?
XNA je moćan, ali zastareo API u čijoj je osnovi DirectX, čija je glavna namena razvoj video igara. Dizajniran je kao skup alata koji bi olakšali rad nad DirectX-om. Primarne platforme objave igara su XBox, Windows i Windows Phone, mada zbog obustavljanja samog projekta poslednje podržane verzije su Windows 8, Windows Phone 7 i XBox 360 (XNA više nije aktuelan, a mi zapravo učimo MonoGame pa više reči o tome kasnije). Iako je namenjen prvenstveno za izradu video igara, poseduje veliki broj alata koji omogućuju kontrolu nad 2D i 3D grafikom, zvukom, korisničkim unosom, kompleksnim matematičkim operacijama i slično, pa se može koristiti za izradu mnogobrojnih interaktivnih aplikacija.

Telo XNA aplikacije obavlja se iz više metoda među kojima je i nezaustavljiva petlja, koja ažurira stanje igre svakim hiljaditim delom sekunde. Ovo znači da se svaka slika iscrtava iznova i iznova kako vreme prolazi, bez obzira na promene. Iako deluje kao neorganizovan način kontrole nad igrom, ovo je zapravo praktično radi provere korisničkog unosa poput pritiska tipke na tastaturi. Da bi ove aplikacije funkcionisale, za razliku od Console aplikacije koriste sasvim druge biblioteke, metode i klase, što je slučaj sa svakim drugim tipom aplikacije. Ovo je postignuto integracijom mnogobrojnih već napisanih skripti, ali radi olakšanja stalnog kucanja, u Visual Studio okruženju postoje takozvani šabloni. Oni automatski integrišu sve potrebne biblioteke nakon samo par klikova, što se dešavalo i sa Console Aplikacijama.

MonoGame
Budući da je XNA Framework već dugo "mrtva" platforma, on ima svojih limitacija. Pre svega, manjak podržanih platformi deluje kao velika limitacija, prvenstveno zbog prvobitnog korišćenja DirectX-a koji je podržan samo u Microsoft Windows-u. Da bi se ovaj problem prevazišao, osnovan je MonoGame. MonoGame je open-source implementacija XNA framework-a, koja je bazirana na OpenGL-u te može funkcionisati na svakoj većoj platformi, tj. Android, iOS, Linux, OS X, XBox One, Windows UWP, PlayStation Vita, PlayStation 4, Nintendo Switch kao i na nekim manje popularnim platformama i već ranije podržanim. Da biste imali bolju predstavu o samom MonoGame-u, vredno je pomenuti da je korišćen za izradu preko 3000 objavljenih video igara kao i da su izvedena i druga okruzenja iz njega. Jedno od okruzenja je i CocosSharp, koji je implementacija Cocos2d-x-a sa C#-om i korišćena je za izradu svima poznatog Badland-a, Dragon City-ja i Castle Crash-a. Iako je XNA bio solidno okruženje, MonoGame je pored novih platformi doprineo i lakšoj organizaciji fajlova koji se koriste u izradi igara, kao i novim metodama koje mogu doprineti lakšem pisanju koda. Još jedna pozitivna stvar je mogućnost kasnijeg proširenja znanja u Unity Engine-u, koji je jedan veoma popularan i moćan engine, naravno kontrolisan C#-om. :)

Šta dalje?
Cilj ovog posta je bio samo mali uvod u XNA i MonoGame, kao i da vam da motivaciju da nastavite sa učenjem koda. Sledeći tutorijal će objasniti vizuelne funkcije dvodimenzionalnog sveta C#-a. Tako da, čekajte ;)
 
Vrh