Co to jest Microsoft XNA?  Udostępnij na: Facebook

Autor: Dawid Pośliński

Opublikowano: 2011-01-17

Microsoft XNA to, udostępniany przez firmę Microsoft z Redmond, zbiór narzędzi umożliwiających tworzenie aplikacji multimedialnych, który ma na celu uproszczenie korzystania ze środowiska zarządzanego DirectX (Management DirectX).

Pierwszą wersję XNA zaprezentowano 24 marca 2004 roku. Zaprojektowano ją do tworzenia tzw. casualgames, czyli małych gier, które można włączyć od czasu do czasu dla szybkiej, niewyczerpującej rozrywki.

Microsoft promuje XNA jako narzędzie pozwalające tworzyć gry bez posiadania całego zaplecza obsługi programistów, grafików i In., jak ma to miejsce w przypadku profesjonalnych firm tworzących gry. Prostota ma pozwolić nawet jednej osobie na stworzenie kompletnej gry. Idea ta została nazwana socialgames, czyli tworzenie gier przez zwykłych użytkowników, tzn. społeczeństwo.

XNA pozwala na równoczesne tworzenie aplikacji na platformę Windows, XBOX 360 i Zune. Ogranicza to koszty tworzenia aplikacji, programista bowiem nie musi tworzyć osobnych wersji aplikacji dla różnych platform, a tylko dodać kilka linii kodu niezbędnych do obsługi różnic między platformami (głównie w różnych sposobach sterowania).

W skład XNA wchodzi:

  • XNA Game Studio,
  • XNA Framework,
  • XNA Framework  Content Pipeline.

XNA Game Studio

XNA build został zaprezentowany dwa lata po premierze pierwszej wersji XNA, tzn. 14 marca 2006 r., a XNA Game Studio 2.0 – 13 grudnia 2007 roku. XNA Game Studio w wersji 3.0 zaprezentowano 30 października 2008 r. – pozwala ona wykorzystać w pełni możliwości C#. 11 czerwca 2009 r. pojawia się wersja 3.1, wprowadzająca usprawnienia w bibliotekach związanych z dźwiękiem, a także umożliwiająca import filmów do XNA i wykorzystywanie ich np. jako tekstur. 16 września 2010 r. pojawia się wersja 4.0, w której gruntownie przebudowano api, wprowadzono obsługę Multi-touch, integrację z Visual Studio 2010, ale przede wszystkim wprowadzono obsługę platformy Windows Phone 7.

Pierwotnie planowano stworzenie oddzielnego środowiska programistycznego, które miało nosić nazwę XNA Game Studio Professional i bazować na Visual Studio 2005. Jednak rozwój tej technologii ograniczył się do stworzenia narzędzia, które tak naprawdę rozszerzało możliwości już istniejącego środowiska Visual Studio. Ponieważ popularność darmowej wersji Visual Studio w wersji Express była bardzo duża, Microsoft zdecydował się także opublikować XNA Game Studio Express, przeznaczone dla tej wersji środowiska IDE.

XNA Framework

To główny element platformy XNA, w którego skład wchodzą niezbędne biblioteki. Obecnie użytkownik ma dostęp do następujących bibliotek:  

  • Microsoft.Xna.Framework – podstawowa biblioteka Frameworka pozwalająca np. na operacje na macierzach i wielu innych niezbędnych rzeczach w grach.
  • Microsoft.Xna.Framework.Audio – biblioteka związana z dźwiękiem. Między innymi pozwala na obsługę Direct3D Audio i umożliwia przestrzenne odtwarzanie dźwięku, np. w zależności od perspektywy, w której znajduje się użytkownik.
  • Microsoft.Xna.Framework.Content – odpowiada za ładowanie do projektu takich elementów, jak: tekstury, dźwięki, modele czy filmy, oraz zarządza nimi.
  • Microsoft.Xna.Framework.GamerServices – ta biblioteka pozwala integrować aplikację z usługami społecznościowymi platformy LIVE. Umożliwia np. ładowanie avatarów użytkownika, czyli postaci stworzonych przez samych użytkowników w platformie LIVE. Każdy gracz może poruszać się w grze (jeżeli sama gra na to pozwala) swoim własnym avatarem, który jest jego graficzną reprezentacją w społeczności LIVE.
  • Microsoft.Xna.Framework.Graphics – biblioteka związana ze wszystkim, co pojawia się na ekranie.
  • Microsoft.Xna.Framework.Input – w tej bibliotece znajdują się wszystkie polecenia związane z obsługą wejścia aplikacji.
  • Microsoft.Xna.Framework.Media – biblioteka odpowiedzialna np. za uruchamianie filmów i dźwięków w aplikacji.
  • Microsoft.Xna.Framework.Net – biblioteka związana z częścią sieciową aplikacji. Pozwala na tworzenie, dołączanie, szukanie gier oraz zarządzanie ruchem sieciowym aplikacji.
  • Microsoft.Xna.Framework.Storage – biblioteka związana z przestrzenią udostępnianą dla aplikacji w celu zapisywania jakiś informacji (np. ustawienia, zapis stanu gry itp.).

XNA Framework Content Pipeline

Ta część Frameworka jest bezpośrednio związana z wcześniej wspomnianą biblioteką Content, która kompiluje assety (modele, dźwięki itp.) na potrzeby aplikacji,  dodatkowo serializując je, dzięki czemu mogą być ładowane szybciej, oraz utrudniając osobom postronnym wyciągnięcie samych assetów.

Podsumowanie

Należy pamiętać, że Microsoft XNA ma jedynie ułatwić tworzenie aplikacji multimedialnych, a nie wykonywać je za programistę. Dlatego posiada wbudowane najczęściej wykorzystywane w większości aplikacji wzorce programistyczne oraz klasy, które mają pomóc zaoszczędzić nieco czasu, ale cała logika gry zależy od jej twórcy.