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

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       14 565×

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?

Reklama
Reklama

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 NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Reklama
Reklama
Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý