Programación de Juegos Móviles con J2ME

Slides:



Advertisements
Presentaciones similares
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
Advertisements

“Aplicación de Java en Tecnología Móvil”
Programación de Dispositivos Móviles Estructura de un programa en J2ME Rogelio Ferreira Escutia.
“Java para Dispositivos Móviles”
Complejidad Computacional
Bioestadística y su rol en la Salud Pública
Características Generales y Entornos de Desarrollo
Fernando Alonso Blázquez Graphic User Interfaces 25 de Marzo de 2004.
TOMOGRAFÍA POR EMISIÓN DE POSITRONES
Interprete o máquina real
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
Curso de java básico (scjp)
Curso de java básico (scjp)
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME Ing. Ronald Criollo.
Programación Interactiva Introducción a Java
Emulador telnet para handhelds
ÍNDICE Introducción. Trabajar con Applets. Definición de Applet.
DIRECTOR: ING. DIEGO MARCILLO CODIRECTOR: ING. JAIME ANDRANGO
INTRODUCCIÓN A JAVA.
Curso de JAVA. Iniciando con las Técnologias Java.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors MOVING JAVA INTO MOBILE PHONES Josep Pinyol.
FLAN “F- LINKS AND NODES”
Java Applets Ing. Martín Jiménez.
Concurrencia En el mundo real pasan muchas cosas a la vez
JME Java Micro Edition.
Optimización de aplicaciones
Teoria de los lenguajes Integrantes: Gabriel Pereyro Facundo Triay
MOVILFORUM: el foro movistar Octubre 2005 Telefónica Móviles España
EI, Profesor Ramón Castro Liceaga APLICACIONES DE JAVA CON PAGINAS WEB (Applets) UNIVERSIDAD LATINA (UNILA)
Java 2 Platform Enterprise Edition
JAVA FX Es un paquete de software que te permitirá desarrollar aplicaciones web para diferentes plataformas, desde un ordenador ordinario hasta teléfonos.
Jesús Arellano. La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma.
Sistema operativo.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Figure: Lenguajes. Generaciones de lenguajes de programación.
Irrumpiendo en el Mercado de Juegos para Celulares Exposición de Videojuegos Argentina 2005 Fernando Sansberro 29 de Octubre 2005.
Java Mayra M. Méndez Anota.
Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas.
Nuevas Aplicaciones en Equipos Móviles Pablo Roncagliolo B. Valparaíso – Chile 2006.
Introducción a la Programación. Lenguaje de Máquina.
IIC Creación de Videojuegos Nicolás Mery Programación de juegos en J2ME para celulares.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
IIC Creación de Videojuegos Sebastián Montabone Programación de juegos en J2ME para celulares.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Introducción a J2ME Bruno Rodríguez Rodríguez.
Tecnología java para dispositivos con recursos limitados
FICHEROS DE IMAGEN FUENTES WEB: Gráficos GIF & JPEG, Ramón Montero, 1998 Formatos para la Wb, Luciano Moreno, 2005.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
J2ME M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Graficación M.C. Juan Carlos Olivares Rojas. Agenda Diseño de juegos con DirectX. OpenGL. Java3D.
APLICACIONES EMPLEANDO TRANSFERENCIA POR PUERTOS ESTANDAR
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
“Programando con J2ME” Rogelio Ferreira Escutia. 2 MIDlet mínimo.
La Programación en Videojuegos M.C. Juan Carlos Olivares Rojas Huetamo, Michoacán, Marzo 2011.
JME Integrantes: Gabriel Centurión Maximiliano Felix.
JavaME Integrantes: Gabriel Centurión Maximiliano Felix.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
 Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión permanente o intermitente.
J2ME Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades.
Juan José López Espinosa Servicio de Desarrollo, ATICA Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Introducción a la Ingeniería de Sistemas Taller Computación Móvil Ing. Yassir Barceló
UNIVERSIDAD DE PANAMÁ FACULTAD DE INFORMÁTICA PREPARADOR DIAMILETHZY DIAZ SUIRY GÓNDOLA.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
API J2ME Fernando Jesús Sánchez Herrera Técnico de Apoyo de Investigación Universidad Extremadura.
Transcripción de la presentación:

Programación de Juegos Móviles con J2ME Fernando Sansberro Exposición de Videojuegos Argentina 19-20 Septiembre 2003

Programación de Juegos Móviles con J2ME - EVA 2003 Contenido La Industria de Juegos Móviles. Las Herramientas de Desarrollo. Desarrollo de Juegos Móviles. Programación Java con J2ME / MIDP 1.0. APIs de Teléfonos y MIDP 2.0. Conclusiones. Programación de Juegos Móviles con J2ME - EVA 2003

La Industria de Juegos Móviles Características Se encuentra en su infancia. Juegos desde Pacman hasta RPG multijugador. Esperando un juego que revolucione ($$$). Programación de Juegos Móviles con J2ME - EVA 2003

La Industria de Juegos Móviles Desarrollador Es una gran oportunidad. Costos de producción muy bajos. ¡Es como en los años ’80! En casa se puede hacer un juego comercial. Grupo de 2-3 personas 2-3 meses. Tecnología al alcance y manejable. Accesible para desarrolladores independientes. ¡El sueño del desarrollador independiente! Programación de Juegos Móviles con J2ME - EVA 2003

La Industria de Juegos Móviles Actores Developers (juego). Publishers (entre developer y carrier). Carriers (aire=red). Manufacturers (teléfonos). Programación de Juegos Móviles con J2ME - EVA 2003

Las Herramientas de Desarrollo Lenguajes Lenguajes posibles: Java C++ Programación Orientada a Objetos. Mucho material en la web: tutoriales, libros online, artículos, forums, código fuente, etc. Programación de Juegos Móviles con J2ME - EVA 2003

Las Herramientas de Desarrollo ¿Cuales son? Java J2ME (Java 2 Micro Edition) MIDP 1.0, MIDP 2.0, APIs fabricantes ExEn WGE C++ Mophun Brew Programación de Juegos Móviles con J2ME - EVA 2003

Las Herramientas de Desarrollo Elegir Plataforma J2ME 75 millones de teléfonos. No tiene modelo de negocios. Nokia, Motorola, Siemens, Samsung... ExEn Modelo de negocios y mejor API. Panasonic, Alcatel, Siemens, Philips, Vitelcomm. BREW 5 millones de teléfonos. Programación de Juegos Móviles con J2ME - EVA 2003

Las Herramientas de Desarrollo J2ME Sun J2ME (Java 2 Micro Edition). Sun J2ME Wireless Toolkit 2.0. IDE (JCreator, Sun ONE Studio, etc.). SDKs y APIs de fabricantes. Emuladores. Teléfonos. Programación de Juegos Móviles con J2ME - EVA 2003

Las Herramientas de Desarrollo J2ME - Tecnologías J2ME es un subconjunto de J2SE. MIDP (Mobile Information Device Profile): Conjunto de estándares para fabricantes de dispositivos definiendo memoria, teclas, tamaño de display, etc. Actualmente MIDP 1.0. MIDP 2.0 contiene transparencia, full screen, sprites, tiled layers, sonido, etc. Programación de Juegos Móviles con J2ME - EVA 2003

Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Ventajas Todos tienen un teléfono celular. Hay millones de potenciales compradores. Por ejemplo, Nokia piensa tener en el mercado entre 50 y 100 millones de teléfonos J2ME/Color para fines del 2003. Sencillo comparado con otras plataformas. Juegos chicos. Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Diseñando un Juego... La persona lleva el teléfono consigo a todos lados. Juega mientras espera el omnibus, el tren, en la clase aburrida, etc. Se juega en sesiones cortas. Es fácilmente interrumpible (implementar autosave). Masivo, fácil de entender, etc. Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Factores en contra Hay que trabajar con recursos limitados. Tamaño del display. Diferentes capacidades de los dispositivos. Interface del juego (teclas). No hay punto flotante en MIDP. Hay que usar API para cada fabricante (hoy). No hay acceso a pixels, rotaciones, scaling, etc. Hay que optimizar memoria, ejecución, .jar, etc. Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Variedad de Dispositivos Tamaño del display (ejemplo: Miki’s World) Serie 30 - 96x65 Serie 40 - 128x128 Serie 60 - 176x208 Cantidad de colores Blanco y Negro (Solo Serie 30). 4096 Colores (12 bits) (Serie 30, 40 y 60). Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Variedad de Dispositivos Ejemplo: Nokia Serie 30 Serie 40 Serie 60 Heap memory 200 K - 255 K 200 K 1.4 Mb Record Management System 140 K - 600 K 725 K – 4 Mb 4 Mb Máximo tamaño del archivo .JAR 32 K – 64 K 64 Kb 4 Mb Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Teclados Diferentes SERIE 40 NO SOPORTA TECLAS SIMULTANEAS Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Teclados Diferentes NOKIA 3300 Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Teclados Diferentes NOKIA 3650 Programación de Juegos Móviles con J2ME - EVA 2003

Desarrollo de Juegos Móviles Teclados Diferentes NOKIA N-GAGE Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Componentes a Desarrollar Sistema de sprites. Mapa de tiles. Game loop (Thread). Menú del juego. High score, Instrucciones, etc. (state machine). Animación inicial y carga de imágenes (Thread). Inteligencia Artificial. Multiplayer. Optimizar el código. Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Proceso de Desarrollo Preparar los documentos de especificación ayuda a evitar problemas mas tarde. Game Design Specification. Technical Design Specification. Budget / Schedule. Plan de Testing. Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Cómo es un MIDlet // HelloGameMIDlet.java import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloGameMIDlet extends MIDlet { private GameCanvas gameCanvas; private Display display; public HelloGameMIDlet() gameCanvas = new GameCanvas(); } protected void startApp() { display = Display.getDisplay(this); display.setCurrent(gameCanvas); gameCanvas.repaint(); gameCanvas.serviceRepaints(); } protected void pauseApp() {} protected void destroyApp(boolean u) {} Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Cómo es un MIDlet // GameCanvas.java import javax.microedition.lcdui.*; class GameCanvas extends Canvas { public void paint(Graphics g) g.setColor(0x000000); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(0xFFFFFF); g.drawString("Hello Game!", getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.TOP); } Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Double Buffer Image buffer = null; Graphics gOff = null; // En el constructor del Canvas... if (!isDoubleBuffered()) { buffer = Image.createImage(getWidth(), getHeight()); } Public void paint(Graphics g) { Graphics gr = (buffer != null) ? buffer.getGraphics() : g; dibujarFrame(gr); if (buffer != null) { gr.drawImage(buffer, 0, 0, Graphics.TOP | Graphics.LEFT); Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Game Loop public class GameThread extends Thread { public void run() while(running) long time = System.currentTimeMillis(); moveSprites(); checkCollision(); repaint(); serviceRepaints(); time = System.currentTimeMillis() - time; try { if (time < DELAY) Thread.sleep(DELAY-(int)time); } catch( Exception) {} } Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Optimizar tamaño del .JAR El juego se distribuye OTA como un MIDlet (archivos .jad y .jar) – ~64K. Obfuscation. Además hace difícil la Ingeniería Reversa. No crear demasiadas clases ni packages. Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Optimizar tamaño del .JAR Poner todos los gráficos en una sola imágen. Los gráficos son .PNG. Stripping. Header Datos Header Datos Header Datos Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Levantar los frames Graphics g; Image imagenTiles; try { imagenTiles = Image.createImage("/graphics.png"); } catch (Exception e) {error();} for (int i=0; i<50; i++) { sprite[i] = Image.createImage(8, 8); g = sprite[i].getGraphics(); g.drawImage(imagenTiles, -((i%10)*8), -((i/10)*8), Graphics.TOP|Graphics.LEFT); Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Optimizar tamaño del código Public abstract class Base { protected int value; public abstract void setValue(int v); } Public class Ext1 extends Base { public void setValue(int v) { value = v; Public class Ext2 extends Base { value = v * v; Public class Base { public static final int EXT1 = 0; public static final int EXT2 = 1; private int type; private int value; public Base(int t) {type = t;} public void setValue(int v) { switch(type) { case EXT1: value = v; break; case EXT2: value = v * v; } Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Garbage Collector En Java hay un thread del sistema que libera la memoria cuando no se referencia más un objeto. miObjeto = null; System.gc(); No se puede hacer new() dentro del juego porque es muy costoso. Implementar Pool de objetos. Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Optimizaciones Dirty Rectangles. Usar char[ ] en lugar de String y StringBuffer (hay que escribir rutinas de conversión a y desde int, por ejemplo). Usar arrays en lugar de HashTable y Vector. Minimizar el uso de clases. Reducir las invocaciones (no usar interface). Usar métodos final. Programación de Juegos Móviles con J2ME - EVA 2003

Programación con J2ME / MIDP 1.0 Ultimos detalles Que cumpla con las “Usability Guides”. Internacionalización (idiomas). Certificación da acceso a los mejores lugares de exposición para vender. Programación de Juegos Móviles con J2ME - EVA 2003

APIs de Teléfonos y MIDP 2.0 ¿Qué trae MIDP 2.0? Game API: Clase GameCanvas. Clase Layer (abstracta: Sprite o Tile). Clase Sprite. Clase TiledLayer (Mapa de tiles). Clase LayerManager. Full screen. Audio (MIDP 2.0 Media API es un subconjunto de Mobile Media API, JSR 135). Graphics.FillTriangle (3D engine básico). Programación de Juegos Móviles con J2ME - EVA 2003

APIs de Teléfonos y MIDP 2.0 ¿Qué traen las APIs? Full Canvas. Transparencia (Mask y Alpha Channel). Sprites. Layers (Mapas de Tiles). Sonido (WAV, .MIDI o Ring Tones). Otros (Vibración, Rotación de imágenes, etc). Programación de Juegos Móviles con J2ME - EVA 2003

Programación de Juegos Móviles con J2ME - EVA 2003 Conclusiones Es una gran oportunidad. Herramientas al alcance. Se necesita ser muy disciplinado. Diseñar primero (modelos de teléfonos). Programar un juego es sencillo. Que corra bien en el teléfono no es fácil pero una vez que se desarrollaron los componentes es sencillo. Emuladores y teléfonos. Programación de Juegos Móviles con J2ME - EVA 2003

Preguntas y Respuestas Programación de Juegos Móviles con J2ME - EVA 2003

Programación de Juegos Móviles con J2ME - EVA 2003 Contacto Fernando Sansberro fdsp@adinet.com.uy Programación de Juegos Móviles con J2ME - EVA 2003