2009-07-16 17 views
14

No sé si es una pregunta extraña, pero ¿cómo podría ejecutar un juego creado con XNA en el iPhone/iTouch? ¿Qué pasos/herramientas (existentes o imaginarios ...) deberían usarse?XNA en el iPhone

nota: El objetivo es evitar la modificación existente código C#

ACTUALIZACIÓN:
Si he entendido bien, debo ser capaz de:
1) Ejecutar el código XNA en Mono (monoxna o SilverSprite , prometiendo?)
2) Ejecutar Mono en el iPhone (MonoTouch)

+1

He estado trabajando en este mismo problema. http://rockethub.com/projects/752-exen-xna-for-iphone-android-and-silverlight –

+0

Aquí pensé que era una pregunta de broma, y ​​sin embargo, hay una discusión real y soluciones viables. Me encanta lo lejos que ha llegado la informática. – Cheezmeister

Respuesta

6

No creo que haya una buena respuesta a su pregunta. XNA no se dirige al iPhone, por lo que las posibilidades de poder portar un juego XNA de manera efectiva sin modificar el código fuente C# no es probable que suceda.

En su lugar, te recomiendo que eches un vistazo a los diversos marcos que existen para ayudarte a crear juegos multiplataforma. Unity a menudo aparece en estas discusiones, pero no es gratis.

Si multiplataforma no es su objetivo, pero el desarrollo del iPhone es gratis, entonces le recomiendo mirar Cocos.

Editar: El proyecto MonoTouch puede ser capaz de ayudarle en el futuro, pero no lo ayuda en este momento. Aún así, es algo a tener en cuenta.

Editar: El paisaje ha cambiado mucho en los ~ 5 años desde que se publicó esta pregunta. Si tiene un proyecto XNA que desea ejecutar en iOS, entonces Xamarin.iOS (anteriormente MonoTouch) más MonoGame es un ajuste casi perfecto. A MonoGame le falta una gran parte del flujo de contenido de XNA, lo que significa que tendrá que abandonarlo o tener una instancia de VS2010 compilando sus activos en alguna parte.

+0

Puede agregar que la compatibilidad con Java o .NET en la plataforma de iPhone es muy poco probable. Para profundizar en eso (aunque podría estar equivocado aquí), Apple parece querer un control total sobre el desarrollo del iPhone, lo que significa que debe pagar una tarifa de licencia para implementar programas C/C++/Objective-C en él; mientras que .NET y Java proporcionan más programabilidad para el usuario final de lo que Apple se siente cómodo. –

0

Para empezar se necesitaría una aplicación CLR en el iPhone, que doe no existe en este momento, pero parece que alguien está intentando: MonoTouch.

6

El MonoTouch project puede eventualmente ayudar aquí, ya que le permite escribir C# dirigiéndose al iPhone (se compila estáticamente a código nativo).

+0

Pero si apunta a XNA, modificará el código. Creo que el proyecto es genial y una dirección que vale la pena. Y OMG en la cláusula no-JIT. Eso es incluso peor que la decisión de Android de no usar un JIT para Java. –

+0

No creo que Apple permita intérpretes además de los suyos. ¿Es por eso que no JIT, me pregunto? – Nosredna

+0

Acabo de leer la página de depuración de bajo nivel MonoTouch. Yikes. – Nosredna

2

Creo que XNA depende de Direct3D 9 (ver http://msdn.microsoft.com/en-us/xna/aa937793.aspx), lo que puede dar una pista de los obstáculos que uno podría encontrar tanto en la conversión a mono como tener suficiente potencia gráfica en iPhone.

+0

XNA dependiendo de DirectX, estoy de acuerdo, es el mayor obstáculo. .Net en iPhone es posible. Para obtener XNA en iPhone es necesario implementar la pila de gráficos XNA en iPhone. –

1

Todo el mundo diciendo que esto es posible porque hay bibliotecas CLR para Mono, ni siquiera pensar en el hecho de que XNA es un conjunto diferente totalidad de los marcos:

"La biblioteca de clases XNA Framework es una biblioteca de clases , interfaces y tipos de valores que se incluyen en XNA Game Studio ".

Como se ha mencionado otro respondedor, esto está tan lejos de suceder que ni siquiera es divertido. Si realmente quieres escribir un juego, echa un vistazo a Unity. Es comercial, pero se ve absolutamente impresionante y puedes script tu lógica de juego en Javascript o (aquí está la parte divertida) C#!

Sí, en lugar de pasar por un montón de trabajo para portar un marco completo porque quieres escribir un juego en C#, ¿por qué no utilizar un marco que te permita hacer eso hoy?

+0

Thx por la respuesta. Mi proyecto está casi terminado, así que me preguntaba si había una manera de hacerlo portátil con un mínimo esfuerzo;) (una reescritura no es una opción) – Jodi

+0

Lo pensaría seriamente si fuera usted. Probablemente puedas reutilizar todos tus recursos gráficos, y como la secuencia de comandos está en C#, apostaría a que gran parte de tu lógica de juego también se exportaría. Si es un buen juego, puedes obtener bastantes usuarios en el iPhone. –

1

De la boca the horse 's:

MonoTouch + SilverSprite = XNA 2D juegos en el iPhone? :)

Lo Bill significa es que con el tiempo será posible escribir un juego 2D XNA, a continuación, utilizar SilverSprite de ejecutarlo en Silverlight, a continuación, utilizar MonoTouch de ejecutarlo en el iPhone

+0

¡Es una buena noticia! ¡Es genial saber que las personas talentosas están interesadas en llevar XNA al iPhone! – Jodi

1

Este espacio es, sin duda el calentamiento . En la actualidad existe un proyecto XNA táctil en CodePlex que pretende llevar la API de XNA a la plataforma iPhone/iPad:
http://xnatouch.codeplex.com/

0

Un amigo mío está desarrollando un puerto de la arquitectura de XNA 4.0 para la plataforma iOS. Está escrito en Objective-C, pero tiene la sensación de XNA. Ha publicado la fuente bajo LGPL en http://code.google.com/p/xni/.

1

'Tal vez' podría cambiar el espacio de nombre de XnaTouch para que coincida con el del código Xna existente (es decir, Microsoft.Xna.Framework. *), Al desarrollar un proyecto MonoTouch? Esto podría hacerse en una horquilla de proveedor (copia) del código XnaTouch, fácil de administrar usando Git, Mercurial o Piston etc.

No estoy seguro de si el equipo XnaTouch emprendería tal cambio en su propia base de código , por lo que probablemente se haga mejor en sus propias ramas de código personal (curiosamente, el Mono.xna project uses the original Microsoft.Xna.Framework.* namespaces, no estoy seguro de por qué XnaTouch eligió no hacerlo).

JFYI, el actual XnaTouch (v1.0) sigue a Xna 4.0 con bastante fidelidad. He encontrado una [pequeña] falta de llamadas a métodos, que he 'implementado' para lanzar excepciones no implementadas (?). El código original-xna4-y-XNA-toque modificado hace compilación, ahora tengo que poner en práctica interfaz gráfica de usuario y gastos de iPhone-específica etc.

Espero que esto ayude a alguien.

Saludos

Rich

5

monogame es una implementación de OpenGL libre del XNA Framework 4.0. Se basa en la excelente gama de compiladores Mono y es compatible con MonoTouch (iOS), Mono para Android (Android), MonoMac (Mac OS X), Mono para Windows y ahora Linux.

Una lista de los 12 juegos que utilizan actualmente monogame que están en el Apple App Store de iOS se puede encontrar @

http://monogame.codeplex.com/

https://github.com/mono/MonoGame/wiki/Released-Games

0

Si está buscando un tipo de cosa multiplataforma gratuita, puede consultar el teléfono. No tengo ninguna experiencia con eso pero parece genial. http://phonegap.com/