Mit XNA hat Microsoft 2006 ein managed Game Development Kit vorgestellt, das zum Ziel hatte, mittels moderner Technologien und Programmiersprachen auch Einsteigern und Independent Developern den Zugang zur Spiele-Entwicklung vor allem auch für die damalige Next-Gen Konsole Xbox 360 zu ermöglichen. Unter der Haube werkelte das hauseigene DirectX und zu den möglichen Ziel-Plattformen zählten neben Windows und der Xbox 360 auch Windows Phone 7 und der Zune Player. Letzteres ist mittlerweile genauso eingestellt wie seit 2013 auch XNA selbst. Für Windows 8.x und die Xbox One ist damit eine Entwicklung auf Basis von XNA nicht mehr möglich.
Während sich Microsoft wieder auf die native Entwicklung konzentriert und dabei den Fokus zurück auf DirectX und C++ lenkt, hat das die Community nicht davon abgehalten, selbst Alternativen zu XNA zu entwickeln. Dazu gehört z.B. auch ANX, das mit der Abkürzung für „ANX ist not XNA“ Microsofts Humor hinsichtlich des rekursiven Akronyms XNA (XNA is not acrynomed) ebenfalls aufnimmt. Während aber auch ANX scheinbar nicht aktiv weiterentwickelt wird und mit SDKs auf Basis von OpenGL (DER Alternative zu DirectX) wie z.B. OpenTK auch Mittel aus dem anderen Lager zur Verfügung stehen, ist in der Zwischenzeit ein Projekt auf der Bildfläche erschienen, dass ambitioniert genug ist, um XNA wirklich und wahrhaftig abzulösen.
MonoGame
MonoGame hat seine Wurzeln ursprünglich in der Entwicklung von XNATouch, einem Projekt von einem ehemaligen XNA Entwickler, der versucht hat, das Framework auf Touch-Devices auszurichten. Später wurde dann die Gelegenheit ergriffen, das Projekt mit den Versuchen, eine quelloffene Version von .NET (Mono) und dessen hauseigene Entwicklungsumgebung MonoDevelop zusammenzuführen. Heraus kam MonoGame.
Wenn man ein Framework praktisch klont – und nichts anderes passiert hier – dann zunächst mit dem primären Gedanken, es den Nutzern des Originals so einfach wie möglich zu machen umzusatteln. Das passiert hier allein schon dadurch, dass MonoGame die exakt gleichen Namespaces verwendet wie XNA und auch ansonsten Interface-Identisch ist.
Das Killer Feature
Wenn man einen XNA Entwickler nach DEM Killer Feature fragt, das er besonders an XNA liebt, wird in den meisten aller Fälle vermutlich die Content Pipeline genannt. Einfach gesagt handelt es sich hierbei um einen Mechanismus, der es dem Entwickler erlaubt, sämtliche Assets (Texturen, 3D Objekte, Samples, Musik, etc.) komfortabel zu verwalten und darüber hinaus automatisch in ein plattform-optimiertes Binärformat kompilieren zu lassen. Seit Version 3.2 ist das mit MonoGame auch möglich, sogar ohne dass dazu vorher XNA installiert werden muss.
Allerdings gibt es hierbei aktuell (Stand: Januar 2015) eine Kleinigkeit zu beachten: Nämlich dass die integrierten Content Prozessoren und das Pipeline Tool derzeit noch Bestandteil des Developer Releases sind. Aber warum sollte das uns als Entwickler stören? Daher zögert nicht, einfach das entsprechende Setup von der MonoGame Website herunterzuladen und es auszuprobieren! Auf diesem Blog wird es in den kommenden Wochen und Monaten regelmäßig Beiträge geben, die mehr in dieses Thema einsteigen und dabei auch die einen oder anderen Querverweise zu coolen Inhalten, Büchern, Blogs, Youtube-Shows und dergleichen mehr enthalten.
Für den Einstieg findet ihr hier schon einmal ein kurzes Video, das euch zeigt, wo ihr MonoGame herunterladen könnt, auf was ihr dabei achten solltet und wie ihr damit loslegen könnt.
[youtube=http://www.youtube.com/watch?v=v6pCpejJLSo]