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

Resuelto iseeall asked hace 54 años • 11 respuestas

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

Actualmente estoy buscando un motor para 2D. Probé Cocos2D pero es solo para iOS y no me gustaría reescribir todo en otro idioma para Android (por ejemplo, el puerto Java de Cocos2d para Android no es una opción). En lugar de eso, quiero escribir el código una vez y, con la menor molestia, implementarlo en iOS, Android y posiblemente en Windows Phone 7. Tengo tanto Mac como Windows.

Sólo para ser más detallado, estos son mis requisitos para el motor:

  • debe ser multiplataforma
  • debe ser eficiente
  • debería 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 en iOS o Android directamente (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 además): C++, encontré críticas muy positivas en general sobre Marmalade, pero no estoy seguro acerca de IwGame. EDITAR (marzo de 2013) : Parece que Marmalade SDK ahora incluye Cocos2Dx y un IDE incorporado que lo hace 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 el código
  • Cocos2d-x - C++, recibió muchas críticas de los desarrolladores, en su mayoría positivas y muchos piensan que es mejor para 2D
  • Código de partículas - Java+Eclipse, no se encontraron reseñas ni comentarios
  • Moai - Lua, no pude encontrar ninguna reseña/opinión al respecto.
  • Monkey Engine : parece tener muy pocas funciones
  • Haxenme : es Flash, nunca lo he usado y no quiero hacerlo
  • 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 en una etapa temprana de desarrollo (?)
  • Gamvas - HTML5, no me parece un motor maduro
  • Ignifuga - Python, tampoco parece maduro
  • ORX : no estoy seguro si todavía está desarrollado (?)
  • Construct 2 : recuerda a GameMaker, puede que esté 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 para portar a Android) - C#, y probablemente esté más pensado para personas que vienen de productos de Microsoft como xBox (yo vengo de Android). Además, esas herramientas Mono cuestan $800 en total para los pequeños desarrolladores.
  • Impacto : JavaScript, utiliza HTML5. No me gusta mucho JavaScript (por ejemplo, prefiero C# en Unity3d), tampoco estoy seguro de la eficiencia ya que se ejecuta en el navegador (?)
  • GameMaker : lenguaje de programación propio GML y, de hecho, lo recuerdo como una herramienta para no programadores. ¿Se ha convertido realmente en un motor real, es decir, para un desarrollo serio?
  • AppGameKit - C++, pero parece bastante nuevo. No he encontrado ninguna reseña al respecto.
  • use Cocos2D y Objective C para desarrollar solo para iOS y luego cree un APK para Android usando Stella SDK . ¿Alguien ha hecho esto? Estoy bastante seguro de que habrá limitaciones, y ¿qué tal la facturación integrada en la aplicación de Google, la integración de AdMob y Facebook en Android?
  • Moscrif - JavaScript, parece más para antiguos desarrolladores web
  • Starling - Flash 11, no me gusta mucho Flash
  • ND2D : aún no es 1.0, ¿tiene muchas funciones?

Por lo tanto, me encantaría que pudieras comentar tus experiencias con los motores y sugerir cuál de la lista (o cualquier otra cosa que me haya perdido) es el 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.

¡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 por mí mismo basado en el de 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 probaré en el próximo juego 2D. La razón principal para elegir Unity3D para juegos 2D fue que ya estaba muy familiarizado con 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 3D y tenía mucho sentido pagar $60 adicionales por el kit de herramientas 2D para cubrir también los juegos 2D. Hasta el momento no me arrepiento de 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 superan por completo a 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.

iseeall avatar Jan 01 '70 08:01 iseeall
Aceptado

LibGDX es uno de los mejores motores que he usado, funciona en casi todas las plataformas y funciona dos veces más rápido que cocos2d-x en la mayoría de las pruebas que he realizado. Puede utilizar cualquier lenguaje JVM que desee. Aquí hay un tutorial de 13 partes en Java, y aquí hay un montón usando jruby. Aquí hay una buena herramienta de animación esquelética que funciona con él y también admite mapas TMX en mosaico. El marco de la interfaz de usuario es increíble y tiene un gráfico de escena y una 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ápida y puedes usar jruby o scala o lo que quieras. Lo recomiendo ampliamente para trabajos 2d o 3d, soporta ambos.

Kamek avatar Jan 22 '2013 04:01 Kamek

He trabajado con él Marmaladey lo encontré satisfactorio. Aunque no es gratuito y la comunidad de desarrolladores tampoco es lo suficientemente grande, aún así puedes manejar la mayor parte de la tarea usando sus tutoriales. (También escribiré mis tutoriales una vez que tenga algunos).
IwGamees un buen motor, desarrollado por uno de los usuarios de Marmalade. Es bueno para un juego básico, pero si buscas algo de juego avanzado y serio, también puedes usarlo Cocos2D-xcon Marmalade. Nunca he usado Cocos2D-x, pero hay una extensión en el archivo Github.
Otra cosa buena de Marmalade es EDK (Extension Development Kit)que te permite crear una extensión para cualquier funcionalidad que necesites y que está disponible en código nativo, pero no en Marmalade. Lo he usado para desarrollar mi propia extensión Admob personalizada y también una extensión de Facebook.

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

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 para física, sprites, etc. está incorporado. Puedes echarle un vistazo.

Update 2
Marmalade pronto descontinuará su SDK a favor de la producción interna de juegos. Así que no será una buena decisión confiar en eso.

0xC0DED00D avatar Sep 03 '2012 07:09 0xC0DED00D