miércoles, 31 de octubre de 2012


Unity



     Introducción:

    Unity es un motor 3D para el desarrollo de videojuegos creado por   Unity Technologies. Las plataformas en las que se puede desarrollar son Windows y MacOS X. Lo que hace interesante éste motor es la posibilidad de crear videojuegos para los siguientes dispositivos ó terminales: Windows, Mac, Xbox 360, PlayStation 3, Wii, iPad y iPhone, y también para la plataforma Android. Ademas de esto permite desarrollar juegos para navegadres de internet utilizando un Plug-In Web. Unity también es utilizado para generar experiencias de usuario, como la guía en un museo, también puede ser utilizado para diseño arquitectónico o para animaciones 3D. Actualmente se tiene conocimiento de la versión 4.0 tendrá soporte para Linux.


     Tipo de licencia:

   En la página oficial se puede observar que hay dos versiones del motor de desarrollo, uno es la versión free y otra es la versión pro. Hay que tener especial cuidado con los acuerdos de licencia del software, aquí se muestran algunos apartes del acuerdo entre el usuario y la empresa dependiendo de la versión que se va a utilizar:

    Para las dos versiones:
    - Archivos creados en la versión de Unity gratuita no pueden ser utilizados en la versión Unity Pro.
   - La licencia solo aplica para una persona natural o jurídica y no podrá ser transferible o sublicenciada a terceros.
    - Solo se autoriza la instalación del software en una PC y máximo en un equipo secundario como seguridad o conveniencia en el trabajo. Solo se autoriza hacer una sola copia del software como copia de seguridad.
    
    Versión gratuita:
    - La versión gratuita no está autorizada para entidades que tengan un ingreso anual bruto (comerciales) mayor a 100.000 dólares o entidades educativas o del gobierno que tengan un presupuesto anual de más de 100.000 dólares.  
   - El uso de la versión de prueba por parte de instituciones educativas está limitado a una sola computadora, además el uso de software se limita a la educación y no a fines comerciales.


    Impacto en el mercado:

  Unity ha resultado ser una herramienta poderosa con la que se pueden desarrollar juegos de gran calidad. Tenemos como ejemplos más sobresalientes los siguientes juegos: ShadowGun, Extraction: Project Outbreak, Unearthed: Trail of Ibn Battuta y Feist.  
     Se puede observar que son proyectos que no tienen nada que envidiar a los que están disponibles en el mercado. 
    Cada vez más los desarrolladores independientes están optando por Unity, ya que han encontrado una herramienta muy completa para trabajar; por si fuera poco existe un servicio adicional donde se puede pagar una mensualidad en soporte directo con profesionales de Unity para el asesoramiento en los proyectos.


     Documentación:

   Unity cuenta con buena documentación acerca de la creación de proyectos, modelado e importación de recursos. Se puede observar en la página oficial de Unity varios videotutoriales, explican desde la creación de un proyecto hasta el manejo de cámaras; se puede encontrar una sección de documentación y también una comunidad para los desarrolladores.
 



Compatibilidad con otros lenguajes:
 JavaScript, C # y un dialecto de Python llamado Boo. Los tres son igual de rápidos y pueden interoperar. Los tres pueden hacer uso de las bibliotecas. NET que apoyan las bases de datos, expresiones regulares, XML, creación de redes, etc.

http://unity3d.com/unity/engine/programming


Compatibilidad con dispositivos:

El sistema Unity   con Windows 8 y Windows Phone, tambien con dispositivos android, dispositivos de videojuegos tales como wii y Xbox. Unity Technologies anunció sus intenciones de apoyar a los sistemas operativos de Microsoft  durante esta semana en la conferencia 2012 en Amsterdam, unity es compatible con casi todo lo que se puede jugar, desde la ventana de su navegador para dispositivos Android  por lo que no es del todo inesperado que la próxima actualización de Unity trabaje con todo dispositivo que tenga acceso a la web.



Enfoque:

cada parte en la creación de Unity se a pensado en una sola cosas, mejorar la productividad, esto con dos características principales intuitivo y potente una herramienta de desarrollo de juegos que se ha diseñado para que te puedas enfocar en la creación de juegos increíbles.


Plataforma:

Plataforma Windows y Mac OS X

Soporte proyectos 2D:
Unity Provee una amplia biblioteca de tutoriales, documentos y guias para el desarrollo 2D [1]


Soporte proyectos 3D:
De igual manera Unity nos brinda una amplia biblioteca de tutoriales, documentos y guias para el desarrollo 3D [2]

Código nativo:
C# y javascript




Tutoriales en español: http://unity3d-es.blogspot.com

















Introducción:


LibGDX es un framework multiplataforma de desarrollo de juegos para Windows, Linux y Android. Está escrito en Java con una mezcla de C/C++ para dar soporte y rendimiento a tareas relacionadas con el uso de la física y procesamiento de audio. [1]
El freamework proporciona un entorno para la creación rápida de prototipos y de iteraciones rápidas. En lugar de desplegar para Android / Javascript después de cada cambio en el código, se puede ejecutar y depurar el juego en el escritorio del PC, agilizando así dichos procesos. [3]
Esto se debe a que uno de los objetivos principales de este framework es brindar una arquitectura unificada para trabajar, garantizando el mismo comportamiento en todas las plataformas para las cuáles se haya creado la aplicación. [2]


Licencia:

Code license:  Apache License 2.0
La licencia, básicamente, establece que se puede hacer con la fuente de todo lo que queramos, copiarlo, modificarlo, incluirlo en proyectos de código abierto y cerrado sin ser infectado por la propia licencia. Lo único que se pide es:

  •  incluir el archivo de licencia en su proyecto
  •  conservar todos los avisos de derechos de autor en los archivos de origen
  •  si opta por aportar su contribución a la Apache 2.0 le será licenciada. [4]


 Content license:  Creative Commons 3.0 BY-SA

Establece que somos libres para compartir, para copiar, distribuir y comunicar públicamente el desarrollo de la aplicación. [5]



Documentación:
LibGDX cuenta con una amplia documentación en la cual se puede aprender sobre todos los conceptos que maneja este framework, desde sus características hasta el desarrollo de aplicaciones guiadas por medio de tutoriales. [6]
Este framework también cuenta con una documentación extensa de su API, la cual es libre, con el fin de proporcionar el mejor respaldo posible a los desarrolladores. [7]
Además de todo esto libGDX proporciona un foro donde se permite publicar dudas, errores y  respuestas y de esta manera contribuir al conocimiento generar de la comunidad de desarrolladores. [10]

Curva de aprendizaje:
LibGDX es un framework de desarrollo fácil de aprender por la extensa documentación que existe en la web, además de tutoriales paso a paso de como desarrollar aplicaciones con este framework.  [6]

Impacto en el mercado:
El Framework libGDX tiene una amplia gama de juegos desarrollados en el mercado, como ejemplos tenemos: Jagen, Rebirth, Snip-Snap, roaring Skyes entre otros. [8]

Soporte de proyectos 2D:


API 2D de alto nivel:
  • CPU personalizada del lado de la libreria de manipulación de mapa de bits.
  • Cámara ortográfica
  • De alto rendimiento Sprite por lotes y el almacenamiento en caché, el manejo de OpenGL ES 1.x y las diferencias 2,0 transparencia
  • Textura atlas , con el apoyo espacios en blanco decapado. Ya sea generado desconectado o en línea
  • Fuentes de mapa de bits (no es compatible con scripts complejos como el árabe o el chino). Ya sea generado offline o cargadas desde archivos TTF (no soportado en backend Javascript)
  • Sistema de partículas 2D
  • Azulejo TMX mapa support
  • 2D-Graph API escena
  • 2D biblioteca de interfaz de usuario , basada en API escena gráfica, completamente skinablev [9]

Soporte de proyectos 3D:

API 3D de alto nivel:
  • Perspectiva de la cámara
  • Tatuajes de procesamiento por lotes , para las carteleras en 3D o sistemas de partículas
  • Cargadores básicos para Wavefront OBJ y MD5
  • Trabajos en curso : MD2, Ogre XML y soporte FBX, API 3D con materiales y sistemas de iluminación. [9]

Enfoque:
 El enfoque del framework libGDX es desarrollar aplicaciones (principalmente juegos) y darles soporte y mantenimiento principalmente en tareas relacionadas con el uso de la física y procesamiento de audio. [1]






1. https://docs.google.com/document/d/1YfuJ-gsc7VfIlX2G8Ix5K0laaqEsvFDuTz3Cnecy2_M/edit
2. http://androideity.com/2011/08/22/libgdx-para-crear-juegos-en-android/
3. http://libgdx.badlogicgames.com/
4. http://www.badlogicgames.com/wordpress/?p=777
5. http://creativecommons.org/licenses/by-sa/3.0/
6. http://code.google.com/p/libgdx/wiki/TableOfContents?tm=6
7. http://libgdx.l33tlabs.org/docs/api/
8. http://code.google.com/p/libgdx-users/wiki/GamesList
9. http://libgdx.badlogicgames.com/features.html
10. http://badlogicgames.com/forum/




AndEngine


Introducción:

AndEngine fue desarrollado por Nicolas Gramlich como un motor Java  para el desarrollo de videojuegos para dispositivos móviles con Android. AndEngine proporciona un conjunto de librerías que agilizan el proceso de importar y utilizar animaciones, manejar ficheros de audio, manejar ficheros de video, utilizar la física de colisiones de Box2D, facilitar los procesos multiplayer, comunicación inalámbrica y  demás procesos involucrados en el desarrollo de un videojuego.

Tipo de licencia:

AndEngine es utilizado para desarrollar juegos en 2D mediante OpenGL para Android y está licenciado bajo LGPL (Licencia Publica General Reducida de GNU), lo  que garantiza la libertad de compartir y modificar el software por parte de cualquier usuario.


Visibilidad en el mercado:

AndEngine surge como una iniciativa que pretende ayudar sobre todo a los desarrolladores independientes, generalmente éstos no cuentan con mucho presupuesto y a veces ni lo tienen.
El motor es conocido gracias a las comunidades de desarrolladores que se mantienen en una continua búsqueda de nuevas herramientas de desarrollo. También resulta muy atractivo ya que requiere solo la inversión de horas de trabajo por parte del desarrollador.
Como sabemos el conocimiento de una herramienta está sujeta a las comunidades que lo utilizan.
Unos de los ejemplos de videojuegos hechos utilizando AndEngine son: Bunny ShooterGreedy Spiders y Noogra Nuts.


Documentación:

Actualmente AndEngine cuenta con poca documentacion, inicialmente se puede descargar el motor desde el siguiente repositorio. Es necesario recordar que es el repositorio del autor, por lo que también se pueden encontrar proyectos que no están relacionados con AndEngie, así que es necesario fijarse bien en lo que se va a descargar.
Por otro lado se puede encontrar con un blog, éste sirve para que los desarrolladores estén informados de las novedades del motor  y los nuevos juegos que se desarrollan en éste, por otro lado se tiene un foro donde los desarrolladores pueden expresar sus dudas acerca de cualquier tema relacionado la utilización del motor.
Por ultimo tenemos una referencia de las clases y los métodos que se utilizan en un proyecto AndEngine.

Soporte de proyectos:

En AndEngine se pueden desarrollar proyectos de muchos tipos y solo en 2D, éstos son apoyados por diferentes herramientas dentro de las librerías del motor o a través de extensiones; si se desea realizar por ejemplo un videojuego que necesite física de colisiones entonces se puede utilizar la extensión Box2D, si se desea realizar una interfaz para el juego de forma rápida y fácil entonces la opción a elegir es Cocos 2d, también si se desea hacer un test de caja negra del código que se está desarrollando se puede utilizar la extensión Robotium para AndEngine. Estos son los ejemplos más visibles del soporte externo  que se puede tener para el desarrollo de los proyectos.  


Compatibilidad lenguajes, plataformas y dispositivos:

Actualmente AndEngine solo trabaja sobre el lenguaje de programación Java. AndEngine se puede integrar a cualquier proyecto Android, por lo que si utiliza el IDE Eclipse podrá utilizar el motor de desarrollo en Windows, Linux y Mac.
La compatibilidad de proyectos hechos con AndEngine se restringe a dispositivos móviles que utilicen Android como sistema operativo.