XNA Framework Magazin 17

satz haben, lässt sich bereits nach wenigen Minuten der Code für das Spiel schreiben. Lästige, immer wiederkehrende Aufga- Revolution in der ben, wie beispielsweise die Initialisierung des Render-Device oder die Wiederher- stellung des Device beim Skalieren des Spiele-Welt Fensters, gehören der Vergangenheit an – diese Aufgaben übernimmt das XNA für die : Framework (zumal die keine typischen Fenster kennt). Eine neue Ära der Spieleentwicklung Schichten sind wieder aktuell von Jens Konerow Wo sich das XNA Framework einreiht, lässt sich am einfachsten erkennen, wenn In den letzten ein bis zwei Jahren zierte das Kürzel XNA gehäuft die Wer- das ganze System in Schichten unterteilt beblätter von Entwicklerkonferenzen, die von initiiert wurden, wird. Die folgende Auflistung schemati- oder tauchte in Logos auf, die mit der Multimediaschnittstelle DirectX in siert das gesamte Modell von der tiefsten Verbindung standen. Ende August 2006 wurde die erste Beta-Version Ebene bis zur höchsten Ebene: des Produkts XNA Game Studio Express der Öffentlichkeit zur Verfügung • Plattform: Gebildet wird die Plattform gestellt. Doch was genau ist XNA? Welche Vorzüge bietet XNA? Fragen über eine Reihe von nativen und verwal- über Fragen, die in diesem Artikel beantwortet werden sollen. teten APIs. Darunter zählt beispielswei- se zur Kommunikation mit der Grafikkarte, XACT, XInput oder XContent (die Begriffe werden später Microsoft hat es geschafft, DirectX als gleich diese vorerst nur aus Vorlagen für noch etwas genauer beschrieben). eine der wichtigsten Schnittstellen im Be- Visual C# Express besteht. Das Besondere • Core Framework: Diese Schicht des reich Multimediaprogrammierung zu an XNA ist, dass die Spiele nicht nur auf XNA Framework kann mit den Aufga- etablieren. Mittlerweile gehört DirectX einem Windows-PC, sondern auch auf der ben von Managed DirectX verglichen zum Standardrepertoire von Windows. XBox 360 laufen. werden. Innerhalb dieser Schicht sind al- Version 7.0 ebnete Visual-Basic-Program- le verwalteten Schnittstellen enthalten, mierern das Tor zu einer neuen (dreidi- XNA Framework – ein Blick die von der Anwendung in Anspruch ge- mensionalen) Welt. Dasselbe ermöglich- hinter die Kulissen nommen werden können. Zu den Auf- te Microsoft für die .NET-Anhänger in Das XNA Framework stellt eine Reihe gabenbereichen des Core Framework Version 9.0, für die eigens eine verwaltete verwalteter APIs zur Verfügung, mit gehört die Ausgabe von Grafik- und Au- Schnittstelle angeboten wurde – auch be- denen die Entwicklung von Computer- dioinformationen, die Ansprache von kannt als Managed DirectX. Nahezu jedes spielen, sowohl für den Windows-PC als aktuelle Computerspiel auf dem Markt auch für die XBox 360 vereinfacht be- DirectX 10 macht von der Multimediaschnittstelle ziehungsweise überhaupt erst möglich Gebrauch. Die nächste Ära wird mit dem wird. XNA spielt die Rolle eines Mittlers Wie Microsoft verlauten lies, wird sich Win- dows Vista als einzige Plattform mit den neuen XNA Framework und dazu pas- zwischen der Anwendung und der Hard- Funktionalitäten von DirectX 10 schmücken send dem (kostenlosen) XNA Game Stu- ware, wie es DirectX bislang getan hat. können. Derzeit liegt dem DirectX 9 SDK dio Express eingeläutet. Erstmals gibt es Zudem bietet das XNA Framework ei- (August 2006) eine native Beta-Version von von Microsoft eine eigene Entwicklungs- nen Rahmen, auf dem die Handlung eines DirectX 10 bei. Soll heißen .NET-Entwickler umgebung für Spieleentwickler, wenn- Spiels aufgesetzt wird. Das Framework können ähnlich wie mit Managed DirectX noch nicht direkt in den Genuss der neuen bildet eine weitere Abstraktionsebene, Schnittstelle kommen. Genauso wie im XNA kurz & bündig welche den Vorteil bietet, dass sich der Framework unterstützt DirectX 10 die Fixed Quellcode einer Windows- und der einer Function Pipeline nicht mehr. Alle Render- Inhalt Vorgänge werden mithilfe von Vertex und Pixel Das brandneue XNA Framework von Micro- XBox-360-Version, laut Microsoft, bis zu 95 Prozent gleicht. Lediglich einige Shadern realisiert. Zudem wird der komplette soft im Überblick Befehlssatz von DirectX 10 garantiert, wes- Zusammenfassung plattformspezifische Funktionalitäten, halb die CAPS wegfallen und die Hardware- Dank des XNA Framework wird die Entwick- welche durch das XNA Framework nicht Fähigkeiten nicht mehr abgefragt werden lung von Computerspielen für die XBox 360 verborgen werden können, verhindern müssen. Ein weiteres Manko der aktuellen und den PC in naher Zukunft viel leichter von die hundertprozentige Übereinstimmung Beta-Version ist die fehlende Unterstützung der Hand gehen. Verwaltungsaufgaben wie beider Quelltexte. eines Hardware-Device. Zurzeit werden alle die Initialisierung eines Direct3D-Device ge- Funktionalitäten emuliert, weshalb die Ge- hören der Vergangenheit an Glaubt man jenen Spieleherstellern, schwindigkeit noch etwas bescheiden ist. die das XNA Framework bereits im Ein-

dotnet-magazin.de 11.06 18 Magazin XNA Framework

Abb 1: Das XACT und XInput neue XNA Game Studio Express XACT ist ebenfalls ein Cross-Platform- entspricht einem API zur Wiedergabe von Audiodaten. Das Visual C# Ex- press Konzept dahinter ähnelt dem der Shader in Direct3D. Mittels des Tools XACT, welches Bestandteil des DirectX SDKs ist, erstellt ein Sound-Designer ein Paket, indem beispielsweise die Lautstärke und die angewendeten Effekte definiert sind. Aufgabe des Programmierers ist es, dieses Paket zu laden und mit einem Aufruf von Play() den Sound an geeigneter Stelle wie- derzugeben. XInput ist eine vergleichbare Terminologie, mit dem Unterschied, dass damit auch Eingabegeräte angesprochen werden.

Content Pipeline Eingabegeräten oder die Bereitstellung Form auch Managed DirectX anbietet, Grundlegend besteht die Content Pipe- von mathematischen Strukturen und und erleichert die Entwicklung von Com- line aus einem Importer, dem Content Methodiken zur Speicherung von Spiel- puterspielen, indem ein Anwendungs- DOM und einem Prozessor. Standard- ständen oder Highscorelisten. rahmen geschaffen wird. Zwei der wich- mäßig wird das XNA Game Studio Ex- • Extended Framework: Das erweiterte tigeren Komponenten hören auf die press die folgenden Formate unterstüt- Framework baut auf solchen Standard- Namen Application Model und Content zen: funktionalitäten auf, wie sie in ähnlicher Pipeline. Beide Komponenten schließen jene Prozesse ein, die zu jeder Entwick- • 3D-Formate (*., *.fbx) Listing 1 lung dazugehören. • 2D-Formate (*.jpg, *.bmp, *.dds, *.png, • Computerspiel: Das Produkt, beispiels- *.tga) Der durch ein neues Projekt angelegte Rahmen weise ein Computerspiel, ein Bildschirm- • Material File Formats (*.fx) partial class Game1 : Microsoft.Xna.Framework.Game schoner oder aber auch eine grafische • Audio File Formats/ XACT (*.) { Visualisierung von Geschäftsdaten baut public Game1() letztendlich auf das erweiterte Frame- Ein Importer kümmert sich darum, dass { InitializeComponent(); work auf. Von Beginn an steht die eigent- die Daten von der Festplatte gelesen wer- } liche Programmlogik im Vordergrund. den und anschließend im Content DOM Einige Verwaltungsaufgaben entfallen, vorliegen. Ähnlich wie derzeit dem Pro- protected override void Update() da sie bereits vom erweiterten Frame- jekt eine Codedatei hinzugefügt wird, { work übernommen werden. werden auch später sämtliche Ressour- float elapsed = (float)ElapsedTime.TotalSeconds; cen in einem Projekt untergebracht. Ein Unterschiede zwischen Prozessor (der von einem Entwickler na- …Wir sorgen dafür, //Update-Logik Ihres Spiels (z.B. Objekt verschieben) Direct3D und XNA türlich auch selber geschrieben werden Bisher stellte Direct3D eine so genannte kann) bezieht die Daten aus dem Content daß Ihre Anwendung rockt! DIE Embedded-Datenbank für Branchen-Applikationen im Mittelstand UpdateComponents(); Fixed Function Pipeline zur Verfügung DOM und bereitet sie entsprechend auf, } mit deren Hilfe sich Vertices transformie- um anschließend ein typisiertes Objekt Zielgruppengerechte Features:

protected override void Draw() ren und beleuchten ließen. Auch die Tex- im Content Manager zur Verfügung zu • Niedrige Total Cost of Ownership: niedrige Anschaffungskosten, { turierung von Primitiven gehörte mit zu stellen. einfachste Installation, administrationsfrei, minimaler Hardware- if (!graphics.EnsureDevice()) deren Aufgabenbereich. bedarf, keine weitere versteckte Kosten return; Im XNA Framework entfällt die Vertex und Pixel Shader • Hoch-performant Fixed Function Pipeline. Als Konsequenz • Multi-Plattform (Windows, , NetWare) Hinter einem Vertex Shader bzw. einem Pixel graphics.GraphicsDevice.Clear(Color.CornflowerBlue); müssen daher alle genannten Aufgaben Shader verbirgt sich eine kleine „Anwen- graphics.GraphicsDevice.BeginScene(); Highlights für Entwickler mithilfe von Vertex Shadern beziehungs- dung“, die von der GPU (Graphic Processing weise Pixel Shadern realisiert werden. Unit) ausgeführt wird. In den Anfangsstadien • Kostenfreie techn. Unterstützung für Partner, auch während der Implementierung DrawComponents(); Der Grund für den Wegfall ist zum einen mussten diese Shader mittels einer Assem- • Volle Skalierbarkeit (lokal, Client/Server und Internet ohne Quellcodeänderung) die fehlende Unterstützung der Fixed bler-Sprache entwickelt werden. Mittlerweile • Unterstützt mengenbasierten (SQL) und navigierenden (ISAM) Tabellenzugriff graphics.GraphicsDevice.EndScene(); Function Pipeline auf der XBox 360 und bietet Microsoft mit der HLSL (High Level • Serverbasierte Transaktionen, Ref. Integrität, Stored Procedures, Triggers etc. graphics.GraphicsDevice.Present(); Shader Language) eine an C angelehnte zum anderen aber auch die Angleichung } Hochsprache an. Der Compiler generiert aus Testen Sie jetzt, lassen Sie Ihre Daten rocken! } an DirectX 10 (näheres dazu lesen Sie im diesem Code den Assembler-Code. Kasten „DirectX 10“). www.AdvantageDatabase.de 11.06 dotnet-magazin.de Kontakt: Tel. +49(0)7032 798-200 [email protected] XNA Framework Magazin 19

Schnellstart Model definiert und stellt bereits zu Be- um die Entwicklung von Computerspie- Für eine erfolgreiche Installation der Be- ginn eines neuen Projekts eine lauffähige len zu vereinfachen. Zwar sind einige ta-Verion von XNA Game Studio Express „DirectX-Anwendung“ dar. Listing 1 de- Änderungen seitens der Grafikausgabe (msdn .microsoft.com/directx/xna/gse/) monstriert den Rahmen. vorgenommen worden, dennoch sind die gelten folgende Komponenten als Vor- Aus diesem Listing wird bereits er- Entwickler mit Kenntnissen von Mana- aussetzung: sichtlich, dass das Application Model die ged DirectX im XNA Framework gut Berechnung der vergangenen Zeit seit dem aufgehoben. Damit der Einstieg aufgrund • Visual C# 2005 Express: Mit einer letzten Render-Durchgang durchführt. der Shader-Programmierung nicht schei- gleichwertigen Visual-Studio-Version Weiterhin verfügt das Formular über ein tert, bietet die XNA-Klassenbibliothek funktioniert die Installation nicht. Sie Objekt vom Typ GraphicsComponent. genügend Hilfsklassen an. Weiterhin müssen notfalls Visual C# 2005 Express Jenes Objekt stellt den Direct3D-Device werden parallele Prozesse, wie etwa die neben dem Visual Studio installieren. zur Verfügung. Gelagert wird die Kompo- Verarbeitung von 3D-Modellen anderer • DirectX 9.0c Runtimes: XNA Game nente innerhalb einer Auflistungsklasse Tools, durch die Content Pipeline ver- Studio Express fordert die aktuellen Di- vom Typ GameComponentCollections. einfacht. Zwar umfasst die Beta-Version rectX-9-Bibliotheken. Wer XACT nut- Jener Typ dient der Aufnahme sämtlicher noch nicht alle Funktionalitäten, dennoch zen möchte, um Audio-Dateien sowohl Objekte, die von GameComponent erben. lässt sich bereits erahnen, wie spektakulär für den PC als auch für die XBox360 zu GameComponent-Objekte können aus einfach in absehbarer Zeit Spiele für den erstellen, muss das DirectX 9.0 SDK der Toolbox auf die Form gezogen werden, Computer und die XBox 360 entwickelt (August 2006) installieren. Die Lauf- ähnlich wie es bei Windows-Forms-An- werden können. zeitumgebung ist im Develop- wendungen der Fall ist. GameComponent ment Kit enthalten. als Basisklasse stellt sicher, dass Kompo- Jens Konerow studiert Informatik und ist neben- nenten anderer Projekte problemlos wie- bei als Software-Entwickler bei der Firma KEEP IT SIMPLE GmbH in Hamburg tätig. Für Fragen steht Nach dem Start von XNA Game Studio der verwendet werden können. er Ihnen gerne unter der E-Mail-Adresse Jens Express wird ein neues Projekt vom Typ [email protected] zur Verfügung. „Windows Game (XNA)“ angelegt. Die Fazit Datei Game.cs bildet den Anwendungs- Bereits die erste Beta-Version des XNA Links & Literatur rahmen. Er wird durch das Application Framework lässt nur Positives erwarten, [1] msdn.microsoft.com/directx/XNA/

Anzeige