Post on 07-Apr-2016
16 de Setembro, 2008 1
Projeto Conceitual de Jogos
Saulo Soutosaulo.souto@meantime.com.br
Geber Ramalhoglr@cin.ufpe.br
Desenvolvendo Jogos em J2ME para celulares
Aula 1Introdução à J2ME
16 de Setembro, 2008 2
Sobre quem vos fala...
Meantime Mobile Creations – Fundada em 2003, uma das principais desenvolvedora, publisher e distribuidora de jogos mobile da América Latina Um dos pioneiros mundiais na tecnologia J2ME Várias tecnologias wireless: J2ME, BREW, WAP, SMS e MMS Parceria com diversos fabricantes, publishers e operadoras Produzimos mais de 60 jogos para celulares Atua como publisher no Brasil, com parceria com todas as operadoras
16 de Setembro, 2008 3
Agenda Principais tecnologias Introdução a J2ME Wireless Game Design Criando nosso Jogo Sugestão de Melhorias Dicas de performance / redução de código
16 de Setembro, 2008 4
Principais Tecnologias SMS/MMS
– Jogos baseados na troca de mensagens (forca, quiz, penalty, leilões, etc.)
Brew (Binary Runtime Environment for Windows)– Ambiente de execução para chipset Qualcomm– C++ e API definida pela Qualcomm (animações, som, recursos
de rede, etc...)– Principal mercado: EUA
Flash Lite– Versão mais simples do Adobe Flash Player– Plataforma crescente
J2ME– Java otimizado para dispositivos com limitações– Adotado por todos os maiores players do mercado– API’s especificadas pela comunidade JCP– Padrão do mercado
16 de Setembro, 2008 5
Telefones Java (>650 dispositivos)http://developers.sun.com/techtopics/mobility/device/pub/device/list.do
20 dispositivos por página
16 de Setembro, 2008 6
Introdução a plataforma J2ME
SERVIDOR
DESKTOP
SMART-CARDS
CELULARES
16 de Setembro, 2008 7
Arquitetura J2ME
Device Hardware
Host Operating System
Configuration:
Profiles
LibrariesKVM
16 de Setembro, 2008 8
Universo J2ME Hoje… Java Community Process (JCP) Java Specification Request (JSR)
http://java.sun.com/javame/technology/jcp.jsp
16 de Setembro, 2008 9
Configurações Uma especificação que define o ambiente de software
para uma família de dispositivos, geralmente:– Os tipos e quantidade de memória disponível– Tipos de processadores e velocidade– Tipo de conexão de rede
Inclui um conjunto básico de classes Java É especificada pela JCP Connected Device Configuration (CDC)
– High end consumer devices Connected, Limited Device Configuration (CLDC)
– Low end consumer devices
16 de Setembro, 2008 10
CLDC 1.0 CLDC - Connected Limited, Device Configuration
– Dispositivos limitados com poucos recursos– Processador de, no mínimo 8 Mhz– A partir de 160 K de memória heap reservada pra Java– Acesso a rede com pouca largura de banda
Target Devices– Celulares– Two Way Pagers– Personal Organizers– etc.,
16 de Setembro, 2008 11
Escopo do CLDC Define:
– Linguagem Java e características da VM – I/O– Networking framework– Segurança– Internacionalização
Não define:– Gerenciamento do ciclo de vida da aplicação (instalação,
execução, deleção)– Interface com o usuário– Tratamento de eventos– Interação entre usuário e aplicação (comandos, etc…)
16 de Setembro, 2008 12
Limitação do CLDC CLDC 1.0 possui algumas limitações:
– Ausência de ponto flutuante – Ausência de Weak References– Ausência de Finalização
Não existe o método finalize() no CLDC– Não possui suporte a JNI.– Não possui a API de Reflection.– Ausência de daemon-threads e thread groups.– Limitação no suporte a Internacionalização
Permite a conversão de byte stream para Unicode e vice-versa
– Limitação no tratamento de Erros Apenas duas classes: java.lang.VirtualMachineError,
java.lang.OutOfMemoryError
16 de Setembro, 2008 13
Limitação do CLDC CLDC 1.1 adiciona alguns recursos ao CLDC 1.0:
– Adição de ponto flutuante – Adição de Weak Reference– Adição de suporte a nomes de Threads– Memória mínima de 162 para 192 kbytes
16 de Setembro, 2008 14
Pacotes do CLDC Herdados do J2SE
– java.lang– java.io– java.util
Específicos do CLDC– javax.microedition.io
16 de Setembro, 2008 15
Profiles Um profile ou “perfil” é uma coleção de API´s em Java
que complementa uma configuração a fim de prover habilidades para uma família de dispositivos
É especificada pela JCP O principal objetivo é garantir a interoperabilidade
entre uma família de dispositivos.
MIDP (Mobile Information Device Profile): Principal e presente na maioria absoluta dos dispositivos– MIDP 1.0– MIDP 2.0– MIDP 3.0 (em breve)
16 de Setembro, 2008 16
MIDP Mobile Information Device Profile (MIDP). MIDP define:
– Interface com o Usuário– Persistência (usando um modelo simples orientado a
registros)– Networking (estende o Generic Connection framework do
CLDC)– Ciclo de vida da Aplicação– Tratamento de eventos
Requisitos de Hardware (MIDP 1.0)– memória: 128 + 32 KB sobre CLDC.– tela mínima: 96 x 54 – 2 colors.– entrada: teclado, touch screen,...– connectividade: HTTP 1.1
16 de Setembro, 2008 17
Pacotes do MIDP 1.0MIDP Packages:
–javax.microedition.midletjavax.microedition.midlet.MIDlet
–javax.microedition.lcdui
–javax.microedition.rmsjavax.microedition.rms.RecordStore
16 de Setembro, 2008 18
Pacotes adicionais do MIDP 2.0MIDP 2.0 Packages:
–javax.microedition.mediajavax.microedition.media.Playerjavax.microedition.media.Control
–javax.microedition.media.controljavax.microedition.media.control.VolumeControl
–javax.microedition.lcdui.game
–javax.microedition.iojavax.microedition.io.PushRegistry
Layer
TiledLayer Sprite
LayerManager
GameCanvas
*
game
Canvas
lcdui
Displayable
16 de Setembro, 2008 19
O que é um MIDlet É uma aplicação MIDP:
– Possui uma classe Java que estende da classe MIDlet e implementa os seguintes métodos:
startApp() pauseApp() destroyApp()
– Possui um modelo de ciclo de vida similar aos Applets.
16 de Setembro, 2008 20
O que é um MIDlet (cont.) Gerenciado pelo “Java Application Manager” (JAM)
– Uma aplicação que deve vir acompanhando a implementação do MIDP e que controla a instalação, execução e remoção dos MIDlets
– Provê o ambiente de execução dos MIDlets– Trata todos os erros ocorridos durante a instalação e
execução dos aplicativos sem “derrubar” o dispositivo
16 de Setembro, 2008 21
Ciclo de vida dos MIDlets
16 de Setembro, 2008 22
MIDlet Suites e Descritores (JAD) Uma MIDlet Suite é um conjunto de arquivos
empacotados em um arquivo JAR – Uma suite deve possuir pelo menos um MIDlet– JAR contém: Arquivos .class , arquivos de imagem (.png),
manifest, …– MIDLets numa mesma suite podem compartilhar classes
e recursos contidos no JAR JAD (Java Application Descriptor)
– Pequeno arquivo texto que descreve uma Suite– Usado pela JAM para fazer verificações antes de baixar a
Suite– Pode ser usado para guardar propriedades da aplicação
MIDlet-1: AloMundo, , org.cesar.j2me.AloMIDletMIDlet-Name: Alô Mundo!MIDlet-Vendor: C.E.S.A.RMIDlet-Version: 1.0MIDlet-Jar-Size: 7808MIDlet-Jar-URL: HelloExamples.jar
16 de Setembro, 2008 23
Passos para o desenvolvimento
1 2 3
4 5 6
16 de Setembro, 2008 24
Ambiente de Desenvolvimento Editor texto + Sun Wireless Toolkit (WTK)
(free)– http://java.sun.com/products/sjwtoolkit/
NetBeans Mobility + WTK (free)– http://www.netbeans.org/products/mobility/
Eclipse + EclipseME + WTK (free)– http://www.eclipse.org/downloads/index.php– http://eclipseme.org/docs/installation.html
SDK´s dos fabricantes (Nokia, Motorola, SonyEricsson, Siemens,…)– http://developer.motorola.com/docstools/sdks/– http://forum.nokia.com/– http://developer.sonyericsson.com/site/global/home/p_home.jsp
16 de Setembro, 2008 25
Nosso ambiente…
16 de Setembro, 2008 26
Exercício 1- Criar o famigerado “Alô mundo!”
- Conceitos de Display- Criação e exibição de um High-Level Displayable- Conceitos de adição e tratamento de Comandos
16 de Setembro, 2008 27
Dica: Esteja com a API ao alcance...http://java.sun.com/javame/reference/apis/jsr118/