martes, 28 de enero de 2014

Cocos2dx (Instalación y configuración)

Categoría: Cocos2dx

Nivel: Básico


En el anterior articulo explique el por qué escogí este framework para la creación de videojuegos en dispositivos móviles, ahora llega el momento de configurar todo el entorno de trabajo para comenzar a trabajar con él.

En internet y en la documentación oficial existen muchos recursos para trabajar con Mac ya que hasta ahora una de las ramas existentes de cocos2d que ha tenido mucho éxito es la versión para IOS ‘cocos2d-iphone’ que cuenta además con un editor bastante bueno llamado CocosBuilder.

Yo voy a hacer uso del sistema Windows y el entorno de desarrollo Visual Studio ya que es con el entorno que mayor productividad he conseguido en estos últimos años, aunque se puede usar cualquier otro IDE que permita compilar c/c++ como netbeans, eclipse, codeblocks, etc.

Con el entorno que voy a configurar se puede desarrollar para todas las plataformas disponibles, ya que el código fuente del juego en un principio será el mismo para todos los entornos si se tiene cuidado en algunas partes del código, debido a las diferentes restricciones que ofrece el hardware de los dispositivos (una de ellas es trabajar con el audio, no todos los dispositivos soportan el mismo tipo de codificaciones en archivos de audio).

No obstante cada dispositivo requiere de un marco de aplicación diferente y solo podrá ser compilado y probado si se dispone de los requisitos necesarios que se muestran a continuación:

Compilación:

  • WinRT: Necesario un SO Windows 8 Pro o superior.

  • Windows/Windows Phone 8: Como mínimo Windows 7.

  • Android: En principio cualquier plataforma puede ser usada para compilar.

  • IPhone/IPad/OS X: Necesario un Mac OS X 10.7+

  • Linux: Necesario un Linux.

Ejecución:

  • WinRT: Para probar es necesario un SO Windows 8 Pro o superior o un dispositivo físico.

  • Windows/Windows Phone 8: Para depurar en un dispositivo físico es necesario como mínimo un Windows 7, para probar en el emulador es necesario un SO Windows 8 Pro o superior de 64 bits y una BIOS con SLAT (Second Level Address Translation), en procesadores Intel actualmente solo lo implementan a partir de la familia I3, I5 e I7.

  • Android: En principio cualquier plataforma puede ser usada para probar en dispositivos físico y emulador.

  • IPhone/IPad/OS X: Para probar es necesario un Mac OS X 10.7+ con el que se pueden emular los dispositivos o probar en los dispositivos físicos.

  • Windows: Necesario un Windows 7 como mínimo.

  • Linux: Necesario un Linux.

Independientemente de la compilación del producto final, como se ha comentado anteriormente el código a escribir va a ser el mismo. Lo ideal sería ir probando en todos los dispositivos para ver si hay que modificar partes del código para un dispositivo concreto, pero esto requiere mucho tiempo y muchas plataformas de desarrollo, con lo que al final y dependiendo de los recursos disponibles se va desarrollando y probando en una única plataforma con los inconvenientes que ello conlleva.


Instalación del código fuente:

Lo primero es descargar la librería y el editor oficial para facilitar la creación de escenas, animaciones y otros recursos, todo ello se puede descargar desde la página oficial en la sección descargas:

Cocos2dx

El editor oficial actualmente está en la versión 1.3.0.0, una vez descargado se instala siguiendo el asistente.

La librería 'cocos2dx', actualmente está en la versión 3.0, esta es la primera versión que da un gran salto, comienza a dejar los patrones usados en objetive-C y se centra más en el standard c++ 11 que es la última revisión del lenguaje c++ a día de hoy. Además implementa algunas nuevas características en físicas y el apartado de render, no obstante aun no dispone de integración para todos los dispositivos, aunque se irán implementando sobre Marzo/Abril. Yo voy a usar esta versión para ir usando las nuevas clases y los nuevos patrones de la librería.

Una vez descargada la librería se descomprime el archivo en la ubicación deseada y se podrá ver el código fuente de la librería, dentro de la cual se puede ver la siguiente estructura de directorios:

  • build: Carpeta conteniendo scripts y archivos de proyecto para compilar la librería y ejemplos.

  • cocos: Directorio principal con el código fuente de la librería.

  • docs: Documentación de la librería, el directorio contiene un archivo para generarla mediante la herramienta ‘doxygen’ (se merece un artículo aparte).

  • extensions: Directorio con extensiones de la librería.

  • external: Librerías externas usadas por cocos2dx para gestionar imágenes, físicas, archivos, sockets, etc.

  • licenses: Directorio con todas las licencias de las librerías externas usadas por cocos2dx.

  • plugin: Directorio con algunos plugins para ampliar funcionalidad.

  • templates: Plantillas usadas para la creación de proyectos en diferentes plataformas.

  • tests: Ejemplos para mostrar algunas características de cocos2dx.

  • tools: Herramientas y utilidades.

NOTA: Este directorio será considerado como el directorio raíz de cocox2dx.

En versiones anteriores se tenían que establecer manualmente las variables de entorno, en la versión 3.0 existe un script en Python 'setup.py' que realizara la tarea por nosotros. (Es recomendable ejecutar el script en una consola para poder leer las indicaciones sin que se cierre al terminar la ejecución. )

Al ejecutar el script es posible que no encuentre alguna ruta y te indique que la insertes a mano, de modo que siguiendo el ejemplo de este artículo estas serían las rutas que habría que indicar:

ANDROID_SDK_ROOT: C:/adt-bundle/sdk
NDK_ROOT: C:/adt-bundle/ndk
ANT_ROOT: C:/adt-bundle/eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin
(La versión de ant en los plugins de eclipse puede variar dependiendo del ADT descargado)
    

Para verificar que se han agregado correctamente, puede ejecutarse de nuevo el script y ver que todas las claves existen.


Instalación Visual Studio:

La versión mínima de Visual Studio para el desarrollo debe ser VS2012, si se quiere compilar para WinRT en Windows 8.1 deberá ser VS2013, si no se dispone de licencia se puede hacer uso de las versiones gratuitas denominadas Visual Studio Express, las cuales se pueden descargar en el siguiente link (a diferencia de las versiones profesionales que contienen todos los entornos de desarrollo, las versiones express son independientes para poder instalar las que se necesiten, en este caso serían tres (Visual Studio 2013 para Windows Desktop, para Windows y para Windows Phone) para Win32, WinRT y Windows Phone respectivamente:

Visual Studio

Para poder compilar en Windows Phone 8, hace falta instalar la SDK de Windows Phone 8 (La versión express de Visual Studio 2012 para Windows Phone, ya contiene la SDK y no hace falta instalarla). Puede descargarse en el siguiente link:

Windows Phone 8 SDK

(NOTA: Debe descargarse en el idioma que se haya instalado Visual Studio)


Instalación y configuración del entorno Android:

La configuración del entorno para compilar en dispositivos Android es un poco más costosa, las instrucciones de la página oficial para la versión 2.2.2 están un poco obsoletas e indican la necesidad de la instalación de ‘cygwin’ para la compilación de c++ mediante el NDK, actualmente el NDK va por la versión 9 y ya contiene herramientas para la compilación en Windows sin necesidad de instalarlo. La versión 3.0 de cocos2dx hace uso de nuevos scripts en Python usando estas nuevas versiones de NDK, de modo que no es necesaria la instalación de ‘cygwin’ para la compilación del código fuente.

Los pasos para instalar y configurar el entorno Android son los siguientes:

  • Instalar Python que será usado por algunos scripts de cocos2dx para generar plantillas, la versión v2.76 es la última versión de Python 2.x y es la recomendada actualmente

    Python

    NOTA: los scripts en Python que he visto en el código fuente de cocos2dx hacen uso de la sintaxis de Python 2.x, en caso de instalarse Python 3.x deberán modificarse los scripts para sustituir el código obsoleto (como por ejemplo las sentencias ‘print’, que en 3.x debe ir el comentario entre paréntesis)

    Verificar que existe la variable de entorno en el sistema, para ello se abre una consola y se escribe 'python', si indica que no se reconoce, se tiene que añadir la ruta donde se ha instalado (ej: c:\Python27) a la variable de entorno 'path', (Para verificar se tiene que cerrar la consola y volver a abrir).

  • Instalar JDK (Java Development Kit) para la versión del sistema operativo Windows x86 o x64 según el caso:

    Java JDK

    Una vez instalado, deberá crearse la variable de entorno a la ruta del JDK instalado:

    JAVA_HOME: C:\Program Files\Java\jdk1.7.0_51
  • Descargar Android SDK (Android Software Development Kit), la forma más sencilla es descargar el ADT (Android Developer Tools) Bundle, lo cual incluye:

    • Eclipse + ADT plugin
    • Android SDK Tools
    • Android Platform-tools
    • Las ultimas plataformas Android
    • Los últimos sistemas de Android para el emulador

    Android SDK

    Una vez descargado se guarda en el directorio deseado por ejemplo ‘C:\adt-bundle’ y se descomprime, dentro existirá una carpeta con el IDE de eclipse y otra con el SDK de Android, además un ejecutable para gestionar el SDK de Android.

    Para poder ejecutar las herramientas desde la línea de comandos, hay que añadir las siguientes rutas a la variable de entorno 'path':

    %ANDROID_SDK_ROOT%/platform-tools;
    %ANDROID_SDK_ROOT%/tools;
  • Descargar Android NDK (Android Native Development Kit), estas son las herramientas para poder implementar partes de una aplicación Android con código nativo como c/c++ que es con el que trabaja cocos2dx.

    Android NDK

  • Abrir Eclipse, estará en la carpeta que se ha descargado con el SDK de Android, una vez abierto, preguntara por el espacio de trabajo, yo uso el que indica por defecto pero puede cambiarse por el deseado.

  • Para configurar la SDK se selecciona en Eclipse menú Window -> Android SDK Manager tras lo cual se abrirá la aplicación para gestionar la SDK (esta aplicación reside en el directorio donde se ha descargado la SDK y se puede ejecutar sin abrir Eclipse, si se han añadido correctamente las variables de entorno, se puede escribir el comando 'android' en una consola).

    Para configurar la SDK se selecciona en Eclipse menú Window -> Android SDK Manager tras lo cual se abrirá la aplicación para gestionar la SDK (esta aplicación reside en realidad en el directorio donde se ha descargado la SDK y se puede ejecutar sin abrir Eclipse).

    Por defecto estará seleccionada para actualizar la última versión, pero para mayor compatibilidad con los dispositivos existentes instalaremos también la mínima requerida por cocos2dx con la cual se compilara la aplicación, de modo que se instala la API 10 (Android 2.3.3) y la última disponible.

  • Configurar algún emulador para la ejecución, para ello en Eclipse se selecciona menú Window -> Android Virtual Device Manager, tras los cual se mostrara la ventana de configuración de dispositivos virtuales. Desde aquí se pueden crear diferentes dispositivos virtuales para probar la aplicación con diferente hardware. Como nota importante a la hora de crear un nuevo dispositivo cabe destacar que la plataforma del dispositivo tiene que ser de las ultimas para que no de problemas con OpenGL ES 2.0 en el emulador y además seleccionar en opciones de emulación ‘Use Host GPU’ Si esto no se hace así, es posible que de problemas al ejecutar la aplicación en el emulador (Lo ideal siempre es probar en un dispositivo físico).


Con esto termina la instalación de cocos2dx en un entorno Windows en el que se va a poder compilar para dispositivos WinRT, Win32, Windows Phone 8 y Android. Solo faltarían los dispositivos de Apple que se pueden compilar con un Mac OS X 10.7+ y en caso de querer compilar sobre Linux, alguna distribución GNU Linux.

En el próximo artículo veremos cómo compilar los ejemplos y crear una aplicación multiplataforma desde las plantillas de cocos2dx.


Saludos y… "a fluzear"

 

1 comentario:

  1. Hola amigo, bastante bueno!!... Gracias por el aporte!!

    ResponderEliminar