Ich habs versprochen... Seit heute bin ich von der Games Convention Developers Conference in Leipzig zurück und da wird es Zeit, mein Versprechen, mehr über XNA zu schreiben wahr zu machen.

Am Montag hatte ich zusammen mit Christina Storm, ihres Zeichens die Group Product Managerin der XNA Truppe einen sehr gut besuchten Talk und die restlichen Tage viele interessante Gespräche. Eine der Fragen, die da immer wieder mal gestellt wurde, will ich jetzt einfach mal aufgreifen und damit gewissermaßen von vorne beginnen: "Was ist eigentlich XNA und was ist so besonders daran?"

Ok ok, das sind zwei Fragen. Fangen wir mit der technischen an:

Was ist XNA?

XNA ist technisch gesehen ein Satz Technologien zur Spiele- und Multimediaentwicklung unter Windows (XP/Vista) und Xbox 360. Im Einzelnen besteht XNA aus:

  • einem .NET Framework, daß auf der Xbox 360 lauffähig ist (auf dem PC setzen die XNA Bibliotheken auf dem herkömmlichen .NET Framework 2.0 auf)
  • Bibliotheken für alles was man als Spieleentwickler so braucht, also für Grafik, Sound, Input, Content. Diese Bibliotheken kapseln manches was bisher sehr aufwändig war sehr komfortabel weg, so daß der Codingaufwand deutlich geringer wird. Außerdem ist XNA aus grafischer Sicht am PC der Nachfolger von Managed DirectX
  • Erweiterungen für die Visual C# Express IDE. Mit den Bibliotheken kommt nämlich auch ein Komponentenmodell. Diese Komponenten können in der IDE dann Visual über einen Designer verknüpft werden. Außerdem kommen auch noch Projekttemplates mit... Diese Erweiterungen firmieren unter dem Namen XNA Game Studio Express. Das ist aber kein eigenes Produkt sondern eine Erweiterung für C# Express.
  • Die sogenannte Content Pipeline: Spiele bestehen ja nicht nur aus Code, sondern auch noch aus allerlei zusätzlichen Elementen, wie 3D Modelle, texturen, Sounds etc. Um die ins Spiel zu bekommen schreiben die meisten Spieleentwickler heutzutage allerlei Tools, die sie für Konvertierung, Normalisierung und Import/Export nutzen. Die Content Pipeline stellt hier Bibliotheken zur Verfügung, die definierte Import- und Exportpunkte liefert und eingesetzt werden kann um stark typisierte Typen aus den Assets zu erstellen. Zu Deutsch: z.B. aus einem Mesh ein typisiertes .NET Objekt generieren...
  • Damit man nicht "auf der grünen Wiese" anfängt wird außerdem an fertigen Spielen als sogenannten Starter Kits gearbeitet. Das sind Spiele in verschiedenen Genres, die wir incl. allen Quellen zur freien Verwendung und Anpassung freigeben werden. Für den Benutzer fühlt sich das sehr ähnlich an wie die bisher auch schon bekannten Starterkits unter Express...
  • Last but not least gibt es dann noch XNA Build. Das ist ein Überbleibsel aus der Zeit als XNA mal eine spezielle Abart von Visual Studio Team System werden sollte und ist im Kern eine Variante von MSBuild, angereichert um die speziellen Fähigkeiten, die ich in einem Game-Build-Prozeß brauche.

Für den PC wird es die Beta des Ganzen ab 30. August geben. Ende dieses Jahres steht dann Version 1.0 bereit. Download der Entwicklungstools (C# Express, .NET Framework SDK, ggf. DirectX SDK) ist wie gehabt kostenlos und auch die XNA Tools werden frei verfügbar sein.

Um das Framework für die Konsole zu erhalten muß man Mitglied im sogenannten "Creators Club" sein, die Mitgliedschaft darin wird voraussichtlich 99$/Jahr sein. Dieser Creators Club wird noch weit mehr bieten als den Zugriff zum Framework, etwa weitere Informationen, Codesamples, 3D & Art Assets etc...

Neben dem Pricing gibt es auch einen lizenz-Unterschied zwischen Konsole und PC: Auf dem PC darf XNA für alles genutzt werden, auf der Konsole ist es (zumindest in Version 1.0) für nicht-kommerzielle Nutzung beschränkt. Also: Hobbyisten, Forschung&Lehre, Enthusiasten...


Was ist daran jetzt so revolutionär?

Ganz einfach:  Bisher mußtest man einen DevKit von Microsoft bekommen um überhaupt für die Konsole entwickeln zu können, Spiele laufen nicht ohne Zertifikat und weltweit gibt es eine sehr überschaubare Anzahl Devkits. Jetzt bekommt man nicht nur ein Crossplattform-Framework sondern auch noch alles integriert in Visual C# Express und kostenlos, incl. Designern, Bibliotheken und Tools. Und die Spiele die man baut laufen dann auf der RETAIL Konsole (also der Verkaufsversion wie sie in den Saturns und Media Märkten dieser Welt stehen!) Also: JEDER kann jetzt Konsolenspiele schreiben!