Sé que este es un posible engaño de esta pregunta , pero la última respuesta que hubo fue hace 18 meses y han pasado muchas cosas desde entonces.
Parece haber cierta incertidumbre acerca de XNA en Windows 8. Específicamente, Windows 8 usa de manera predeterminada la interfaz Metro, que no es compatible con XNA. Además, la tienda de Windows 8 no almacenará aplicaciones que no sean de metro, por lo que no almacenará aplicaciones XNA.
¿Deberíamos seguir con XNA o Microsoft quiere que pasemos a un marco diferente para el desarrollo de juegos administrados en Windows 8?
Editar: como se señaló en uno de los comentarios, Windows 8 podrá ejecutar juegos XNA en un modo de compatibilidad con versiones anteriores. Pero eso huele a deprecación.
Respuestas:
EDITAR: es oficial, Microsoft ha matado a XNA . Me entristece esto, pero no fue inesperado, es lo que estaba prediciendo que sucedería, pero con la esperanza de estar equivocado. Todo debajo de este punto es mi publicación original de principios de 2012.
Algo más a considerar es que es probable que Microsoft lance una nueva consola a mediados o finales de 2013. ¿Continuarán intentando que algo como XNA funcione en su consola? Si quieren que las personas creen juegos en la nueva Xbox, van a necesitar algo, y sería un desperdicio desechar XNA y comenzar de nuevo con otra cosa. Además, Windows 8 se ejecutará en tabletas con procesadores ARM, y todos sabemos lo grande que es el mercado de aplicaciones para teléfonos y tabletas, esa es una gran oportunidad para que Microsoft tenga una API para crear aplicaciones en esos dispositivos, pero será XNA o solo .NET?
Veo un par de caminos potenciales:
XNA no ha sido extremadamente exitoso con la Xbox actual, principalmente debido a la poca cantidad de juegos de XNA que se muestran, y cuán mal configurada está la tienda para los juegos de XNA en Xbox Live. Por lo tanto, Microsoft puede decidir desconectarse por completo, dejándonos con XNA 4.0, que es compatible con DX10, y será una plataforma decente para que las personas creen juegos de PC simples durante los próximos años antes de que desaparezca.
Microsoft puede ver las enormes posibilidades con aplicaciones caseras, cosas como la App Store de Apple son grandes fabricantes de dinero, y si Microsoft puede facilitar la creación de juegos y llevarlos a las tabletas Xbox Live y Windows 8, entonces tienen la oportunidad de hacerlo grande en el mercado de aplicaciones de consola. Si Microsoft sigue este camino, veo el nuevo XNA que admite DX11.1 con su próxima versión, y el soporte continuo para XNA durante al menos 5 años más.
Algunas cosas a considerar:
Actualmente con XNA debe pagar $ 100 si desea desarrollar su juego para Xbox 360, eso es $ 100 solo para probarlo y ver si puede ganar dinero, e incluso entonces MS obtiene una gran parte de las ganancias de su juego. Si Microsoft retira la tarifa de $ 100 y solo toma la mayor parte de las ganancias, en realidad pueden terminar viendo muchos más juegos y ganar más dinero con el acuerdo.
Los juegos XNA tienen problemas de rendimiento en la Xbox 360. Microsoft no quería que los juegos XNA representaran un riesgo de seguridad cuando se ejecutaban en las Xbox de otras personas, por lo que básicamente ejecutan juegos XNA en un entorno limitado con acceso limitado a la CPU, la GPU y la memoria. Además del acceso limitado, los juegos programados en el SDK completo de Xbox no están escritos en C # y no necesitan cosas como la recolección de basura, pero XNA se ejecuta en el propio C # de Microsoft, por lo que Microsoft tuvo que escribir un contenedor para que XNA se ejecute en el Xbox, y esa envoltura ralentiza bastante las cosas. Cosas como el rendimiento de punto flotante pueden ser hasta 10 veces más lentos que los juegos de Xbox que se escriben a través del SDK completo. Estos problemas de rendimiento significan que los juegos de Xbox desarrollados a través de XNA realmente no pueden usar todo el potencial de Xbox, lo que perjudica la calidad de los juegos que Microsoft puede obtener de la comunidad. Microsoft haría bien en considerar esto si continúan con XNA para que su próxima consola permita a los desarrolladores de XNA usar el sistema en todo su potencial.
Hasta donde yo sé, XNA no admitirá el estilo metro de Windows 8, por lo que los desarrolladores no podrán escribir juegos para aprovecharlo. XNA tampoco se ejecutará en procesadores ARM, por lo que no podría usar XNA para escribir aplicaciones para tabletas con Windows 8 que saldrán pronto. ¿Es esto una señal de que XNA podría no ser compatible en el futuro?
Microsoft usa XNA para juegos en este momento, pero con un poco de trabajo también podría usarse para crear algunas aplicaciones interesantes. Si Microsoft empujó XNA a comunidades distintas a los desarrolladores de juegos, entonces podría usarse con más frecuencia y tener más razones para que Microsoft continúe apoyándolo.
Los foros de XNA se han secado un poco, a las personas les lleva más tiempo obtener respuestas, y rara vez veo a algún miembro del equipo de XNA en los foros, excepto Shawn Hargreaves, por lo que pueden estar en un rol de soporte en este momento.
Creé y admití un motor de juego de código abierto para XNA, en los últimos 2 años las descargas del motor se han reducido a aproximadamente la mitad de lo que comenzaron, a pesar de que el motor es mucho mejor de lo que solía ser. Esto me indica que muchas menos personas usan XNA que antes. Aquí hay un gráfico de la cantidad de visitas que tengo en mi sitio, puede ver que el interés en XNA alcanzó su punto máximo entre finales de 2007 y mediados de 2008.
Aquí hay una larga discusión que incluye algunos miembros del equipo XNA. Por supuesto, no están dispuestos a comentar mucho porque Microsoft no habla mucho de las cosas antes de que se anuncien:
http://xboxforums.create.msdn.com/forums/t/91616.aspx
También citas como esta son interesantes:
http://download.microsoft.com/download/1/E/4/1E455D53-C382-4A39-BA73-55413F183333/Windows_Developer_Preview-Windows8_guide.pdf
Actualmente soporto un motor de juegos de código abierto para XNA, por lo que preferiría verlo admitido en el futuro, sin embargo, incluso si XNA 4.0 es el último XNA, sigue siendo una plataforma decente para crear juegos de Windows de manera rápida y fácil, y también Una gran API para aquellos que quieran aprender a hacer videojuegos.
Mi opinión sincera es que XNA 4.0 será el último, pero realmente espero estar equivocado al respecto.
fuente
MonoGame (una implementación OpenSource, OpenGL de XNA) v2.5 se lanzó hoy con soporte para sombreadores personalizados en iOS, Android, MacOS y Linux. Nuestro equipo comenzó a trabajar para agregar compatibilidad con el SDK de PlayStation Suite y también con Window8 Metro (basado en SharpDX, creo).
Ya tenemos una rama 3D, llamada imaginativamente desarrollo3d, que es donde todos nuestros esfuerzos se centrarán en los próximos meses, ahora que la v2.5 está fuera. Echa un vistazo a nuestro canal de YouTube para saber dónde estamos actualmente con 3D: http://www.youtube.com/user/MonoGameTeam?feature=watch .
Tenemos desarrolladores de un par de estudios de juegos que nos ayudan, por lo que creemos que la rama de desarrollo3d debería estar más optimizada que nuestra rama v2.5 actualmente y es casi una reescritura total. La demostración de Reach tardó 15 minutos en pasar de Windows a MacOS X, cuando comencé desde cero el fin de semana pasado. La rama de desarrollo3d aún no es perfecta y tampoco lo es todo MonoGame, pero creemos que estamos en camino de resolver los problemas que tenemos y si más personas ayudan, aún mejor.
Ya hay 28 juegos de iOS (27 2D y 1 3D) en la tienda de aplicaciones de Apple, 5 en el mercado de Android y 1 en las tiendas de MacOS y Linux. Si alguien aquí ha jugado Bastion en su navegador Google Chrome, que usa una versión modificada de MonoGame y esperamos admitir juegos de NaCL en el futuro, gracias a SuperGiant enviándonos información sobre cómo hicieron que MonoGame funcionara con NaCL.
Tenemos alrededor de 4-5 desarrolladores activos trabajando en MonoGame y si te apetece chatear con nosotros, ve a monogame.codeplex.com o visita irc.gnome.org en el canal #MonoGame. Toma el último código de Github
Así que supongo que mi punto es, por favor considere MonoGame si planea escribir juegos multiplataforma usando XNA.
Dominique
fuente
Por lo que entiendo sobre la situación, puede ir de dos maneras. La API está en desuso o se está acelerando para crear una versión XNA basada en DirectX 11.
Aquí hay un artículo sobre cada perspectiva:
fuente
XNA solo se ejecutará en el escritorio Win8 y casi no hay posibilidad de que Microsoft esté trabajando en una API compatible con XNA que se ejecute bajo Win8 Metro UI / DirectX11.1.
Si realmente desea continuar desarrollando en una API similar a XNA en Windows 8 Metro, sin dejar de poder utilizar la canalización de contenido (una de las razones por las que XNA es amigable para desarrolladores de juegos de bajo presupuesto), debe seguir el proyecto ANX Framework . Este proyecto tiene buenas posibilidades de estar listo antes de Windows 8 RTM (al menos con soporte de SpriteBatch). Aunque probablemente requerirá cambiar ligeramente los sombreadores (por ejemplo, la semántica), ANX proporciona una forma de importar un proyecto XNA existente, por lo que podría ser de gran ayuda. También están trabajando en otros backends (como OpenGL para gráficos), por lo que también podrían apuntar a otras plataformas .NET (como Mono en Android / iPhone).
MonoGame podría ser otra opción, pero actualmente es solo para 2D, con un único backend OpenGL / ES, por lo que no podrá ejecutarse en Windows 8 Metro (OpenGL no es una API "certificada" en Win8 Metro, y lo más probable no forma parte de los planes de Microsoft).
Hay varias opciones:
Podría usar directamente SharpDX , una API de DirectX de bajo nivel (ANX lo está usando). Por ejemplo, un marco mínimo para un juego 2D generalmente es factible con una API de bajo nivel como esta (y podría hacerse con Direct2D). Conozco al menos dos pequeñas empresas que lo están utilizando para desarrollar juegos Win8 Metro.
Puede comenzar a usar DeltaEngine que será compatible con Win8 Metro en los próximos meses (probablemente requerirá una licencia)
Podrías intentar desarrollar con Unity3D , aunque todavía no han anunciado ninguna compatibilidad con Windows 8 Metro (requiere una licencia). Pero trabajaron recientemente en un renderizador Direct3D11, por lo que no debería ser tan difícil para ellos proporcionar soporte para Win8 (pero como muchas API de Win32 no están autorizadas por Win8 Metro, probablemente no sea lo único que necesitan portar).
fuente
Con el lanzamiento de WinRT , es cada vez más obvio que Microsoft ha dado un gran giro. El bombo administrado está disminuyendo, el bombo nativo es más fuerte que nunca. Aparentemente, alguien influyente en la compañía (algunos afirman que es el equipo central de Windows) no está satisfecho con el rendimiento de .NET. La tendencia principal que veo en los últimos artículos es algo así como
Ellos dicen:
Esa es la sensación que tengo toda la última vez. Dado que puede esperar una desaceleración de todos los proyectos relacionados administrados, la única diferencia es la cantidad de desaceleración.
Microsoft respeta que casi nunca deje de ofrecer soporte para los productos, simplemente ya no se desarrollan. Entonces, al menos podemos usar XNA 4.0 durante bastante tiempo, incluso si es la última versión compatible.
fuente
No se ve bien para nosotros los desarrolladores independientes de XNA que queremos portar nuestros juegos de XNA a Metro. Microsoft no ha mostrado interés y espera que regresemos a la programación de C ++ / DirectX o adoptemos marcos de trabajo de C # de terceros, la mayoría de los cuales no son compatibles con ninguna canalización de contenido XNA.
Todo bastante triste, realmente no puedo entender la EM a veces.
fuente