16 de Setembro, 20081 Projeto Conceitual de Jogos Saulo Souto...

Preview:

Citation preview

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/