From Wikipedia, the free encyclopedia
Microsoft XNA je vývojářská platforma společnosti Microsoft umožňující snadný vývoj her v jazyce C# a Visual Basic pro herní platformy:[1]
Samotný název XNA není zkratkou s konkrétním významem, někdy je však uváděn význam XNA’s Not an Acronym.[2] Logo XNA obsahuje jako část písmena X grafické znázornění kódu Morseovy abecedy – ⋅ ⋅ –, který odpovídá písmenu X, po rozdělení – ⋅ odpovídá písmenu N a ⋅ – písmenu A.[1]
Součástmi XNA jsou XNA Game Studio a XNA Framework.[3]
XNA Framework je soubor DLL, které obsahují knihovny tříd, určené pro vytváření her. Hlavní tři DLL a příslušné prostory jmen jsou následující:[3]
Microsoft.Xna.Game zahrnuje třídy a rozhraní pro řízení a manipulaci samotné hry.[3]
Microsoft.Xna.Pipeline poskytuje prostředky pro vytváření a používání vlastních Content Pipeline.[3]
Prostor jmen Microsoft.Xna.Framework poskytuje funkcionalitu zejména v matematické a geometrické oblasti. Poskytuje například třídy pro vektory, obdélníky, body v 2D prostoru a matice ve 3D prostoru. Třída MathHelper poskytuje užitečné funkce pro matematické výpočty. Microsoft.Xna.Framework dále zahrnuje třídy pro přidávání a manipulaci se zvukem a hudbou, správu herního obsahu, typovou konverzi objektů a dat, práci s 2D nebo 3D grafikou, vstupy, datovými úložišti, pro vytváření multiplayer her.[3]
XNA Game Studio je vývojové prostředí určené pro vývoj 2D a 3D her. XNA Game Studio je rozšířením vývojového prostředí Microsoft Visual Studio s podporou XNA Game Studio Framework a příslušných nástrojů. V rámci XNA Game Studio Framework jsou dodrženy návrhové vzory .NET Framework. Vývojové prostředí Microsoft XNA Game Studio poskytuje společnost Microsoft zdarma na svých stránkách.[1]
Již od počátku je XNA Game Studio postaveno na DirectX 9. Původní podporované platformy jsou pouze Microsoft Windows a Xbox 360, oficiálně podporovaný jazyk C#.[1]
Verze 2.0 přináší možnost konverze hry mezi formáty pro Windows a Xbox 360, možnost použití parametrů Content Pipeline procesorů. Síťová podpora pro Windows a Xbox 360 platformy, multiplayer her.[1]
Verze 3.0 umožňuje využívat Xbox LIVE Community Games pro distribuci her pro Xbox 360 na Xbox LIVE Marketplace. Objevuje se zde podpora vývoje her pro Microsoft Zune, transparentní komprese a dekomprese obsahu (textury, shadery, modely). V XNA Framework API jsou to mimo jiné nástroje pro simulaci trial módu, správu informací o hráči zobrazovaných při hraní Xbox LIVE Community Games, herní pozvánky u her pro více hráčů.[1]
Ve verzi 3.1 se objevuje podpora Avatarů – 3D animovaných charakterů pro reprezentaci hráčů na Xbox Dashboard; dále Xbox LIVE Party pro komunikaci hráčů bez ohledu na aktuální činnost, vložení a přehrávání videa nebo audia.[1]
Verze 4.0 umožňuje navíc vývoj her pro Windows Phone. Od verze XNA Game Studio 4.0 je ve vývojovém prostředí k dispozici Windows Phone Emulator, který je softwarovou verzí prostředí Windows Phone. Windows Phone Emulator je platforma určená pro vývoj a debugging Windows Phone aplikací a umožňuje vývoj her i v případě, že vývojář nemá přístup k fyzickému zařízení Windows Phone.[1]
Tato verze také podporuje práci s XML soubory jako úložištěm herních dat, konfigurovatelné efekty pro všechny profily i platformy, zabudované stavové objekty, jednotné API pro vstupy pro všechny platformy, zachytávání audia a jeho přehrávání.[1]
Mezi nové funkce XNA Game Studio 4.0 Refresh patří podpora jazyka Visual Basic, podpora interoperability XNA a Silverlight, podpora síťové komunikace přes TCP/UDP sockety, podpora akcelerometrů a GPS simulace pro Windows Phone Emulator.[1]
Content Pipeline je jednou z nejzajímavějších vlastností XNA. Zjednodušuje a optimalizuje manipulaci s obsahem. Při vkládání do programu je pouze nutné použití vhodného content importeru pro daný typ obsahu. Content pipeline během kompilace zkonvertuje formáty importovaných souborů do interního formátu XNA.[1]
Importery podporují následující formáty souborů:[2]
S XNA 4.0 je zaveden koncept profilů za účelem odstranění platformní závislosti kódu způsobené rozdílnými nároky na hardware jednotlivých typů zařízení. Profily umožňují cílit herní kód na určitý typ zařízení využitím podporovaných možností pouze pro vybraný profil. Profily Reach a HiDef se vzájemně liší zejména podporovanou verzí Shader Modelu, omezeními pro velikosti textur, Cubemap, počet vykreslovaných primitiv, podporovanými formáty textur, možností využití MRT (Multiple render targets).[3]
Profil pro podporu širšího spektra hardwarových zařízení. Podporuje zařízení Windows Phone 7, Xbox 360 a počítače s operačním systémem Microsoft Windows s GPU podporující DirectX 9.[3]
Profil podporující výkonnější grafická zařízení. Mezi výkonnější zařízení patří zařízení Xbox 360 a počítače s operačním systémem Microsoft Windows a s GPU podporující DirectX 10 a vyšší.[3]
Centrální logika pro každou hru tvoří prostředí, kde se hra spustí a dále běží ve smyčce, dokud nejsou splněna ukončující kritéria. Hra obsahuje následující základní metody:[2]
Obvykle 2D hra sestává z grafického pozadí a prvků zvaných Sprites. Sprites jsou 2D grafické objekty manipulované nezávisle na zbytku scény. Rovněž lze využít i animované Sprites, kde se jednotlivé obrázky mění v závislosti na předdefinovaném časovém intervalu a tímto se vytváří iluze pohybu. Souřadný systém při vytváření 2D scény má počátek (0,0) v levém horním rohu obrazovky.[2] Pro vykreslování textu, tedy vytvoření 2D obrázku na základě požadovaného textu, slouží objekt SpriteFont, reprezentující font definovaný prostřednictvím XML souboru .spritefont.[3]
Je možné vykreslovat nejen 3D grafická primitiva, ale také 3D modely, nahrané z příslušných souborů. Při vykreslování 3D grafiky se uplatňuje 3D Graphics Pipeline. Umožňuje nahrání zdrojů a renderování 3D scény s využitím efektů. Sestává z následujících součástí:[1]
Matice World, View a Projection pro transformování 3D vrcholů do 2D prostoru.[1]
obsahující geometrická data pro renderování, konkrétně jejich souřadnice ve 3D prostoru, ale také další popisné informace jako normála vrcholu, barva, texturovací souřadnice. Vertex buffery obsahuje indexovaná nebo neindexovaná data vrcholů. Neindexovaná data představují vrcholy v bufferu umístěné právě v pořadí, v jakém budou vykreslovány. Indexované buffery obsahují seznam ukazatelů do vertex bufferu a udávají tak pořadí, v jakém mají být vrcholy vykresleny.[1]
XNA Game Studio rozšiřuje možnosti renderování scény o tzv. efekty. Efekty jsou k dispozici pro všechny podporované platformy. Pro Windows Phone je však možné využívat pouze konfigurovatelné efekty.[1]
Konfigurovatelné efekty jsou zabudované a optimalizované efekty pro všechny platformy, včetně Windows Phone, kde je efektivita běhu na GPU klíčová. Tyto efekty nevyžadují znalost jazyka shaderů HLSL, lze je konfigurovat nastavováním hodnot parametrů v rámci kódu hry. V XNA Game Studio 4.0 lze využívat pět zabudovaných konfigurovatelných efektů:[1]
Pokročilou možností ovlivnění renderování scény je využití vlastních efektů. Vlastní efekty jsou připojeny k hernímu obsahu v podobě souboru efektu s příponou .fx a obsahují kód shaderů v jazyce HLSL. Programovatelný efekt sestává z vertex shaderu a pixel shaderu a techniky, která tyto shadery volá. Vertex shader inicializuje zpracovávání jednotlivých vrcholů a pixel shader zpracování jednotlivých pixelů.[1]
V herním kódu je nutné před použitím pro vykreslování nahrát efekt do programu prostřednictvím metody ContentManager.Load pro vytvoření objektu efektu a předat potřebné parametry (povinně WorldViewProj který obsahuje transformační matici pro manipulaci vrcholů ve scéně) a nastavit techniku, která se má použít, obsahuje-li shader více technik pro vykreslování scény.[1]
V XNA Game Studio je nedílnou součástí vývoje her zpracovávání uživatelských vstupů prostřednictvím vstupních zařízení dostupných na dané platformě:[1]
Klávesnice nemusí být fyzicky přítomna na daném zařízení (Windows Phone, Xbox 360), a proto by se při vývoji her pro tato zařízení měl uvažovat vstup ze softwarové klávesnice SIP (software input panel), kterou je možné vyvolat v herním kódu.[1]
Na platformě Windows je možné získat údaje o pozici kurzoru myši v herním okně a stavu tlačítek myši. Pro Windows Phone je jako myš uvažován jediný, první bod dotyku.[1]
Multitouch vstupy jsou zpracovávány jako raw data poskytovaná třídou TouchPanel. Lze využít podporu pro detekci typu dotykového gesta v rámci předdefinovaných gest.[1]
Vstup z akcelerometru není v rámci XNA Game Studio 4.0 podporován a je nutné jej zpracovávat jako senzorický vstup prostřednictvím Microsoft.Devices.Sensors.[1]
GamePad se využívá pro práci se vstupy z Xbox 360 ovladače. Lze však uvažovat další, alternativní vstupy. Tyto jsou z hlediska herního kódu mapované na standardní Xbox 360 GamePad. Mezi tato vstupní zařízení patří například Alternate Guitar, Arcade Stick, Big Button Pad, Dance Pad, Drum Kit, Flight Stick, Gamepad Guitar, Wheel.[1] Na Zune je obdobně mapováno vstupní zařízení Zune pad na standardní GamePad.[4]
Na webových stránkách App Hub vývojářské komunity jsou k dispozici materiály pro výukové účely – dokumentace a vzorové příklady. Po registraci je možné své vlastní hry prodávat či poskytovat zdarma na Windows Phone Marketplace nebo Xbox LIVE Marketplace.[1]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.