Microsoft XNA al

**XNA** është një platformë e gjeneratës-së-re për zhvillim të aplikacionit. Ajo është një katalizator i një ekosistemi të shkëmbyeshëm të veglave *software*-ike dhe teknologjive të Microsoft-it dhe kompanive të zhvillimit të lojërave. Duke mundësuar integrimin e risive *software*-ike ndërmjet platformave të Microsoft-it dhe industrisë, **XNA**-ja formon një hapësirë të përbashkët që i çliron zhvilluesit e aplikacioneve nga shpenzimi i tepërt i kohës për të shkruar kod të përsëritur. Për më tepër, **XNA** u mundëson krijuesve të lojërave, ta shpenzojnë kohën e tyre aty ku duhet më së shumti: në kreativitetin, gjë që i bën lojërat e tyre të dallueshme.

**XNA Framework**-u i Microsoft-it na siguron një mori veglash të fuqishme, që u mundëson ekipeve zhvilluese të çfarëdo niveli, filluar nga zhvilluesit individualë e deri te ekipet e pavarura të mëdha, që shumë shpejt të mund të zhvillojnë lojëra kualitative, të performancave të larta për platformat e shumta të lidhura me Microsoft-in.

## Hyrje
### Pak histori
Në grafikat e kompjuterëve të mëhershëm, kartelat grafike ishin vetëm 2D (dy-dimensionale). Lojërat krijonin një kornizë (model, strukturë) duke i vendosur ngjyrat e pikselëve në memorien e kartelës grafike, e më pas duke i kërkuar kartelës që të bëjë aktiv një *buffer*, sipas një metode të quajtur *frame buffering*. Nëse loja ishte 3D (tri-dimensionale), do të thoshte se programuesit është dashur të shkruajnë metoda të konvertimit nga 2D-në-3D, ndonjëherë në gjuhen **C**, e më shpesh në **Assembly**, për të prodhuar modele 2D nga burimet 3D.

Fatmirësisht, ne nuk jemi më në vitin 1980, dhe sot, kartelat grafike janë të tilla që përfshijnë përpunimin e imazheve 3D. Me ndihmën e **XNA**, tani është e mundur shkruarja (programimi) e lojërave 3D me efekte (performanca) të larta, nëpërmjet kodit të administruar, e që do të mund të punojë në Windows PC dhe XBOX 360. Zhvillimi i lojërave 3D kurrë nuk ka qenë më i lehtë, por kjo nuk do të thotë se një gjë e tillë është aq thjeshtë!

## XNA Framework
Me publikimin e **Windows 95**-shit, Microsoft-i gjithashtu bëri të njohur **DirectX** Ndërfaqen për Programim të Aplikacionit **(API)**, e cila u mundësoi aplikacioneve të bazuara në Windows të mund të harmonizoheshin në mënyrë më të drejtpërdrejtë me *hardware*-in grafik të sistemit. Para **DirectX**-it, shumë lojëra zhvilloheshin në **MS-DOS**, ngase grafikat e bazuara në Windows ishin tejet të ngadalshme për shumicën e nevojave të lojërave.

Megjithëse më shpejtë, të punuarit me **DirectX API** mund të ishte sfiduese. **DirectX SDK**-ja (Kutia për Zhvillim Aplikacioni) është e orientuar në gjuhën C++, pa përkrahje me ndonjë version zyrtar për gjuhët tjera programuese. Zhvilluesi gjithashtu ballafaqohej me sasi të madhe të punës në prapavijë, që të mund ta sillte një projekt **DirectX** në një pikë ku të mund t'i shfaq imazhet në ekran, para se të mendonte për logjikën e lojës.

Në vitin 2002, Microsoft-i publikoi **Managed DirectX**, si një ndërfaqe kundrejt **API**, nga hapësira e re zhvilluese e tyre **.NET**. Korniza **.NET** përbëhet nga një grumbull librarish të kodeve që kryejnë detyra të caktuara programimi, dhe nga **CLR** (Common Language Runtime), që mundëson që kodi i shkruar në gjuhë të ndryshme **.NET** (përfshirë **Visual Basic .NET** dhe **C#**) të mund të përpilohet (*compile*) në kod të zakonshëm. Në mënyrë që të përkrahë pajisjet si telefonat **Windows Mobile**, është krijuar një nëngrup i **.NET Framework**-ut, i quajtur **.NET Compact Framework**. Ky i fundit, i njohur si **.NET CF**, i largoi komponentet e **Framework**-ut të plotë në mënyrë që të ruhej hapësira memoruese e pajisjeve portabile.

Gjersa **Managed DirectX 2.0** ishte në fazën *beta*, projekti qe anuluar, dhe në vend të tij ishte publikuar **Microsoft XNA**. **XNA**-ja përbëhet nga **XNA Framwork**-u, një grumbull librarish të kodeve për të bërë punë të tilla si përpunime grafike, zanore dhe të tjera të lidhura me lojëra, dhe nga **XNA Game Studio**, një shtesë e **Visual Studio C#** që përfshin një numër shabllonesh (mostrash) për ta shfrytëzuar **XNA Framework**-un. Këto mostra përfshijnë unaza të integruara lojërash, metoda të shpejta (dhe të lehta) të paraqitjes së pamjeve, përkrahje e plotë e 3D modeleve, dhe një qasje të thjeshtë në tipet e ndryshme të pajisjeve hyrëse.

### Ç'është XNA Framework?
Kompjuterët janë vërtetë makina mahnitëse. Vetëm mendimi se si kompjuterët modernë fillojnë me asgjë tjetër pos **0**-ve dhe **1**-ave dhe përfundojnë me veglat që i përdorim për punë të përditshme, është thjeshtë fascinues. Ndoshta asgjë tjetër nuk e bën të shfrytëzojë fuqinë e kompjuterit dhe ta tërheqë vëmendjen e përdoruesit, më mirë se një lojë e mirë kompjuterike. Që nga ditet e hershme të **Pong**-ut, e gjer në titujt e ditëve të sotme, lojërat kompjuterike kanë kapluar imagjinatën e miliarda njerëzve.

**XNA** është një platformë e fuqishme e zhvillimit të aplikacionit. Ajo u jep mundësi zhvilluesve të paraqesin lojëra të fuqishme, duke luftuar rritjen e kostove të prodhimit dhe kopmleksitetin e vazhduaeshëm-në-rritje të *hardware*-it.

*"Aplikacioni do të jetë forca e vetme dhe më e rëndësishme në zbavitjen digjitale përgjatë dekadës së ardhshme. **XNA**-ja nënvizon angazhimin e Microsoft-it në industrinë e lojërave dhe dëshirën tonë për të punuar me partnere, për ta ngritur industrinë në nivelin e ardhshëm"* - Bill Gates, 24 March 2004, San Jose, California.

### XNA Game Studio 3.0
**XNA Game Studio** është një *Hapësirë e Integruar Zhvillimi* **(IDE)** për krijimin e lojërave.

**XNA Game Studio 3.0** lejon prodhimin e lojërave me cak platformën **Zune** dhe ka të shtuar përkrahjen për rrjetë për **Xbox Live**. Versioni final është publikuar më 30 tetor 2008. Përkrah **C# 3.0**, **LINQ**-un dhe shumicën e versioneve të **Visual Studio 2008**.

### XNA Game Studio 4.0
Fillimisht u publikua më 9 Mars 2010, kurse versioni final më 16 shtator 2010. Aty është shtuar përkrahja për platformën e **Windows Phone 7**, hyrjet për prekje (*multi-touch input*), etj., si dhe përshtatja me **Visual Studio 2010**.

## Referimet
:1. XNA 3.0 Game Programming Recipes, APRES 2009
:2. Learning XNA 3.0, O'Reilly 2009
:3. XNA 4.0 Game Development, PACKT 2010