Home ¬Ľ Juego ¬Ľ Comparamos Unity y Cocos2D para desarrollo de juegos 2D

Comparamos Unity y Cocos2D para desarrollo de juegos 2D

El equipo de Casual Arena lleva desde 2008 en el desarrollo de juegos Flash para navegador. Desde hace un a√Īo se han especializado en el desarrollo de juegos multiplataforma para m√≥vil y tablet, estudiando diferentes tecnolog√≠as y especializ√°ndose en desarrollo de juegos para Unity 3D y Cocos 2D. Les hemos pedido que nos escriban una comparativa entre estos 2 entornos, explicando sus diferencias y √©ste es el resultado.

DESARROLLO DE JUEGOS 2D MULTIPLATAFORMA

La mayor√≠a de los desarrolladores de juegos para m√≥viles y tablets quieren hacer sus juegos multiplataforma, o por lo menos disponibles para iOs y Android. Por supuesto, siempre es posible hacer 2 o m√°s desarrollos paralelos usando c√≥digo nativo (Objective-C para iOS, Java para Android…), y existen juegos de estilo, pero esta opci√≥n no es la m√°s recomendable. Lo m√°s eficiente es¬†usar un entorno de desarrollo que te permita compilar para varias¬†plataformas a partir de un mismo desarrollo. Y aqu√≠ llega la primera gran pregunta: ¬ŅQu√© tecnolog√≠a uso?

Existen diversos frameworks o tecnolog√≠as disponibles para el usuario: Unity3D, Cocos2D, Marmalade o incluso Adobe Flash, entre otras. Adobe Flash pr√°cticamente solo se usa cuando tu aplicaci√≥n ya est√° desarrollada en Flash para navegador y quieres hacer una migraci√≥n r√°pida para m√≥vil. Si tu aplicaci√≥n es muy ligera (un juego de mesa, un bingo…) es posible usar esta tecnolog√≠a, pero si tu aplicaci√≥n requiere m√°s carga de procesamiento (juegos de billar, juegos con f√≠sica o con animaciones pesadas, etc), Flash deja de ser una opci√≥n viable. Cocos2D¬†es¬†un framework muy completo, de c√≥digo abierto y totalmente gratuito. Por este motivo es la tecnolog√≠a m√°s usada actualmente, superando a Unity o Marmalade, que no son completamente grauitos. Unity3D¬†ha sido¬†y sigue siendo la opci√≥n m√°s utilizada para desarrollar juegos 3D. Con las nuevas versiones de Unity, que incluyen funcionalidades espec√≠ficas para el desarrollo de juegos 2D, se ha posicionado tambi√©n como una opci√≥n muy s√≥lida para este tipo de juegos, haciendo que Cocos y Unity sean las dos opciones m√°s escogidas actualmente para el desarrollo de juegos 2D. Desde nuestra experiencia recomendamos¬†escoger una de estas 2 tecnolog√≠a para el desarrollo de juegos 2D. Pero queda todav√≠a la gran pregunta:

¬ŅCu√°l es la mejor tecnolog√≠a para hacer juegos 2D: Unity 3D o Cocos 2D?

En Internet se pueden encontrar muchas comparativas entre estas 2 tecnolog√≠as. Cuando comenzamos los desarrollos de nuestros juegos las le√≠mos todas y nos basamos en ellas para tomar nuestra decisi√≥n. El problema de estas comparativas es que eran casi todas muy subjetivas. Aquellos desarrolladores que se hab√≠an especializado en Cocos defend√≠an Cocos. Los que lo hab√≠an hecho en Unity, defend√≠an Unity. Hay realmente muy pocas¬†comparativas de desarrolladores expertos en ambas plataformas. Nosotros hemos estudiado y desarrollado para los 2 entornos y creemos tener una opini√≥n objetiva: la mejor plataforma es claramente Unity. Realmente la respuesta ser√≠a: ¬ęsi puedes pagarlo, Unity, si no, Cocos¬Ľ. Unity3D es una tecnolog√≠a mucho m√°s potente que Cocos2D, mientras que Cocos2D es gratuita y de c√≥digo abierto. Veamos las diferencias entre ambos. En¬†todo momento cuando hablemos de Cocos2D (o simplement Cocos), nos referimos a Cocos2D-x, que es la extensi√≥n multiplataforma de Cocos2D (inicialmente orientada a iPhone).

Ebook 3 Juego Descarga

VENTAJAS DE COCOS2D FRENTE A UNITY3D

Cocos2D es gratuito, de código libre y el más usado hasta la fecha. Unity, por el contrario, es caro. Dispone de una licencia gratuita, pero insuficiente para desarrollos profesionales. Su licencia oscila entre los 1500 $ y más de 4500 $ por persona (más impuestos), lo cual es una barrera importante para nuevos desarrolladores. Cocos2D usa C++ como lenguaje de programación y librerías ligeras, lo que lo hace algo más ligero para el procesador que Unity. Puedes ver el código completo de Cocos2D, editarlo o adaptarlo a tus necesidades. Si eres experto en C++ y no quieres pagar las caras licencias de Unity, Cocos2D es la mejor opción. Tiene otras características muy positivas, pero no son ventajas, pues las comparte con Unity. Dispone de buenos motores de física, enorme cantidad de ejemplos de todas y cada una de las funcionalidades de Cocos2D, una amplia comunidad de desarrolladores que lo apoyan y mejoran cada día, etc. Pero todo esto es compartido por Unity.

VENTAJAS DE UNITY3D FRENTE A COCOS2D

Todo lo dem√°s. Por supuesto hablamos siempre de 2D, pues Cocos simplemente no admite 3D.

Entorno de dise√Īo

Cocos2D no tiene un entorno de dise√Īo integrado.¬†El dise√Īo de tus pantallas o interfaces debe hacerse con programaci√≥n, cargando las im√°genes y posicion√°ndolas con C++.¬†Puedes, sin embargo, usar editores gr√°ficas externos como Cocos Studio (tambi√©n gratuito), que te ayudan a posicionar elementos en pantalla y configurar ciertos objetos. Pero este editor es mucho menos potente que el de Unity. El editor de Unity est√° completamente integrado. Cocos Studio, por el contrario, no lo est√°, y su funcionamiento se basa en¬†generar un fichero xml y una serie de im√°genes que Cocos importar√° con sus librer√≠as. Tiene algunos bugs y no funciona siempre en todos los ordenadores. El editor gr√°fico de Unity permite dise√Īar y maquetar escenas con suma facilidad, pudiendo insertar objetos, scritps, efectos de luz,¬†efectos f√≠sicos, etc. con solo arrastrar componentes y modificar par√°metros. Reduce el tiempo de desarrollo enormemente comparado con una maquetaci√≥n con Cocos2D o Cocos Studio.

Lenguaje de programación

Cocos2D usa C++, mientras que Unity3D permite usar C# o Javascript. Tanto C# como Javascript son lenguajes mucho m√°s potentes que C++, que permiten programar acciones y algoritmos con mucho menos esfuerzo que C++. Adem√°s, para los que no son expertos en C++, su aprendizaje resulta ser tedioso y dif√≠cil, teni√©ndote que preocupar por problemas como la gesti√≥n de¬†punteros o las fugas de memoria. Todos estos asuntos desaparecen con Unity, teni√©ndote que centrar √ļnicamente en funcionalidades de tu juego, lo que supone, nuevamente, un ahorro de tiempo enorme. Adem√°s, los editores de c√≥digo de Unity, bien sea MonoDevelop o VisualStudio, son mucho m√°s estables, sencillos y completos que los de Cocos (XCode mayormente). En resumen, se puede decir que C#/Javascript (Unity) son lenguajes m√°s f√°ciles que C++ (Cocos)¬†que te permiten¬†ahorrar tiempo haciendo tu trabajo m√°s eficiente.

Multiplataforma

Ambas tecnolog√≠as son multiplataforma, pero Unity lo es m√°s. Cocos2D permite desarrollar para diversas tecnolog√≠as m√≥viles, incluyendo iOS y Android. Unity a√Īade el resto: consola, escritorio y navegador. Si deseas que tu desarrollo sea compatible con navegador/Facebook, Cocos2D es insuficiente. Usar Cocos supondr√≠a tener que hacer un segundo desarrollo para navegador, por ejemplo en Adobe Flash, como es el caso de la mayor√≠a de los juegos disponibles para m√≥vil y navegador del mercado. Con Unity esto no es necesario, permitiendo exportar para navegador de forma sencilla. Unity permite exportar para casi todas las tecnolog√≠as de juegos del mercado: m√≥viles y tablets (iOs, Android, Windows Phone y BlackBerry), navegador (con Unity Web Player y pronto con HTML 5), consola (Xbox, PlayStation y Wii) y escritorio (PC, Mac y Linux). Adem√°s, Unity permite hacer adaptaciones espec√≠ficas para distintos dispositivos de forma m√°s sencilla que Cocos2D (por ejemplo,¬†para adaptar un juego a Android y iOS).

Documentación y tiempo de aprendizaje

La documentaci√≥n de Unity es abundante. Sus tutoriales en v√≠deo o texto son claros y est√°n (algunos)¬†traducidos al espa√Īol. El soporte es relativamente r√°pido y conciso. La documentaci√≥n de Cocos, sin embargo, es escasa y de mala calidad. Solo se encuentran en ingl√©s y en ocasiones solo en chino. El soporte es nulo, su foro de dudas est√° lleno de preguntas sin responder y obtener una respuesta es muy dif√≠cil. El tiempo de aprendizaje de Unity es mucho m√°s r√°pido que el de Cocos: su editor gr√°fico, C#/Javascript y la abundate documentaci√≥n y soporte hacen que sea una tecnolog√≠a muy agradable de aprender. Todo lo contrario ocurre con Cocos2D, salvo que seas experto en C++ y XCode y quieras estudiar las librer√≠as de Cocos2D a fondo.

Comunidad y extras

Unity3D ya es un entorno de desarrollo muy potente. Pero esta potencia se ve potenciada mucho m√°s con los aportes de terceros a trav√©s de su Asset Store. Cientos de desarrolladores venden sus plugins, recursos y mejoras a trav√©s de esta tienda. Algunos de estos plugins son tan potentes que son de obligada compra. Modelos 3D, texturas 2D, animaciones, aplicaciones, extensiones del editor, scripts, materiales, son solo algunos de los extras que podemos comprar o descargar gratis en la tienda oficial de Unity.¬†Entre ellas¬†destaca NGUI, una extensi√≥n para el editor gr√°fico, que supone una¬†ayuda para desarrollos 2D enorme y reduce a√ļn m√°s los tiempos de desarrollo. NGUI es a Unity (casi) como jQuery puede serlo a Javascript. Cocos carece de estos extras.

CONCLUSI√ďN

Unity es caro, pero merece la pena. El tiempo de desarrollo se verá reducido en una proporción mucho mayor que el coste de sus licencias. Muchas de sus prestaciones no las comparte con Cocos2D y permite compilar para más dispositivos que Cocos2D. Unity3D es mejor que Cocos2D.

Proyecto Juego

Escrito por

Yeeply
Yeeply

Yeeply es una plataforma premium especializada en el desarrollo de apps móviles y sitios webs a medida. Desde 2012 nuestros clientes nos confían el desarrollo de sus proyectos, y nos apoyamos a nivel técnico en los mejores profesionales certificados: desarrolladores de aplicaciones móviles o web freelance, empresas de software top, y agencias mobile más punteras. ¡Crear una app o crear una web nunca ha sido tan rápido, confidencial y seguro como con Yeeply! Publica tu proyecto de software en Yeeply y deja que nuestro equipo te ayude durante todo el proceso.