Ich weiß, dass dies ein möglicher Schwachsinn dieser Frage ist , aber die letzte Antwort war vor 18 Monaten und seitdem ist viel passiert.
Es scheint eine gewisse Unsicherheit in Bezug auf XNA in Windows 8 zu geben. Insbesondere verwendet Windows 8 standardmäßig die Metro-Oberfläche, die von XNA nicht unterstützt wird. Außerdem werden im Windows 8-Store keine Nicht-Metro-Apps angeboten, sodass keine XNA-Apps angeboten werden.
Sollten wir uns an XNA halten oder möchte Microsoft, dass wir zu einem anderen Framework für die Entwicklung verwalteter Spiele in Windows 8 wechseln?
Bearbeiten: Wie in einem der Kommentare erwähnt, kann Windows 8 XNA-Spiele in einem Abwärtskompatibilitätsmodus ausführen. Aber das riecht nach Ablehnung.
Antworten:
EDIT: Es ist offiziell, Microsoft hat XNA getötet . Ich bin traurig darüber, aber es war nicht unerwartet, es ist das, was ich vorhergesagt hatte, aber ich hoffe, ich habe mich geirrt. Alles unter diesem Punkt ist mein ursprünglicher Beitrag von Anfang 2012.
Eine weitere Überlegung ist, dass Microsoft voraussichtlich Mitte bis Ende 2013 eine neue Konsole herausbringen wird. Werden sie weiterhin versuchen, so etwas wie XNA auf ihrer Konsole zu haben? Wenn sie möchten, dass Einzelpersonen Spiele auf der neuen Xbox erstellen, benötigen sie etwas, und es wäre verschwenderisch, XNA zu verschrotten und mit etwas anderem neu zu beginnen. Darüber hinaus wird Windows 8 auf Tablets mit ARM-Prozessoren ausgeführt, und wir alle wissen, wie groß der Markt für Apps für Telefone und Tablets ist. Dies ist für Microsoft eine große Chance, eine API zum Erstellen von Apps auf diesen Geräten bereitzustellen, aber das wird XNA sein oder nur .NET?
Ich sehe ein paar mögliche Wege:
XNA war mit der aktuellen Xbox nicht besonders erfolgreich, was hauptsächlich daran liegt, wie wenige XNA-Spiele angezeigt werden und wie schlecht der Store für XNA-Spiele auf Xbox Live eingerichtet ist. Microsoft könnte sich also dazu entschließen, den Stecker ganz herauszuziehen, sodass wir XNA 4.0 haben, das mit DX10 kompatibel ist, und eine anständige Plattform für Leute sein werden, mit der sie in den nächsten Jahren einfache PC-Spiele machen können, bevor es verschwindet.
Microsoft sieht möglicherweise die enormen Möglichkeiten mit hausgemachten Apps, Dinge wie Apples App Store sind riesige Geldverdiener, und wenn Microsoft es einfacher machen kann, Spiele zu erstellen und sie auf Xbox Live- und Windows 8-Tablets zu bringen, haben sie die Chance, es groß zu machen im Konsolen-Apps-Markt. Wenn Microsoft diesen Weg beschreitet, wird der neue XNA DX11.1 mit seiner nächsten Version unterstützen und die Unterstützung für XNA für mindestens 5 weitere Jahre fortsetzen.
Einige Dinge zu beachten:
Derzeit müssen Sie bei XNA 100 US-Dollar zahlen, wenn Sie Ihr Spiel für die Xbox 360 entwickeln möchten. Das sind 100 US-Dollar, um es auszuprobieren und zu sehen, ob Sie Geld verdienen können, und selbst dann bekommt MS einen Teil der Gewinne aus Ihrem Spiel. Wenn Microsoft die Gebühr in Höhe von 100 US-Dollar abzieht und nur einen Teil der Gewinne einbringt, sieht das Unternehmen möglicherweise wesentlich mehr Spiele und verdient mehr Geld mit dem Geschäft.
Bei XNA-Spielen treten auf der Xbox 360 Leistungsprobleme auf. Microsoft wollte nicht, dass XNA-Spiele ein Sicherheitsrisiko darstellen, wenn sie auf Xboxen anderer Benutzer ausgeführt werden. Daher werden XNA-Spiele in einer Sandbox mit eingeschränktem Zugriff auf CPU, GPU und Speicher ausgeführt. Zusätzlich zum eingeschränkten Zugriff sind Spiele, die auf dem vollständigen Xbox SDK programmiert sind, nicht in C # geschrieben und benötigen keine Garbage Collection. XNA wird jedoch auf Microsofts eigenem C # ausgeführt, sodass Microsoft einen Wrapper schreiben musste, damit XNA auf dem SDK ausgeführt werden kann Xbox, und dieser Wrapper verlangsamt die Dinge ziemlich. Dinge wie Gleitkomma-Performance können bis zu 10x langsamer sein als Xbox-Spiele, die über das vollständige SDK geschrieben wurden. Aufgrund dieser Leistungsprobleme können Xbox-Spiele, die über XNA entwickelt wurden, nicht das volle Potenzial der Xbox nutzen. Das schadet nur der Qualität der Spiele, die Microsoft von der Community erhalten kann. Microsoft sollte dies in Betracht ziehen, wenn Sie mit XNA fortfahren, damit XNA-Entwickler das System auf ihrer nächsten Konsole optimal nutzen können.
Soweit ich weiß, wird XNA den Metro-Stil von Windows 8 nicht unterstützen, sodass Entwickler keine Spiele schreiben können, um die Vorteile daraus zu ziehen. XNA kann auch nicht auf ARM-Prozessoren ausgeführt werden, sodass Sie XNA nicht zum Schreiben von Apps für Windows 8-Tablets verwenden können, die in Kürze erhältlich sein werden. Ist dies ein Zeichen dafür, dass XNA in Zukunft möglicherweise nicht mehr unterstützt wird?
Microsoft verwendet derzeit XNA für Spiele, aber mit ein wenig Arbeit könnten auch einige interessante Anwendungen erstellt werden. Wenn Microsoft XNA an andere Communities als Spieleentwickler weitergegeben hat, wird es möglicherweise häufiger verwendet und hat für Microsoft mehr Gründe, es weiterhin zu unterstützen.
Die XNA-Foren sind etwas ausgetrocknet, es dauert länger, bis die Leute Antworten erhalten, und ich sehe kaum noch ein Mitglied des XNA-Teams in den Foren, außer Shawn Hargreaves. Daher sind sie zu diesem Zeitpunkt möglicherweise nur in einer Support-Rolle.
Ich habe eine Open-Source-Spiele-Engine für XNA entwickelt und unterstütze sie. In den letzten zwei Jahren sind die Downloads der Engine auf die Hälfte des ursprünglichen Werts gesunken, obwohl die Engine viel besser ist als früher. Dies signalisiert mir, dass viel weniger Menschen XNA verwenden als früher. Hier ist eine Grafik der Anzahl der Zugriffe, die ich auf meiner Website habe. Sie können sehen, dass das Interesse an XNA zwischen Ende 2007 und Mitte 2008 einen Höhepunkt erreicht hat.
Hier ist eine lange Diskussion, an der einige Mitglieder des XNA-Teams teilnehmen. Natürlich sind sie nicht bereit, viel zu kommentieren, da Microsoft nicht viel über Dinge spricht, bevor sie angekündigt werden:
http://xboxforums.create.msdn.com/forums/t/91616.aspx
Auch solche Zitate sind interessant:
http://download.microsoft.com/download/1/E/4/1E455D53-C382-4A39-BA73-55413F183333/Windows_Developer_Preview-Windows8_guide.pdf
Ich unterstütze derzeit eine Open-Source-Spiele-Engine für XNA, daher würde ich es vorziehen, wenn sie in Zukunft unterstützt wird. Auch wenn XNA 4.0 die letzte XNA ist, ist sie immer noch eine anständige Plattform, um schnell und einfach Windows-Spiele zu erstellen Eine großartige API für alle, die lernen möchten, wie Videospiele hergestellt werden.
Meine ehrliche Meinung ist, dass XNA 4.0 die letzte sein wird, aber ich hoffe wirklich, dass ich mich darin irre.
quelle
MonoGame (eine OpenSource, OpenGL-Implementierung von XNA) v2.5 wurde heute mit Unterstützung für benutzerdefinierte Shader für iOS, Android, MacOS und Linux veröffentlicht. Unser Team hat begonnen, PlayStation Suite SDK-Unterstützung und Window8 Metro (basierend auf SharpDX, glaube ich) hinzuzufügen.
Wir haben bereits einen 3D-Zweig mit dem phantasievollen Namen "develop3d", auf den sich alle unsere Bemühungen in den kommenden Monaten konzentrieren werden, sobald Version 2.5 verfügbar ist. Schauen Sie in unserem YouTube-Kanal nach, wo wir gerade mit 3D sind - http://www.youtube.com/user/MonoGameTeam?feature=watch .
Wir haben Entwickler von ein paar Spielestudios, die mithelfen. Wir sind daher der Meinung, dass der Develop3d-Zweig optimierter sein sollte als unser derzeitiger v2.5-Zweig und fast komplett neu geschrieben werden muss. Die Reach-Demo brauchte 15 Minuten, um von Windows auf MacOS X zu portieren, als ich am letzten Wochenende von vorne anfing. Der Develop3d-Zweig ist noch nicht perfekt und MonoGame auch nicht in seiner Gesamtheit, aber wir glauben, dass wir auf dem Weg sind, die Probleme, die wir haben, auszubügeln und wenn mehr Leute helfen, noch besser.
Es gibt bereits 28 iOS-Spiele (27 2D- und 1 3D-Spiele) im Apple App Store, 5 auf dem Android Market Place und 1 in MacOS- und Linux-Stores. Wenn hier jemand Bastion in seinem Google Chrome-Browser gespielt hat, der eine modifizierte Version von MonoGame verwendet, und wir hoffen, NaCL-Spiele in Zukunft zu unterstützen, dank SuperGiant, das uns Informationen darüber sendet, wie MonoGame mit NaCL zusammenarbeitet.
Wir haben ungefähr 4-5 aktive Entwickler, die an MonoGame arbeiten. Wenn Sie mit uns chatten möchten, besuchen Sie bitte monogame.codeplex.com oder irc.gnome.org im # MonoGame-Kanal. Besorgen Sie sich den neuesten Code von Github
Ich gehe also davon aus, dass Sie MonoGame in Betracht ziehen, wenn Sie plattformübergreifende Spiele mit XNA schreiben möchten.
Dominique.
quelle
Nach meinem Verständnis der Situation kann es zwei Möglichkeiten geben. Die API wird entweder nicht mehr unterstützt oder sie werden hochgefahren, um eine auf DirectX 11 basierende XNA-Version zu erstellen.
Hier ist ein Artikel über jede Perspektive:
quelle
XNA wird nur auf dem Win8-Desktop ausgeführt, und es besteht kaum eine Chance, dass Microsoft an einer XNA-kompatiblen API arbeitet, die unter Win8 Metro UI / DirectX11.1 ausgeführt wird.
Wenn Sie wirklich auf einer XNA-ähnlichen API unter Windows 8 Metro weiterentwickeln möchten, während Sie die Inhaltspipeline weiterhin verwenden können (einer der Gründe, warum XNA für Spieleentwickler mit niedrigem Budget geeignet ist), sollten Sie das ANX Framework-Projekt befolgen . Dieses Projekt hat gute Chancen, vor Windows 8 RTM fertig zu werden (zumindest mit SpriteBatch-Unterstützung). Obwohl es wahrscheinlich erforderlich sein wird, die Shader geringfügig zu ändern (zum Beispiel die Semantik), bietet ANX eine Möglichkeit, ein vorhandenes XNA-Projekt zu importieren, was sehr hilfreich sein könnte. Sie arbeiten auch an anderen Backends (wie OpenGL für Grafiken), sodass sie auch andere .NET-Plattformen (wie Mono auf Android / iPhone) ansprechen können.
MonoGame könnte eine weitere Option sein, ist jedoch derzeit nur für 2D mit einem einzigen OpenGL / ES-Backend verfügbar. Daher kann es nicht unter Windows 8 Metro ausgeführt werden (OpenGL ist keine "zertifizierte" API unter Win8 Metro und höchstwahrscheinlich nicht Teil von Microsoft-Plänen).
Es gibt verschiedene Möglichkeiten:
Sie können direkt SharpDX verwenden , eine DirectX-API auf niedriger Ebene (ANX verwendet sie). Beispielsweise ist ein minimaler Rahmen für ein 2D-Spiel in der Regel mit einer API auf niedriger Ebene wie dieser realisierbar (und dies könnte mit Direct2D erfolgen). Ich kenne mindestens zwei kleine Unternehmen, die damit Win8 Metro-Spiele entwickeln.
Sie könnten DeltaEngine verwenden , das hoffentlich in den kommenden Monaten mit Win8 Metro kompatibel sein wird (erfordert wahrscheinlich eine Lizenz).
Sie könnten versuchen, mit Unity3D zu entwickeln , obwohl noch keine Unterstützung für Windows 8 Metro angekündigt wurde (erfordert eine Lizenz). Sie haben kürzlich an einem Direct3D11-Renderer gearbeitet, sodass es für sie nicht so schwierig sein sollte, Win8-Unterstützung bereitzustellen (da jedoch viele Win32-APIs nicht von Win8 Metro autorisiert sind, ist dies wahrscheinlich nicht das einzige, was sie portieren müssen).
quelle
Mit der Veröffentlichung von WinRT wird immer offensichtlicher, dass Microsoft eine große Wendung genommen hat. Der gemanagte Hype nimmt ab, der native Hype ist stärker als je zuvor. Anscheinend ist jemand, der Einfluss auf das Unternehmen hat (einige behaupten, es sei das Windows-Kernteam), überhaupt nicht zufrieden mit der .NET-Leistung. Der Haupttrend, den ich in den neuesten Artikeln sehe, ist so etwas wie
Sie sagen:
Das ist das Gefühl, das ich beim letzten Mal habe. Angesichts der Tatsache, dass Sie mit einer Verlangsamung aller verwalteten Projekte rechnen können, besteht der einzige Unterschied in der Höhe der Verlangsamung.
Die Microsoft haben meinen Respekt davor, den Support für Produkte fast nie einzustellen, sie sind einfach nicht mehr weiterentwickelt. Zumindest können wir XNA 4.0 für einige Zeit verwenden, auch wenn es die letzte unterstützte Version ist.
quelle
Es sieht nicht gut für uns Indie-XNA-Entwickler aus, die unsere XNA-Spiele in Metro portieren wollen. Microsoft hat kein Interesse gezeigt und erwartet, dass wir zur C ++ / DirectX-Programmierung zurückkehren oder C # -Frameworks von Drittanbietern übernehmen, von denen die meisten keine XNA-Inhaltspipeline unterstützen.
Alles ziemlich traurig, ich kann MS manchmal wirklich nicht verstehen.
quelle