Microsoft túži ísť do neba, XNA je zadarmo
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Microsoft túži ísť do neba, XNA je zadarmoMicrosoft túži ísť do neba, XNA je zadarmo

 

Microsoft túži ísť do neba, XNA je zadarmo

Google       Google       12. 12. 2006       17 641×

Technológia Microsoft XNA by mala podľa zlatých jazykov z Redmondu výrazne zmeniť základné postupy pri vývoji hier a hlavne ho výrazne zjednodušiť. Je vývoj hier teda ešte stále iba v rukách profesionálov? Vzniká skutočne revolúcia vo vývoji hier alebo ide len o ďalší marketingový ťah zo strany Microsoftu?

Tak, ako Microsoft všetci poznáme, nepremožiteľný monopol, ktorý je nočnou morou všetkých menších softvérových spoločností, sa v poslednom čase pravdepodobne snaží získať si naše sympatie vývojom nekomerčného softvéru. V tlačovej správe zo dňa 24. marca 2004 Microsoft ohlásil začiatok vývoja novej hernej technológie, zvanej Microsoft XNA. V súčasnosti je už na svete druhá betaverzia XNA Game Studio Express, po ktorej už pravdepodobne bude nasledovať finálna verzia, ktorá by podľa šuškaní na internetových fórach mala byť dostupná 11. decembra. Na začiatku roka 2006 Microsft uvoľní aj XNA Game Studio Professional, platenú alternatívu pre profesionálne vývojárske štúdiá alebo pre tými a jednotlivcov, ktorí to myslia s vývojom hier skutočne vážne.


Čo je XNA?

XNA je sada nástrojov, ktoré umožňujú plnohodnotný vývoj hier. Hlavnou úlohou technológie Microsoft XNA je vyriešiť hlavné problémy v hernom priemysle. XNA Game Studio Express (ďalej len XNA GSE) je vývojové prostredie (IDE), založené na technológiách Express edícií Microsoft Visual Studia. V rámci snaženia sa Microsoftu presadzovať programovací jazyk C# .Net (čítaj „sí šárp dot net“) ako hlavný jazyk pre platformu .Net, XNA GSE je založené práve na vývojovom prostredí Visual C# 2005 Express. Pôvodne mala byť neskôr pridaná podpora všetkých oficiálnych jazykov platformy .Net, no podľa najnovších informácií sa iná podpora ako pre jazyk C# .Net neplánuje.

Cross-Platform Game Development

Jednou z kľúčových vlastností technológie XNA je tzv. Cross-Platform Game Development. Vývojárom Microsoftu sa podarilo dosiahnuť až 95% API kompatibilitu medzi platformou PC Windows a hernou konzolou novej generácie Xbox 360. Zvyšných 5% tvorí špecifická funkcionalita každej platformy, ktorá môže byť užitočná, teda sa ju vývojári rozhodli včleniť do XNA pre každú platformu zvlášť. To znamená, že ak naprogramujete hru s použitím XNA GSE a XNA Framework pre platformu PC Windows, po malých úpravách kódu pobeží aj na platforme Xbox 360 alebo naopak. Pre možnosť spustiť váš kód na konzole Xbox 360 však budete musieť byť členom Creators Clubu za poplatok $99 (U.S.) \ rok. Okrem iného bude Creators Club rozsiahlym zdrojom informácií pre vývojárov, ponúkne možnosť zdieľať s ostatnými vašu hru alebo ju dokonca bude možné na weboch XNA predávať. Okrem iného, Microsoft XNA GSE umožnuje vývoj komerčných hier.

Vývoj hier náročný aj pre profesionálov

„Vývoj hier je náročný. Je náročný pre profesionálnych herných vývojárov, nehovoriac o študentoch alebo koníčkaroch, ktorí s vývojom hier začínajú. Často je potrebné veľké množstvo kódu, času, skúšania a mnohých chýb, aby sme sa dostali k bodu, kde môžeme niečo vykresliť na obrazovku alebo získať vstup (napr. klávesov) a dosiahnuť, aby sa niečo hýbalo.“ Toľko o terajšom vývoji hier podľa slov vývojárov XNA na oficiálnom blogu. A čo sa teda zmení? S XNA budeme údajne schopní začať písať hru už po piatich minútach od vytvorenia nového projektu. „Nemusíte sa starať o vytváranie okna systému Windows. Nemusíte sa starať o Message Pump alebo Idle Events. Nemusíte vymenovávať grafické adapéry a režimy zobrazenia. Nemusíte vytvárať Direct3D 9 Device a riadiť ho, ak bude zmenená veľkosť okna alebo ak bude hra minimalizovaná. XNA Framework sa stará o všetko. Prvé, čo musíte urobiť, je jednoducho začať písať kód vašej hry.“

XNA Framework

XNA Framework je sada knižníc založených na platforme .Net Framework 2.0, ktoré sú neoddeliteľnou súčasťou XNA GSE a sú distribuované spolu v inštalačnom balíku. Ak opisujeme XNA Framework a to, z čoho sa skladá,teda jeho jednotlivé zložky, je dobré predstaviť si ho ako sled vrstiev. Platform je najnižšou vrstvou. Skladá sa z nízkoúrovňových natívnych API. Niektoré z API obsiahnuté v tejto vrstve sú napr. Direct3D 9, XACT, XInput a XContent. Core Framework je vrstvou, ktorá poskytuje hlavnú funkcionalitu, ktorú ďalšie vrstvy rozširujú. Môžeme tu nájsť funkcionality zoskupené do skupín Graphics, Audio, Input, Math a Srorage. Extended Framework je vrstva, ktorá sa sústreďuje na zjednodušenie vývoja hier. Momentálne sa tu nachádzajú dva hlavné komponenty: Application Model a Content Pipeline. Games je najvyššou vrstvou. Táto vrstva pozostáva z kódu hry a jej obsahu. Takisto tu nádeme Starter Kits (štartovacie sady), templates (šablóny) a game components (herné komponenty).

Hlavné rysy

Application model sa snaží oddeliť platformu, na ktorej hra beží od samotného vývoja hry, a tak vás nechá sústrediť sa na písanie kódu vašej hry. Postará sa za vás o vytvorenie okna, časovača a pod. Content pipeline zabezpečuje rýchlu a jednoduchú prácu s obsahom hry. Content pipeline disponuje procesormi, ktoré automaticky spracúvajú rôzne formáty 3D modelov, textúr, audio súborov do vlastných formátov a tento obsah nám dovolia v hre automaticky použiť. Graphics sú API pre prácu s grafikou založené na Direct3D 9. Tieto API sú dosť podobné MDX (Managed DirectX). Dokonca je možná migrácia projektu z MDX 1.1 do XNA, a tak nám Microsoft na svojich stránkach ponúka príručku „API Migration Guide: Managed DirectX 1.1 to XNA Framework“. Audio sú API založené na technológii Microsoft XACT, čo sú cross-platform audio API pre Windows a Xbox 360. V súčasných verziách DirectX SDK (posledná verzia nesie označenie DirectX SDK October 2006) už môžeme nájst utilitu Microsoft Cross-Platform Audio Creation Tool (XACT) verzie 2.0, ktorá už podporuje vývoj pre XNA GSE. Za zmienku stojí aj Math API, ktoré poskytuje vývojárom často používané dátové typy, ako Vecror2, Vecror3, Vecror4, Matrix, Plane a Ray. XNA vývojárom výrazne uľahčuje vývoj. Vývoj s XNA Framework je omnoho jednoduchší, ako vývoj s použitím technológie DirectX, ktorá má však pred sebou, samozrejme, tiež dlhodobú perspektívu.

XNA GSE v praxi

Síce sa o XNA pekne hovorí a ešte krajšie píše, to však, prirodzene, nestačí. Aké je jeho reálne použitie? V nasledujúcich riadkoch sa vám budem snažiť priblížiť vývojové prostredie XNA GSE. Po spustení sa, verte, či neverte zobrazí klasické vývojové prostredie Microsoft Visual C# 2005 Express (na obrázku). Na prvý pohľad sa ničím neodlišuje. Po kliknutí na ikonku vytvorenia nového projektu sa nám však už nezobrazia len štandardné šablóny typické pre Visual Studio, ale pribudli položky ako Windows Game, Windows Game Library, Xbox 360 Game, Xbox 360 Game Library a Spacewar Starter Kit pre Windows a Xbox 360. Windows Game a Xbox 360 Game sú šablónami, ktoré nám ponúkajú akýsi základ pre našu hru, kód, z ktorého budeme vychádzať. Windows Game Library a Xbox 360 Game Library sú šablónami pre vytvorenie vlastnej hernej knihovne v XNA. Spacewar Starter Kit je štartovacia sada, ktorá demonštruje použitie XNA. Je to jednoduchý herný projekt, ktorý prichádza ako remake najstaršej počítačovej hry vôbec, teda Spacewar. Dostupný kód tohto štartovacieho kitu si môžeme preštudovať a použité techniky použiť vo vlastnom projekte. Po zvolení šablóny Windows Game (XNA) XNA GSE vytvorí nový projekt a nakonfiguruje všetko potrebné pre začiatok vývoja. Vytvorí súbory potrebné pre hru a pre nás dôležitý súbor „Game1.cs“. Po otvorení súboru „Game1.cs“ sa súbor otvorí a máme možnosť vidieť predprogramovaný kód.

Podrobnosťami programovania sa nebudeme zaoberať, opíšem iba jednotlivé metódy a ich úlohy. Konštruktor triedy Game1, čiže Game1(), vytvorí GraphicsDeviceManager a ContentManager. Pri opisovaní metódy Update(), je potrebné uviesť rozdiely medzi klasickou aplikáciou a hrou. V klasických aplikáciách (napr. textový editor, internetový prehliadač atď.) je všetko tzv. Event Driven. Ak kliknete na tlačidlo, zavolá sa príslušná metóda, prevedie sa príslušná akcia. Ak v textovom editore stlačíte klávesu, príslušná metóda stlačenú klávesu zobrazí na obrazovke. V klasických, pre nás zaujímavých hrách, je však tento postup nemožný. Predstavme si klasickú závodnú hru. Je tu nutné neustále zisťovať stavy (poloha, rýchlosť...), v ktorých sa rôzne objekty (napr. auto, tachometer...) nachádzajú, detekovať ich vzájomnú interakciu (zrážka, vlhká trať a pod.) a vypočítať nový stav, ktorý je následne zobrazený na monitore. Tento dej sa opakuje niekoľko krát za sekundu. Môžeme si ho priblížiť dobre známym pojmom FPS (Frames Per Second, snímkov za sekundu). Iste poznáte situácie, keď sú požadované výpočty pre váš počítač príliš náročné, v dôsledku čoho máte možnosť pozorovať známe „sekanie“ hry, pretože počet vykreslení za sekundu (FPS) sa zníži na hranicu, keď ľudský mozog prestane vnímať za sebou zobrazované obrázky ako video (pre klasické video sa používa štandard 24 FPS, prípadne viac). V hrách teda musíme vytvoriť akúsi „slučku“ (opakovaný dej). Takouto „slučkou“ je pre nás metóda Update(), ktorá opakuje príkazy, ktoré obsahuje, stále dokola (alebo môžme povedať, že je zavolaná hneď po jej skončení). Metóda Update() obsahuje kód pre možnosť ukončenia hry ako pre PC Windows, tak i pre Xbox 360 a aktualizáciu času, ktorý uplynul od posledného zavolania metódy. Do vnútra metódy Update() pridávame volania metód (alebo iné príkazy), ktoré chceme volať opakovane, paralelne s metódou update. Napr. môžeme vytvoriť metódu SkontrolujKlavesy(), ktorá skontroluje, či práve nie je stlačená nejaká klávesa. Vytvoríme metódu PosunLopticku(), ktorá posunie loptičku v určitom smere, ak metóda SkontrolujKlavesy() zistila, že v predchádzajúcom cykle bola stlačená klávesa, predstavujúca určitý smer pohybu. Volania oboch metód umiestnime do vnútra metódy Update(). Metódy LoadGraphicsContent() a UnloadGraphicsContent() slúžia pre automatické načítanie obsahu (napr. modelov, textúr, zvukových súborov, XML dokumentov a pod.) a jeho uvoľnenie z pamäte. Ďalšou dôležitou metódou je Draw(). Ako nám už napovedá samotný názov metódy, táto metóda sa používa na vykreslenie (rendering) obrazu. Jednou z kľúčových vlastností XNA GSE je, že je nám skrytý prakticky všetok pre nás nepotrebný kód. Dostávame možnosť vidieť a editovať len to, čo má pre nás význam, čím nám XNA GSE poskytuje dokonalé prostredie pre sústredenie sa na vývoj hier.

Softvérové požiadavky: XNA GSE vyžaduje súčasne nainštalované Microsoft Visual C# 2005 Express Edition. Podporovaný je zatiaľ iba operačný systém Microsoft Windows XP so Service Pack 2 vo všetkých jazykových mutáciách (pozor na umiestnenie projektu, XNA GSE nepodporuje cestu k projektu obsahujúcu niektoré znaky unicode). Finálna verzia bude podporovať aj nový Windows Vista.

Hardvérové požiadavky: Požadovaná je grafická karta, podporujúca minimálne Shader Model 1.1 (2.0 pre niektoré Starter Kity) a DirectX 9.0c. Ostatné hardvérové nároky sú identické s nárokmi pre Microsoft Visual Studio.

Odkazy na webové stránky

msdn.microsoft.com/directx/XNA/
Oficiálny web technológie XNA

msdn.microsoft.com/directx/xna/gse/
XNA GSE Beta 2 Download

msdn.microsoft.com/vstudio/express/visualcsharp/download/
Visual C# 2005 Express Download

blogs.msdn.com/xna/
XNA Team Blog

xnadevelopment.com/
Tutoriály a odkazy na mnoho stránok so zameraním na XNA

letskilldave.com/
Blog Davida Wellera (Microsoft Game Developer Community Manager)

xbox360homebrew.com/
Rozsiahly zdroj informácií o vývoji hier pre XBox 360 s XNA

Verdikt

Hoci som voči Microsoftu a jeho produktom poväčšine skeptický, tentokrát to tak nie je. Aj keď bude moja nasledujúca veta znieť iste ako z reklamy na prací prášok, rozhodne však nebudem zveličovať. "XNA som si skutočne zamiloval." Iste je čo dolaďovať, nesmieme však zabudnúť, že ide len o druhú beta verziu, teda sa ešte odstráni mnoho bugov a doladí veľa vecí.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v C#, XNA a zajímá se o grafiku.

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý