jueves, 26 de septiembre de 2013

Y ahora.... la Versión 2.0

En la presentación de 9 de septiembre se expuso el juego terminado a los demás grupos de desarrollo, en donde gracias a sus comentarios descubrimos detalles que podríamos mejorar. Detalles como que el juego tenia una velocidad lenta y que se demoraba demasiado en llegar a etapas mas difíciles. Otros aspectos técnicos al proyecto de curso es que no logramos conectar el IPhone al proyector (aspecto necesario para la presentación final), por lo cual optamos por dejar concluida la versión 1.0 del videojuego y adaptar estos cambios a un nuevo dispositivo.

Migracion de plataforma iPhone a iPad

Se rediseña el juego para poder visualizarse en un iPad-mini el cual tiene la siguiente resolución 768x1024, siendo muy superior que la actual que poseía el iPhone el cual tenia cargadas 2 resoluciones la del iPhone normal, puesto que estábamos programando para un dispositivo 3GS y su resolución 320x480 y adicionalmente cargábamos la resolución retina que es 640x960, tambien hubo que crear un perfil para el dispositivo y cambiar casi el 30% del código, puesto que al cambiar a XCode5, se eliminaron varios formas de llamar a las funciones y eliminaciones por obsolescencia de parte de Apple de instancias, por ejemplo las llamadas del acelerometro ya no funcionaban, pasaron de UIAcelerometer incluido en el framework Foundation, a ser utilizado mediante CoreMotion. 
Me ha sorprendido lo drástico que pueden llegar a ser los cambios de versiones en XCode, ya que prácticamente son librerías completas las que dejan de funcionar.


Generamos nuevamente el escenario de juego para adaptarlo a las nuevas resoluciones y como fue mencionado anteriormente las dimensiones en la programación fueron adaptadas a las nuevas del iPad.


En cuanto a las ventajas que se ganaron con esta nueva resolución y hardware del dispositivo, fue la opción de poder generar mas obstáculos como fue visto en la presentación (de 5 a 15 rocas), pero no se implementó el modo vibración ya que que los iPads no incorporan esta característica. 
Otro de los detalles de esta nueva versión es que al momento de entrar en Full Screen el juego no oculta la barra de navegación del iPad, aspecto que si ocurría en el dispositivo iPhone 3GS, el tema será resuelto a medida que se tome mas familiaridad con las nuevas implementaciones y/o se mejore la documentación que trae iOS7.

Con esta actualización se da por obsoleto el dispositivo con el cual constatamos y el cual fue presentado en la preview de la semana antes de fiestas patrias de como funcionaban todos los aspectos a los cuales nos habíamos comprometido, y el planB por la no visualización del iPhone 3GS en el proyector recayó en la adoptaron de presentar en iPad y por eso se genera este post, porque es importante mencionar todas las labores extras que se debieron realizar.




-En la Imagen: Vista del  XIB de inicio para la plataforma iPad.




lunes, 9 de septiembre de 2013

Solución de Bugs, ediciones varias

Bueno en el testing del juego nos encontramos con errores que hacían que la aplicación se colgara o quedara sin movimiento y otras relacionadas con el sonido, se describirán en detalla a continuación.

v1.0.1- Se han resulto los problemas que ocasionaban que el auto quedase inmóvil al comisionar con 2 obstáculos a la vez, esto generaba que las respuestas por parte del acelerometro no fuesen procesadas y se terminaba por perder la partida.

Porque ocurría esto ?. Ocurría porque no habíamos puesto un Release en la parte donde se hace referencia al evento que maneja las colisiones, puesto que no estamos trabajando con ARC, como se menciono en spot anteriores, el significado de los ARC, son quienes destruyen los objetos para liberar la memoria.

v1.0.2- Se han resulto problemas referentes a la perdida del sonido, inclusive cuando este estaba activado en las opciones, esto ocurría cuando se iniciaba el juego y el dispositivo estaba con el silenciado o vibrador activado, se iniciaba el juego, y este no volvía a cargar los sonidos. Por que ocurría ?. Este punto comenzó a ocurrir cuando se empezaron a migrar referencias de iOS6 hacia iOS7, por lo tanto se alude el problema a los cambios que hace iOS 7 en AudioToolBox, se soluciona volviendo al estado anterior.

v1.0.3- Se resuelven problemas que ocasionan que al entrar en la view de detalles se perdiera la view del juego, esto también ocasionaba que el juego iniciara sin poder ver la vista del juego.
Por que Ocurría?. Se habían declarado 2 veces los Outlet de la vista inicial, la splash y al entrar en la vista detalles, quedaba un Outlet pasado, es como si entrase 2 veces, se soluciona eliminando un Outlet y dejando el Action tal cual, pues esa parte estaba bien declarada.

Ahora pasamos a los cambios gráficos, se cambia el logo del juego por uno con colores rojos con degrades y sombras, cambio de la gráfica de los botones, y la inclusión de una imagen al lanzar la aplicación.

Nuevo logo.


lunes, 2 de septiembre de 2013

Manejando los sonidos del juego.

Este sera de los últimos Post, ya que tenemos la aplicación funcionando en un dispositivo IOS.
En este Post incluyo el trabajo con los sonidos del juego (que ya esta implementado y funcionando en la aplicación).
Los sonidos escogidos fueron:


  • Choque: sonido que es usado cuando la posición del objeto de nuestro personaje principal en la pantalla intersecta con la de los otros objetos. es decir, es el sonido que hace cuando sufre una colisión.

  • Botón Selección: sonido que hace al presionar uno de los botones del juego (ej: botones de configuración). 
  • Puntuación: sonido utilizado cuando se muestra los resultados de la puntuación.

    Desafíos encontrados:
    Durante el desarrollo de esta etapa nos dio problemas cuando queríamos reproducir mas de un sonido a la vez, también al reproducir sonidos de gran tamaño, lo que fue solucionado al comprimir los archivos de audio lo mas posible tratando a la vez de que no pierda tanta calidad.

    Enlaces:
    Pack de sonidos gratis utilizado: http://www.audio4dj.com/2013/07/01/free-sample-pack-cybernetic-tools/



Carga de RunCrash a dispositivo IOS


En esta ocasión veremos la forma de carga de nuestra aplicación a un dispositivo móvil, en este caso será un iPhone 3GS, donde se compila el código, se verifica que el identificador corresponda al que debe contener el equipo móvil, y si estos perfiles, como los llama Apple están previamente ingresados en la Web de Developers de Apple, tal como se muestran en los post anteriores, donde se mostraron los procedimientos para crear un Identificador de Aplicación. 


Esta es la visualización en XCode en la que vemos una representación de como se vería en un dispositivo IOS, podemos ver que se ve el icono de inicio de nuestro juego. (el otro icono corresponde a una aplicación pequeña creada en la fase de pruebas de factibilidad).


Y luego al pasarlo al dispositivo IOS y ejecutarlo, comprobamos que el juego funciona correctamente. (En la imagen se muestra la foto sacada con la aplicación disponible en el mismo dispositivo):





lunes, 19 de agosto de 2013

Testing de RunCrash en Dispositivo

Bueno en esta entrada se mostrara los fps al correr RunCrash en el dispositivo, como podemos apreciar el juego corre a 60 fps con los cuales obtendremos una muy buena fluidez del mismo, agregando como nota que utilizamos código compatible con el actual iOS7, dejamos notas en el código fuente referente a esto, porque al momento de migrar a XCode 5 el cual esta en fase beta para developers, no correría el juego o lanzaría los típicos warnings de que se esta utilizando código desechado



Bueno eso seria la entrada, después se podría colgar un video del juego en acción.

Visión de los XIB de RunCrash

Bueno en esta entrada se mostraran los archivos XIB que contiene RunCrash, pero que es un XIB, bueno a grandes rasgos un XIB es un Xcode Interface Builder, el cual en versiones anteriores a XCode 4 incluía una heramienta que hacia la labor de las interfaces gráficas de las aplicaciones tanto de los dispositivos móviles como de las aplicaciones de escritorio. Bueno pero pasemos a las XIB de RunCrash.

Primero mostraremos la Pantalla de Bienvenida, la que se nos muestra al momento de correr a RunCrash, como se puede apreciar en la propiedad de los objetos este XIB consta de 2 objetos los cuales son, en realidad consta de 2 objetos expuestos y 4 etiquetas en la parte oculta del imageView, es por esto que no se muestran en la selección de objetos pero al seleccionar el imageView se podrá tener acceso a ellos, bueno esto no es muy relevante pero para quien quiera saber de donde sale ese texto esa es la respuesta. Pasandp a los Outlets o las acciones para que se entienda mejor, vemos que el imageView no contiene ningún Outlets asociado, no así el Botón el cual se vera en la siguiente imagen


En esta imagen como se mencionaba con anterioridad se puede apreciar los eventos que posee el botón Configuración los cuales son ejecutados en el evento TouchUpInside cuando es tocado,


Posteriormente mostraremos el XIB al cual se accede desde el botón Configuraciones, este es la ventana de configuraciones SettingsWindow, aquí se podrá manejar los aspectos de los sonidos relevantes al juego, como son la activación o desactivación del sonido de fondo y las mismas opciones pero para los efectos de sonido, los cuales son los sonidos de las colisiones, etc.

Como podemos observar este XIB contiene una vista (View) con 6 objetos anidados a la vista nos centraremos en los valores que nos muestra el Switch que maneja los efectos de sonido, donde podemos observar que en el evento de ValueChanged, es decir cuando cambia el valor de nuestro Switch este lo enviara a la variable que tiene por nombre effectswitch el cual debe estar declarada con anterioridad en nuestro archivo .h para poder ser visualizada en el XIB o para que nos muestre la opción de seleccionarla, de similar forma sucede con el otro Switch que tenemos creado, y como se menciono la forma de trabajar con los botones será la forma en que trabajara el botón guardar, claramente que en los archivos cabecera (.h) y los archivos cuerpo (.m) estarán las acciones de todos los objetos que en la interfaz estamos relacionando



Bueno nuestro siguiente XIB será el display que nos muestra una vez que hemos perdido las 5 vidas que posee el juego, claramente si no hemos obtenido bonificaciones por llegar a os 10.000 ese será el numero de vidas que obtendremos. Como podemos apreciar este XIB solo posee una View sin objetos, pero cuando corramos el juego veremos que aparecen textos, esto ocurre porque como se muestra en la imagen estamos reverenciando el XIB GameOverViewController a sus clases cabecera y cuerpo, es decir, cuando se crearon estas clases GameOverViewController .h y .m se selecciono en XCode que asociara un XIB por esta razón todo se programa directamente allí y después se le dice al File Owner cual es su clase.



De similar forma al anterior funciona el XIB RunCrashViewController, claramente con opciones diferentes, como por ejemplo en la anterior se manejaban la muestra del puntaje mayor y el sprite de gameover, aquí se hace la parte de mayor trabajo como la contracción de los obstáculos los contadores de vidas , el puntaje la forma en que se mostraran los objetos, los movimientos etc.


lunes, 5 de agosto de 2013

De vuelta al proyecto.

Después de un  tiempo de pausa en el proyecto, estamos de vuelta, esta vez con el proyecto mas avanzado de lo que se muestra publicado. Hemos definido los Sprites del juego y hemos superado una de las etapas mas difíciles que fue trabajar con las colisiones de los objetos.

Prontamente estarán publicados.
saludos.



jueves, 25 de abril de 2013

Testing de Acelerómetro, Vibración, Sonidos y carga a iDevice


En este test se realizo una App para iPhone, el cual consta de un láser donde este reacciona a las sacudidas que se le dan haciendo uso del Acelerómetro, Sonidos y Vibraciones para simular los impactos del láser.

Software necesarios para la realización del test.

OS X Mountain Lion 10.8.3
Xcode (4.6.2)
Fireworks CS6 (Trial version de prueba)
Audacity (Open Source)

Frameworks

AVFoundation (para hacer uso de las vibraciones del dispositivo y de UIAccelermeter)
AudioToolbox (Para acceder a los sonidos que tendra la App)

Procedimientos

Comenzamos creando un nuevo proyecto en Xcode de nombre láser y seleccionamos el storyboard y el ARC.

¿Que es Storyboard y porque lo seleccionamos?
Con las nuevas versiones de Xcode ya no se hace la carga de la GUI o el desarrollo en Interface Builder, sino que viene incluido directamente en Xcode, es asi como incluyen los Storyboard una forma  mas grafica de ver las relaciones de las Views, pero que en ocaciones nos genera un poco de codigo basura, como se trabajara con una sola View lo dejaremos seleccionado.

¿Que es ARC y porque lo seleccionamos?
Automatic Reference Counting (ARC), sirve para administrar el ciclo de vida de los objetos en iOS, por eso ahora hay 2 formas de administra la convencional y con ARC.
La forma convencional es donde nosotros somos los responsables de hacer los retan,release,autorelease,dealloc.
La forma con ARC es en la que el sistema se encarga de destruir los objetos cuando no se utilizan mas, claramente hay que indicarle el comportamiento que tendrá dichos objetos.
ARC implica que dependiendo del uso de los objetos, el compilador sabrá cuando aumentar o disminuir el contador de referencia de los objetos , y cuando este llegue a cero el compilador destruirá la instancia.




Posteriormente cargamos los archivos de sonido que creamos y las imágenes como se muestran en las imágenes posteriores.



Seguido por la carga de los Frameworks que anteriormente se mencionaban AVFoundation y AudioToolbox y cargamos el icono de la App el cual fue importado a la carpeta imágenes anteriormente.


Pasamos a la creación de la Interfaz de la View la cual comprenderá de un componente botón y 3 componentes label, el boton referencia a la instancia startLaser y el evento será TouchUpInside, en la imagen se muestra lo descrito.
Se crean las clases SaberOnView, SaberOnViewController,SaberSoundsModel


Finalmente vemos la aplicación corriendo en el simulador de iphone por motivos de facilidad se mostrara el SS del simulador, ya que no variara mucho mostrar el del dispositivo del simulador(no se apreciara el acelerómetro en imágenes ).











Activación Dispositivo para carga de App

Una vez pagado la suscripción de los USD 99 anuales procederemos a crear el certificado


Posteriormente agregamos el o los dispositivos que poseamos a la cuenta de desarrollado, podemos agregar un total de 100 dispositivos para probar nuestras aplicaciones.


Seguimos con la creación de los ID de las aplicaciones 


Aqui se muestra el desglose de la creación del ID de Láser


y finalmente los agregamos a Xcode para que este cargue los perfiles al dispositivo. Cabe mencionar que los certificados como los perfiles provisorios se descargan y cargan a Xcode.



Con esto tenemos el dispositivo listo para aceptar la carga de las aplicaciones que creemos en este caso será láser para el test del acelerómetro, vibración y sonidos


miércoles, 24 de abril de 2013

Instalar OS X Mountain Lion 10.8.3 en VMware Image w/ AMD Support Changelog


Para instalar y configurar la maquina virtual con OS X Mountain Lion 10.08.3 en un Laptop con procesador AMD AthlonX2 y Windows 8 x64 fue necesario descargar e instalar la maquina virtual VMware Workstation  y la versión modificada del OS X Mountain Lion 10.08.3 que trabaja con los procesadores AMD creada por ©2013 Soul Dev Team.  Debido a que se tienen problemas con la versión original de OS X.

Herramientas Necesarias:
  • Archivos OS X Mountain Lion 10.8.3 VMware Image
  • Programa VMware Workstation v9.0.2
Requisitos Maquina:
  • Laptop con procesador AMD Athlonx2 (Para esta versión OS)
  • Sistema Operativo Windows 8 x64. (No hay especificación que no trabaje con X86)
  • 2 o más Gigabytes memoria Ram (La maquina virtual trabaja con un mínimo 1 Gigabyte dedicado)
Procedimiento:

Una vez descargado los archivos necesarios instalamos el programa VMware Workstation v9.0.2


Instalada la Maquina Virtual cargamos la imagen pre-configurada de OS X (doble click):


Podemos asignar más recursos si nuestra Laptop lo dispone, pero con la que viene asignada es suficiente.



Corremos la maquina cargada, creando una cuenta para el equipo y realizando configuraciones de ubicación geográficas (Ver post anterior).


Por ultimo, realizadas las configuraciones básicas, tomar una instantánea de la máquina virtual (take a snapshot of this virtual machine) para hacer el respaldo correspondiente.


Referencias: 

Se siguió las instrucciones realizadas por el equipo: ©2013 Soul Dev Team.

Instalación de Mountain Lion (OsX 10.8) en VirtualBox.


En este post publico la instalación  de OsX 10.8 utilizando VirtualBox en windows 7 .
La instalación la hice basándome en la publicación de Javier Losada, aunque con la diferencia de que utilice la última versión de VirtualBox 4.2.12.

Herramientas Necesarias:
  • Archivo ISO de Sistema Operativo Mountain Lion (MacOsx 10.8).
  • Programa VirtualBox 4.2.12.
  • Archivo ISO VirtualBox-4.2.12-extendedpack.
  • PC con Sistema Operativo windows7.

Requerimientos mínimos de PC:
  • Más de 2GB RAM. (Debemos asignar mínimo 2GB de memoria principal a la máquina virtual, aparte de la necesaria asignada al SO anfitrión).
  • procesador Intel dualcore x64. (debido a que los OsX están pensados para los computadores MAC que tienen procesadores de 64bits).
  • Virtualización disponible. (El computador debe tener esta opción habilitada en la BIOS).

Detalles más importantes a considerar en la instalación.
  • Configuración de Máquina Virtual.
  1. Selección de “MacOs x64” como característica de la Máquina Virtual a crearse.
  2. Agregar VirtualBox-4.2.12-extended.iso. Esto es para el funcionamiento correcto de los puertos usb y evitar el pantallazo-azul  “Driver_power_state_failure” de Windows al apagar la computadora.

 
  1.  Deseleccion de botón “Habilitar EFI(sólo SO especiales)”. 
 

  1. Deseleccion de botón “Habilitar PAE/NX”. Esto es en caso de que ocurra el error “system uptime in nanoseconds” en el proceso de pre-instalación del Sistema Operativo.


  • Instalación de sistema Operativo.
    La instalación no presenta mayor problema, ya que solo se sigue las indicaciones de la interfaz Gráfica.
    • Copia de archivos de instalación:
    • Aceptación de contrato de licencia de software.
    • Ingreso de datos de cuenta de usuario. 
                                 
    • Escritorio de OsX Mountain Lion.
    


Con esto tenemos el sistema operativo listo para la instalación del IDE XCode con el cual desarrollaremos nuestra aplicación para Iphone.


Enlaces:














viernes, 19 de abril de 2013

Carta Gantts

La planificación realizada para el desarrollo del VideoJuego RunCrash, dado como fecha de presentación final de los proyectos el 5 de Julio, se da fecha de inicio el 18 de Abril con fecha de termino 28 de Junio del presente año.



Tomando en cuenta la carga de trabajo semanal para el desarrollo del proyecto y las demás cargas de otras asignaturas que poseen los integrantes del equipo se trato de dejar una carga de tareas proporcional al tiempo desarrollo del proyecto.

miércoles, 17 de abril de 2013

Matriz de cobertura

Siguiendo con la planificación del proyecto, en esta misma semana hemos avanzado en la matriz de cobertura de las características que poseerá nuestra aplicación y las tareas que deberemos cumplir para para terminarlas.

Matriz de Cobertura : Características/tareas.



Como resultado, la tarea que mas influye en el progreso de nuestro proyecto es la utilización de Cocos2D (y principalmente su IDE xcode), por lo que es prioridad empezar a trabajar desde ya con esta herramienta.


referencias:
Cocos2D: http://www.cocos2d-iphone.org/

lunes, 15 de abril de 2013

Se expone en sesión de clases acerca de RunCrash, dando una pequeña introducción a los aspectos del juego, los cuales se detallaran en mayor rasgo a continuación:

Resumen del juego:

Bienvenido al Blog


Hola a todos.

Nos presentamos, somos tres estudiantes y futuros ingenieros de software, explorando un ambiente diferente a las aplicaciones que normalmente desarrollamos. Se trata de las aplicaciones multimedia, en donde según la definición del curso, convergen aspectos psicológicos, ergonómicos y estéticos, es decir, aspectos que generalmente no consideramos en el desarrollo de una aplicación de escritorio, pero que se convierten en aspectos muy importantes cuando se trata de un proyecto multimedial.

Dentro de las posibilidades de proyecto estaban el desarrollo de videojuegos, libros electrónicos interactivos, ambientes interactivos, y/o aplicaciones de música interactiva y composición algorítmica. Hemos escogido la primera por ser la que nos pareció mas entretenida, ademas de que nos permite adentrarnos en el desarrollo de aplicaciones para celulares smartphone.

El juego sera para plataforma IOS, el trabajo no sera fácil  ya que tendremos que aprender a utilizar nuevos lenguajes de programación, herramientas de diseño gráfico y de elaboración de música.


finalmente, este blog sera el registro de nuestro trabajo en este proyecto y esperamos que sea de ayuda para aquellos que al igual que nosotros comienza en el desarrollo multimedial.