Motor de juegos 2D multiplataforma para Android e iOS? [cerrado]

262

He trabajado durante algún tiempo con Unity3d y encontré que su parte 2D con OnGUI () o GUITextures es demasiado torpe. Además, incluso un juego más pequeño hecho en Unity3d tiene una descarga de al menos 10 MB, lo que es demasiado para un juego 2D.

Entonces, actualmente estoy buscando un motor para 2D. Intenté Cocos2D pero es solo iOS y no me gustaría volver a escribir todo en otro idioma para Android (por lo tanto, por ejemplo, el puerto Java de Cocos2d para Android no es una opción). En cambio, quiero escribir el código una vez y, sin problemas, implementarlo en iOS, Android y posiblemente en Windows Phone 7. Tengo Mac y Windows.

Para ser más detallados, aquí están mis requisitos para el motor:

  • debe ser multiplataforma
  • debe ser eficiente
  • debe ser C ++, Java, C # u Objective C ya que me siento cómodo con ellos y NO Flash, Javascript, HTML5 ya que no soy desarrollador web
  • debe tener una gran comunidad, tutoriales, bibliotecas adicionales que cubran la mayoría de las cosas que tendría al desarrollar directamente en iOS o Android (facturación en la aplicación, Facebook, etc.)
  • el paquete final entregado no debe ser demasiado grande
  • el motor puede ser gratuito, pero tampoco me importaría pagar un precio razonable

He encontrado los siguientes motores:

  • Marmalade (y el motor IwGame encima) - C ++, encontró críticas generales muy positivas de Marmalade pero no estoy seguro acerca de IwGame. EDITAR (marzo de 2013) : Parece que Marmalade SDK ahora incluye Cocos2Dx y algunos IDE integrados que lo hacen mucho mejor (y cuesta $ 150 por año para desarrolladores independientes, lo cual está bien para mí).
  • Corona SDK - Lua (eficiencia dudosa), también necesita conexión a Internet para compilar código
  • Cocos2d-x - C ++, recibió muchas críticas de los desarrolladores, en su mayoría positivas y muchos piensan que es lo mejor para 2D
  • Código de partícula - Java + Eclipse, no se encontraron reseñas ni comentarios
  • Moai - Lua, no pude encontrar ninguna opinión
  • Motor mono : parece tener muy pocas características
  • Haxenme : es Flash, nunca lo he usado y no quiero
  • use Unity3d pero con paquetes 2D como 2D Toolkit
  • puertos de SDL a Android (también aquí ) e iOS : no parece tener mucho soporte o desarrollo actual (?)
  • GLBasic - Lenguaje básico, no me gusta
  • playN - parece estar temprano en el desarrollo (?)
  • Gamvas - HTML5, no me parece un motor maduro
  • Ignifuga - Python, tampoco parece maduro
  • ORX : no estoy seguro si todavía está desarrollado (?)
  • Constructo 2 : recuerda GameMaker, podría estar bien para prototipos rápidos pero definitivamente no para juegos de nivel industrial
  • XNA y luego portar el juego usando ExEn (necesitaría Mono Touch para portar a iOS y Mono para Android a portar a Android) - C #, y probablemente esté más pensado para personas que vienen de productos de Microsoft como xBox (vengo de Android). Además, esas herramientas Mono cuestan $ 800 en total para pequeños desarrolladores
  • Impacto : JavaScript, utiliza HTML5. No estoy muy interesado en JavaScript (por ejemplo, C # preferido en Unity3d), tampoco estoy seguro de la eficiencia ya que se ejecuta en el navegador (?)
  • GameMaker : lenguaje de scripting propio GML y de hecho recuerdo este como una herramienta para no programadores. ¿Se ha convertido realmente en un motor real, quiero decir para un desarrollo serio?
  • AppGameKit - C ++, aunque parece ser bastante nuevo. No he encontrado ninguna crítica
  • use Cocos2D y Objective C para desarrollar solo para iOS y luego haga un APK para Android con Stella SDK . ¿Alguien ha hecho esto? Estoy bastante seguro de que habrá limitaciones, y ¿qué hay de la facturación en la aplicación de Google, la integración de AdMob y Facebook en Android?
  • Moscrif - JavaScript, parece que es más para ex desarrolladores web
  • Starling - Flash 11, no estoy muy interesado en Flash
  • ND2D : aún no es 1.0, ¿tiene muchas características?

Por lo tanto, me encantaría que pudieras comentar tus experiencias con los motores y sugerir cuál en la lista (o cualquier otra cosa que me haya perdido) es la mejor para los requisitos descritos. También puedo estar equivocado con mis primeras impresiones sobre algunos de los motores.

Actualmente estoy pensando en Marmalade + IwGame como la mejor opción, pero como no tengo mucha información sobre Cocos2d-x y el código de partículas, no estoy muy seguro de eso.

¡Gracias!

EDITAR (junio de 2013): Hasta ahora hice 2 juegos 2D multiplataforma y usé Unity3D con el complemento 2D Toolkit para ambos. Para el juego con GUI simple, utilicé un sistema GUI simple hecho a sí mismo basado en el propio Unity. Para uno más complejo (por ejemplo, donde los elementos de la GUI pueden superponerse) utilicé el complemento NGUI. Recientemente, 2D Toolkit agregó algunas clases más para GUI, lo cual es muy útil ya que uno tenía que usar 2 sistemas diferentes para atlas de texturas al combinar NGUI con 2D Toolkit. Definitivamente lo intentaré en el próximo juego 2D. La razón principal para elegir Unity3D para juegos 2D fue que ya estaba profundamente inmerso en Unity3D tanto en términos de experiencia como de fragmentos de código acumulados para su reutilización. Además, compré Unity3D pro (con Android Pro e iOS Pro) para juegos en 3D y tenía sentido pagar solo $ 60 adicionales por el Kit de herramientas 2D para obtener juegos 2D también cubiertos. Hasta ahora no Lamento mi decisión, parece haber sido óptima para mi caso. Lo único que me dio dolor de cabeza fue agregar funciones sociales con los complementos de Prime31 (complementos sociales de Android e iOS), pero supongo que sus errores no son culpa de Prime31 sino de Twitter / Facebook, por lo que probablemente vería los mismos errores en cualquier otro motor o complemento.

EDITAR (enero de 2014) : supongo que con Unity 4.3 la respuesta a mi pregunta es bastante obvia ahora: el nuevo sistema de sprites de Unity y tal vez también 2DToolkit superaron por completo cualquier otra cosa, especialmente para las personas que (como yo) han estado en Unity por un tiempo y compró la versión Pro con complementos.

revs iseeall
fuente
y cual has elegido? ¿qué pasa con libgdx o andengine, u di no siquiera se menciona acerca de ellos, que me pareció son los más populars
kosnkov
1
@kosnkov: especificó requisitos que incluyen una implementación de escritura uno dos veces (iOS y Android con la opción de Windows Phone a plus). andEngine es solo para Android y libgdx no está dirigido a iOS (ni Windows Phone), por lo que no califican.
Sprite
1
Terminé haciendo un juego en 3D con Unity3D y el complemento NGUI para GUI. Si alguna vez tengo que hacer un juego en 2D, supongo que solo tomaré Cocos2d-x y Marmelade
todo el
1
A juzgar por el sitio web, estoy bastante seguro de que libgdx es compatible con iOS ahora. Sin embargo, todavía no hay Windows Phone.
Ehtesh Choudhury
1
¿Cómo es que las preguntas extremadamente útiles como esta siempre se cierran como "fuera de tema"? quizás SO debería crear una plataforma separada para "información" y opiniones
Bogdan Alexandru

Respuestas:

33

He trabajado Marmaladey lo encontré satisfactorio. Aunque no es gratuito y la comunidad de desarrolladores tampoco es lo suficientemente grande, pero aún puede manejar la mayor parte de la tarea utilizando sus tutoriales. (Escribiré mis tutoriales una vez que tenga algunas veces también).
IwGamees un buen motor, desarrollado por uno de los usuarios de Marmalade. Es bueno para un juego básico, pero si estás buscando cosas serias de juego avanzado, también puedes usarlo Cocos2D-xcon Marmalade. Nunca he usado Cocos2D-x, pero hay una extensión en Marmalade's Github.
Otra cosa buena de Marmalade es que es EDK (Extension Development Kit), que le permite hacer una extensión para cualquier funcionalidad que necesite que esté disponible en código nativo, pero no en Marmalade. YO'

Editar :
Marmalade ahora tiene su propia herramienta RAD (Desarrollo rápido de aplicaciones) solo para desarrollo 2D, llamada como Marmalade Quick. Aunque la codificación estará en Lua, no en C ++, pero dado que está construida sobre C ++ Marmalade, puede incluir fácilmente una biblioteca C ++ y todas las demás extensiones EDK. Además, las extensiones Cocos-2Dxy Box2Destán preincluidas en el Quick. Recientemente lanzaron su versión de lanzamiento (estuvo en versión beta durante 3-4 meses). Creo que realmente solo estás buscando desarrollo 2D, deberías probarlo.

Actualización:
Unity3D lanzó recientemente soporte para juegos 2D, que parece mejor que cualquier otro motor de juegos 2D, debido a su GUI y Editor. El soporte de física, sprite, etc. está incorporado. Puedes echarle un vistazo.

Actualización 2
Marmalade va a descontinuar su SDK a favor de su producción de juegos internos pronto. Por lo tanto, no será una sabia decisión confiar en eso.

novato
fuente
También puede leer esta pregunta SO también - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob
Gracias, parece que Marmalade con Cocos2D-x encima puede ser la mejor opción para mi caso.
iseeall
2
¡Olvidar [LibGDX] [1] cuando se plantea este tipo de pregunta es imperdonable! ;) [1]: libgdx.badlogicgames.com
Ewoks
Compruebe las actualizaciones :-)
noob
Unreal Engine 4.3.0 también puede ser un competidor. Es C ++ con editor y todo.
ervinbosenbacher
43

LibGDX es uno de los mejores motores que he usado, funciona en casi todas las plataformas y funciona el doble de rápido que cocos2d-x en la mayoría de las pruebas que he realizado. Puede usar cualquier lenguaje JVM que desee. Aquí hay un tutorial de 13 partes en Java, y aquí hay un montón usando jruby. Hay una buena herramienta de animación esquelética que funciona aquí , y también ha sido compatible con los mapas TMX en mosaico. El marco de la interfaz de usuario es impresionante, y tiene un gráfico de escena y API de estilo de actor similar a las escenas, sprites y acciones de cocos2d. La comunidad es increíble, las actualizaciones son frecuentes y la documentación es buena. No dejes que la parte de Java te asuste, es rápido y puedes usar jruby o scala o lo que quieras. Lo recomiendo encarecidamente para el trabajo en 2D o 3D, es compatible con ambos.

Kamek
fuente
55
Ahora LibGDX también funciona con iOS. Pero cuesta ~ 400 $ para la licencia Monotouch :)
JavaRunner
55
A partir de la versión 0.9.9, utiliza RoboVM para iOS, que es gratuito
James McCracken
1
He trabajado mucho con LibGDX y cocos2dx. Y diría que cocos2dx es mucho mejor (desarrollo más rápido + rendimiento + herramientas). Si vas a usar solo Android, ¡está bien usar LibGDX de lo contrario no! El soporte multiplataforma de LibGDX es muy, muy malo, lo que depende de RoboVM o Xamarin. Xamarin y RoboVM hacen que la compilación y la ejecución sean muy lentas en iOS. Eventualmente se vuelve muy difícil de mantener.
user18853
13

Menciona Haxe / NME pero parece que instintivamente no le gusta. Sin embargo, mi experiencia con él ha sido muy positiva. Claro, la API es una reimplementación de la API de Flash, pero no está limitado a apuntar a Flash, también puede compilar a HTML5 o aplicaciones nativas de Windows, Mac, iOS y Android. Haxe es un lenguaje agradable y moderno similar a Java o C #.

Si está interesado, he escrito un poco sobre mi experiencia con Haxe / NME: enlace

zwets
fuente
Gracias, solo por su artículo: "si tiene un juego HTML5 / Javascript (o Flash / ActionScript) y desea llevarlo a Windows, iOS y más allá". Supongo que este motor es exactamente para desarrolladores web que desean cambiar a plataformas móviles.
iseeall
Haxe / NME no es un motor de juego, es una plataforma que forma parte de su pila de tecnología. No es para desarrolladores web que quieran cambiar a plataformas móviles. Es para desarrolladores de juegos que desean llevar sus juegos a la mayor cantidad de plataformas posible sin tener que lidiar con lenguajes inferiores como JavaScript. HAXE / NME es muy poderoso, pero por el sonido de las cosas, no creo que sea lo que estabas buscando.
anber
12

V-Play (v-play.net) es un motor de juegos multiplataforma basado en Qt / QML con muchos componentes útiles del juego V-Play QML para manejar múltiples resoluciones de pantalla y relaciones de aspecto, animaciones, partículas, física, multitáctil, gestos, búsqueda de caminos y más. Referencia de API El núcleo del motor está escrito en C ++ nativo, combinado con el renderizador personalizado, los juegos alcanzan un rendimiento sólido de 60 fps en todos los dispositivos.

V-Play también viene con plantillas de juegos listas para usar para los géneros de juegos más exitosos como defensa de torres, juegos de plataformas o juegos de rompecabezas.

Si tienes curiosidad sobre los juegos hechos con V-Play, aquí hay una selección rápida de ellos:

(Descargo de responsabilidad: soy uno de los chicos detrás de V-Play)

Alex Huber
fuente
7

Aquí hay una respuesta de Richard Pickup en LinkedIn a una pregunta similar mía:

He usado cocos 2dx marmalade and unity en iOS y Android. Para los juegos 2d, cocos2dx es el camino a seguir en todo momento. La unidad es demasiado exagerada para los juegos en 2D y, como ya se ha dicho, la mermelada es solo una capa delgada de abstracción que no es realmente un motor de juego. Incluso puedes ejecutar cocos2d encima de mermelada. Mi enfoque sería usar cocos2dx en iOS y Android y luego, en el futuro, ejecutar el código cocosd2dx en la parte superior de mermelada como una manera fácil de portar a bb10 y ganar el teléfono 7

lo veo todo
fuente
7

Encuentro un motor de juego Wave agradable y ordenado hace unos días. Utiliza C # y también tiene convertidores de Windows Phone y Windows Store, lo que lo convierte en un excelente reemplazo de XNA para mí

Deadcow
fuente
6

¿Y qué hay de LibGDX de BadLogicGames?

Ewoks
fuente
1
No sabía que libGDX se ejecuta en iOS. Requiere una licencia MonoDroid, que ahora es (probablemente, no veo que la aplicación tenga menos de 32kb de MSIL) $ 999 en lugar de $ 399 por año.
cenizas999
6

Echa un vistazo a Loom ( http://theengine.co ) es un nuevo motor de juegos 2D multiplataforma con código de intercambio en caliente y activos en dispositivos. Esto significa que puede trabajar en Photoshop en sus activos, puede actualizar su código, modificar la interfaz de usuario de su aplicación / juego y luego ver los cambios en su (s) dispositivo (s) mientras se ejecuta la aplicación.

Pensando en los otros motores de juegos multiplataforma de los que he oído hablar o incluso he jugado, el Loom Game Engine es, con mucho, el mejor en mi opinión con muchas características excelentes. La mayoría de los otros motores de juegos similares (Corona SDK, MOAI SDK, Gideros Mobile) están basados ​​en Lua (con una sintaxis extraña, al menos para mí). Loom Game Engine utiliza LoomScripts, un lenguaje de secuencias de comandos inspirado en ActionScript 3, con un par de características prestadas de C #. Si alguna vez desarrolló en ActionScript 3, C # o Java, LoomScript le resultará familiar (y me siento más cómodo con esta sintaxis que con la sintaxis de Lua).

La licencia de 1 año para Loom Game Engine cuesta $ 500, y creo que es un precio asequible para cualquier desarrollador de juegos independiente. Hace un par de semanas también se ofreció una licencia de 1 año gratis. Después de que caduque la licencia, aún puede usar Loom para crear e implementar sus propios juegos, pero no recibirá más actualizaciones. Los creadores de Loom tienen mucha confianza y prometieron mejorar constantemente a su bebé haciendo que valga la pena comprar otra licencia.

Sin más preámbulos, estas son las excelentes características de Loom:

  1. Multiplataforma (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. El flujo de trabajo inspirado en Rails le permite pasar su tiempo trabajando con su juego (un comando para crear un nuevo proyecto y otro comando para ejecutarlo)

  3. Compilador rápido

  4. Código en vivo y edición de activos

  5. Posibilidad de integrar bibliotecas de terceros.

  6. Utiliza Cocos2DX para renderizar

  7. XML, soporte JSON

  8. LML (lenguaje de marcado) y CSS para diseñar elementos de IU

  9. Biblioteca de la interfaz de usuario

  10. Inyección de dependencia

  11. Marco de prueba de la unidad

  12. Física de ardilla

  13. Ver sus cambios en vivo facilita el desarrollo de múltiples dispositivos

  14. Pequeño tamaño de descarga

  15. Creado para equipos

Puede encontrar más videos sobre Loom aquí: http://www.youtube.com/user/LoomEngine?feature=watch

Echa un vistazo a este tutorial en profundidad de 4 partes también: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

balazs.bohonyi
fuente
5

Probé AppGameKit, es c ++ y básico. Es muy fácil codificar juegos 2D en la variante básica, con física, colisión y mucho más. También está en desarrollo activo y es muy barato (65 $). El problema principal es que es realmente difícil compilar para Android (es necesario descargar montones de archivos y seguir guías difíciles y cosas así). Mi opinión es que todavía no es lo suficientemente bueno para uso comercial, pero es bueno para programadores independientes. Tiene una comunidad de tamaño mediano.

Steven Kaydn
fuente
4

Actualmente uso Corona para aplicaciones comerciales con gran éxito. En cuanto a los juegos, tengo la impresión de que no proporciona el rendimiento que ofrecen algunos de los otros motores de desarrollo multiplataforma. Vale la pena señalar que Carlos (fundador de Ansca Mobile / Corona SDK) ha comenzado otra compañía en un motor de la competencia; Motor Lanica Platino para Appcelerator Titanium. Si bien no he trabajado con esto personalmente, parece prometedor. Sin embargo, tenga en cuenta que viene con un precio de $ 999 / año.

Dicho todo esto, he estado investigando Moai durante un tiempo (ya que estoy familiarizado con la sintaxis de Lua) y parece prometedor. El hecho de que pueda compilar para múltiples plataformas, no limitado a entornos móviles, es atractivo.

Multimedia Fusion 2 también vale la pena, teniendo en cuenta la complejidad de los juegos producidos y el rendimiento realizado a partir de ellos. Vincere Totus Astrum ( http://gamesare.com ) viene a la mente.

Sean Perryman
fuente
3

Recientemente utilicé un motor AS3: PushButton (ahora está muerto, pero sigue siendo funcional y podría usar algo más) para hacer este trabajo. Para que funcione con Android e iOS, el proyecto se compiló en AIR para ambas plataformas y todo funcionó sin dañar el rendimiento. Dado que Flash Builder es un poco caro ($ 249), puede usar FlashDevelop (hay algunos tutoriales para compilar en AIR con él).

Flash podría ser una opción ya que es muy fácil de aprender.

Kleber
fuente