Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Msolutions - Parmenion
ndice
Parte I reas de Desarrollo Parte II Software Utilizado Parte III Particularidades de J2ME Parte IV Algunos Ejemplos
Parte I
reas de Desarrollo
reas de Desarrollo
Diseo Conceptual Elementos Grficos Programacin J2ME Herramientas de Apoyo Sistemas de Compatibilidades
Diseo Conceptual
Mecnicas de juego y su viabilidad. Delimitar las features que se van a implementar, y como afectarn al Diseo de niveles, jugabilidad, ajuste de dificultad. Todo el desarrollo del producto va supeditado a este punto, por lo Requiere de creatividad, y de haber jugado mucho y a muchos juegos.
tiempo de desarrollo.
Elementos Grficos
Diseo de personajes, escenarios, marcadores, tipografas, etc... Creacin de grficos desde cero, animaciones fotograma a fotograma. Reescalados. Aspectos tcnicos supeditados a la programacin. Diseo grfico e ilustracin, creacin de material promocional.
Programacin J2ME
Programacin pura y dura. Conocer el cdigo de lo que ya hay hecho, poder adaptarlo a nuevos Buscar soluciones a problemas concretos que van surgiendo. Eficacia en el cdigo, optimizar, encontrar atajos Combinar programacin orientada a objetos con otros sistemas menos
desarrollos.
convencionales.
Herramientas de Apoyo
Desarrollo de herramientas necesarias para crear el juego Programacin tradicional, fuera del entorno J2ME Desarrollo de Editores de Niveles Desarrollo de Editores de Animaciones Otras utilidades
Sistemas de Compatibilidades
Desarrollo y mantenimiento del sistema de compatibilidades. Programacin JSEE. Estudio de usabilidad de aplicaciones y flujo de trabajo ptimo. Adaptacin formatos de distintos operadores. Analizar nuevos terminales y sus posibilidades, donde ubicarlos. Mantenimiento peridico de las BBDD de juegos.
Parte II
Software Utilizado
Software Utilizado
Diseo Conceptual
Gantt, OpenOffice, Thunderbird + Lighting
Elementos Grficos
Gimp
Diseo Conceptual
Gantt Project
http://ganttproject.biz/
Gantt Project
Diseo Conceptual
OpenOffice
Microsoft Office
http://www.openoffice.org/
Diseo Conceptual
Lightning
Outlook
http://www.mozilla.org/projects/calendar/lightning/
Lightning
Elementos Grficos
Gimp
Sustituto de Adobe Photoshop Funcionalidades bastante potentes Soporte para tabletas grficas y Wacoms
http://www.gimp.org/
Programacin
Eclipse SDK
http://www.eclipse.org/
Programacin
Apache Ant
Alta customizacin de nuestros proyectos Muy flexible Mltiples compilaciones muy rpidas
http://ant.apache.org/
Programacin
Antenna
Extensin Ant para J2ME Nuevas Tareas y Propiedades Independiente del SDK o libreras Empaqueta JAR, ofusca, preverifica
especficas e imprescindibles
http://antenna.sourceforge.net/
Sistema de Compatibilidades
Mltiples compilaciones a partir de un source comn Adaptacin a distintos tamaos de pantalla Adaptacin a libreras de cada fabricante Tabla de compatibilidades Terminal Versin
Sistema de Compatibilidades
Parte III
Particularidades de J2ME
Particularidades de J2ME
Problemas
Reducido tamao de JAR Poca cantidad de HEAP (memoria de ejecucin) Cientos de terminales
Distintas APIs y libreras para cada fabricante Grandes variaciones en velocidad de ejecucin Diferentes e incompatibles JVMs Distintos tamaos de pantalla
Particularidades de J2ME
Soluciones
Programacin procedural nico THREAD para toda la aplicacin Uso de elementos estticos para un acceso rpido Preproceso
Estructura de aplicacin
Estructura de aplicacin
Pmidlet.java Clase midlet principal (nica) Instancia las clases auxiliares Admite preproceso Preview.java Primera clase en ser instanciada Gestiona la precarga bsica de la aplicacin Implementa un Canvas bsico
Estructura de aplicacin
Dyc.java Gestiona y almacena datos binarios Almacena todos los textos Settings.java (esttica) Crea, escribe y lee en el registro Conversin de cualquier tipo de dato a byte Efectos.java (esttica) Precarga los archivos de sonido Gestiona su reproduccin
Estructura de aplicacin
Screen.java Implementa el nico Canvas de toda la aplicacin Gestiona pulsaciones de teclas y eventos de entrada Gestiona repintados Contiene utilidades para trabajar con texto Reloj.java Implementa el nico THREAD de la aplicacin Sirve de apoyo a Screen.java para pedir repintados o repeticiones de tecla Contiene utilidades para medir el tiempo
Estructura de aplicacin
Menu.java Implementa el menu y submenus iniciales Pantalla.java Gestiona el flujo del propio juego Inicio y fin de nivel Muerte del jugador Implementa marcadores, mens de apoyo Gestiona la precarga del propio juego
Estructura de aplicacin
Mclip.java Gestiona la carga y divisin de imgenes Gestiona mtodo de volcado de imgenes Implementa utilidades como reescalado o tintado Tscreen.java Gestiona los terminales con pantalla tctil Implementa control de zonas pulsables y su accin correspondiente
No existen Getters / Setters Variables pblicas No existe herencia Minimizacin de multiplicacin y divisin Desplazamiento de bit Inline de mtodos Variables estticas donde se requiera velocidad de acceso Arrays en paralelo
Programacin tradicional OO Disparo de una bala Clase Bala.java con sus propiedades Posicion x, y, velocidades, rea de colisin, etc... Instancia de esa clase por cada bala disparada Gestin de cada bala en juego por separado Eliminacin de la instancia al desaparecer la bala
Ejemplo de cdigo
Final static int TOTAL_BALAS = 50; Private boolean activa[] = new int[TOTAL_BALAS]; Private int pos_x[] = new int[TOTAL_BALAS]; Private int vel_x[] = new int[TOTAL_BALAS]; /*********************/ Private void mueveBalas(){ for(int f=0;f<TOTAL_BALAS;f++){ //solo gestionamos las balas necesarias If (activa[f]){ pos_x[f] += vel_x[f]; //si existe colisin, su index queda libre para reusar If (colision(f)) activa[f] = false; } } }
240 x 320 px
176 x 208 px
128 x 160 px
16 x 16 pxels
10 x 10 pxels
Parte IV
Algunos Ejemplos
Tora Tora
Mortadelo y Filemn
Dscent
Supersonix
Tragacocos 4
StarBugs