Anda di halaman 1dari 7

Uma P roposta de Arquitetura de Jogos para Dispositivos Mveis Utilizando Padres de Projeto

Antonio Benedito Coimbra Sampaio Jr., Deyvisson de Queiroz Ribeiro de Melo, Filipe Avelino Corra, Juliano Augusto Garcia Sena UNAMA - Universidade da Amaznia Av. Alcindo Cacela, 287 66.060-902 Belm, Par Brasil
abc@unama.br, {dqrm,filipecorrea,juliano_sena}@hotmail.com

Abstract. The integration of the areas of computer science and telecommunications made possible a great market and technological evolution, popularizing not only the use of the mobile telephone, but also the availability of given services through Internet. This article presents, in a clear and objective form, the development of a game for cellular phones using the platform Java - J2ME and Design Patterns. Resumo. A integrao das reas de informtica e telecomunicaes possibilitou uma grande evoluo tecnolgica e de mercado, popularizando, no s o uso da telefonia mvel, como a disponibilidade de servios prestados via Internet. Este artigo apresenta de forma clara e objetiva a construo de um jogo para celular utilizando a plataforma Java J2ME e Padres de Projeto.

1. Introduo
A rea de telecomunicaes tem sofrido profundas transformaes desde meados dos anos 70, quando o avano da microeletrnica j indicava a convergncia entre as reas de informtica e telecomunicaes. Nos anos 80, comprovou-se que a evoluo no era apenas tecnolgica, mas tambm de mercado, quando as indstrias de informtica e telecomunicaes passaram a usar, alm dos componentes da microeletrnica, servios e aplicaes conjuntas, viabilizando o surgimento de novos mercados e popularizando, definitivamente, a telefonia mvel. A telefonia mvel representa, hoje, um mercado de mais de 90 milhes de usurios em todo o Brasil [Moraes 2006], e sua utilizao varia desde instrumento de trabalho, como no caso de um taxista que precisa ser encontrado a qualquer hora e em qualquer lugar, at um verdadeiro centro de informaes e lazer, podendo enviar e receber e-mails, assistir vdeos, ouvir msicas, rodar aplicativos que facilitem tarefas do dia-a-dia e executar jogos. justamente o desenvolvimento de jogos para esses dispositivos que objeto de estudo deste trabalho. Por assumir um expressivo mercado em expanso, grandes empresas esto investindo cada vez mais na rea da computao mvel, como a Sun Microsystems, que desenvolveu uma especificao de sua plataforma de desenvolvimento - Java - exclusivamente para dispositivos mveis, o J2ME (Java 2 Micro Edition).

Este artigo encontra-se organizado da seguinte forma: o captulo 1 introdutrio ; o captulo 2 apresenta uma viso geral da plataforma Java; o captulo 3 apresenta as especificaes do projeto; o captulo 4 apresenta o estudo de caso do jogo implementado e no captulo 5 so feitas algumas consideraes acerca da temtica em questo.

2. Viso Geral da Arquitetura


A tecnologia Java foi o padro adotado pelas grandes empresas de telefonia mvel para o desenvolvimento de suas aplicaes [Wells 2004]. O Java est dividido em trs arquiteturas: Standard Edition (J2SE), Enterprise Edition (J2EE) e Micro Edition (J2ME). A Figura 1 mostra como se d essa diviso.

Figura 1 Plataforma Java

O J2SE a tecnologia Java para computadores pessoais, notebooks e arquiteturas c om poder de processamento e memria considerveis. Atravs de um conjunto de rotinas e funes estabelecidos por software, as APIs (Application Programming Interface), so construdas e executadas a maioria das aplicaes. O J2EE utilizado em aplicaes corporativas que podem estar na internet ou no. Possui um grande nmero de APIs, nos quais a segurana a principal preocupao. ideal para a construo de servidores de aplicao, integrao de sistemas ou distribuio de servios para terceiros. Por fim, o J2ME o padro tecnolgico para aparelhos portteis, como telefones celulares e handhelds. A limitao da capacidade dos dispositivos fez com que a plataforma J2ME criasse configuraes e perfis trabalhados especialmente para a atuao em dispositivos mveis, assim, o desenvolvedor tem maior facilidade para lidar com as limitaes de processamento e memria (Figura 2).

Figura 2 Arquitetura J2ME

Entre as configuraes disponveis, destacam-se a CDC (Connected Device Configuration), destinada aos dispositivos portteis de alta capacidade, e o CLDC (Connected Limited Device Configuration), direcionada para os dispositivos pequenos e com limitaes de desempenho e memria. O CLDC consiste em uma mquina virtual reduzida (Kilobyte Virtual Machine) e um conjunto de classes mais apropriado para dispositivos pequenos e com limitaes de desempenho e memria [Almeida 2004]. O perfil MIDP (Mobile Information Device Profile), utilizado em celulares, consiste em um conjunto de APIs que suplementam as configuraes do CLDC, definindo funcionalidades e oferecendo bibliotecas especficas para escrever aplicaes para um dispositivo especfico [Muchow 2004].

3. Especificaes do Projeto
A UML (Unified Modeling Language) a linguagem padro utilizada para especificar, visualizar, documentar e construir artefatos de um sistema atravs de diferentes tecnologias de implementao [Booch, Rumbaugh e Jacobson 1999]. O objetivo deste projeto demonstrar o funcionamento de um jogo para dispositivos mveis, utilizando o paradigma de Orientao a Objetos, atravs da modelagem UML. apresentado, na Figura 3, o diagrama de classes do sistema.

Figura 3. Diagrama de Classes

O emprego dos padres de projeto pode melhorar de maneira substancial a arquitetura de uma soluo de software, criando classes extras que permitam isolar as partes de um projeto, tornando-as independentes e mais flexveis [Jandl 2003]. Para

compor o diagrama acima apresentado, foram utilizados dois tipos de padres de projeto, o Composite View e o Model-View-Controller (MVC). O padro de projeto Composite View permite agrupar elementos simples em um container, formando figuras mais complexas ou interfaces grficas. A classe GameRunnableModel o container do padro de projeto e engloba elementos da View, como os Sprites e TiledLayers. Atravs da separao em camadas, o padro de projeto MVC permite a troca dos componentes entre as camadas de visualizao e controle, sem afetar a lgica da aplicao (camada de modelo). A seguir, sero explicadas detalhadamente essas camadas: 3.1. Camada de Controle Ao executar a aplicao, o Sistema Operacional do celular instancia um objeto da classe MIDletController que determinar os estados do ciclo de vida do jogo (Figura 4). Para cada mudana de estado, h um mtodo relacionado na classe que pode ser implementado pelo desenvolvedor, para que o programa responda de alguma forma s aes do usurio. Como se observa na Figura 4.

Figura 4. Diagrama de Estados do MIDletController

O mtodo startApp() chamado no incio da execuo do jogo e definir o componente que ser mostrado na tela. Quando houver o recebimento de uma ligao ou qualquer interrupo por parte do sistema operacional do aparelho, o mtodo pauseApp() ser o responsvel por parar a execuo do jogo. O mtodo destroyApp() utilizado para finalizar o programa; nele, podem ser implementados cdigos para armazenar informaes que podem ser recuperadas na prxima vez que o jogo for aberto. 3.2. Camada de Visualizao Corresponde a cada elemento grfico (esttico ou dinmico) que exibido na tela. Os elementos estticos correspondem s classes que estendem de Form e List, como as telas de introduo e menu. Os elementos dinmicos so as classes que produzem efeitos de animao, como Sprite e TiledLayer.

Sprites so uma coleo de imagens (ou frames) bidimensionais que representam todos os estados de uma entidade grfica. Quando o jogo est funcionando, a comutao entre estes quadros d a iluso de uma animao (Figura 5.A). As TiledLayers so as figuras que, em conjunto, compem o cenrio do jogo, como bordas e plano de fundo (Figura 5.B), [Hamer 2004].

Figura 5. Sprites e TiledLayers

3.3. Camada de Modelo A classe responsvel pela camada de modelo a GameRunnableModel que subclasse de GameCanvas (uma das classes do pacote Game API, da MIDP 2.0), cuja funo principal responder as entradas do usurio e controlar os elementos que compem as telas. Nela implementada toda a lgica de negcio do jogo (posio e atualizao dos elementos e deteco de coliso).

4. Estudo de Caso: Batalha Naval


Durante o desenvolvimento de jogos para celulares, preciso levar em considerao diversos aspectos, como : o tamanho dos grficos, controles de entrada, poder de processamento e memria do dispositivo. Para o desenvolvimento do jogo Batalha Naval, foi utilizado o emulador J2ME Wireless Toolkit 2.2 (Figura 6.A) da Sun Microsystems, que permite que programas funcionem em uma plataforma diferente das quais foram escritos originalmente. Ao contrrio da simulao, que tenta somente reproduzir o comportamento de um programa, o emulador tenta modelar em vrios nveis os estados do dispositivo de hardware.

Figura 6. Telas do Jogo

4.1. Funcionamento do Jogo Com o jogo devidamente instalado no celular, o usurio ao iniciar a aplicao instancia um objeto da classe MIDletController, que funcionar como o controlador do jogo (explicado no captulo 3.1 deste artigo). Quando o estado do MIDletController for ativo, o jogo ser iniciado, fazendo uma chamada a uma view temporria IntroForm que exibe a tela de abertura (Figura 6.A) e redireciona para a view MenuList (Figura 6.B). Na classe MenuList, sero apresentadas as opes do jogo, e o usurio poder escolher navegando atravs do cursor do celular e confirmando a alternativa desejada com o boto SELECIONAR. Caso o usurio desista da utilizao do jogo, o boto SAIR finaliza a aplicao chamando o mtodo destroyApp() do controlador. Passo 1: Iniciar Jogo Quando a opo Iniciar Jogo selecionada, a classe MIDletController instancia um objeto da classe GameRunnableModel, pedindo ao jogador que posicione os seus navios. Passo 2: Posicionar Navios Cada jogador ter o espao de uma matriz 6 x 6 e dever posicionar seus navios na seguinte ordem: 2 lanchas (ocupando uma posio cada), 1 submarino (ocupando trs posies) e 1 porta avio (ocupando cinco posies). As teclas 1 e 3 do celular determinam a orientao (horizontal ou vertical) que a embarcao ir assumir na matriz e o boto POSICIONAR confirma a entrada (Figura 6.C e 6.D). Passo 3: Atirar Quando ambos os jogadores posicionarem seus navios o jogo comear e ser exibida a tela de combate (Figura 6.E). Utilizando as teclas direcionais, o jogador mover um seletor pela matriz adversria e escolher a posio onde deseja atirar (Figura 6.F), a tecla ATIRAR executa a ao. As tentativas so alternadas e cada tiro que acertar em um navio adversrio dar a este jogador o direito de atirar outra vez. Passo 4: Fim de Jogo O jogador que destruir a esquadra adversria primeiro ser o vencedor. Ao acertar a ltima posio do navio, na matriz, a classe WinForm exibe a mensagem de que este jogador venceu o jogo (Figura 6.G).

5. Algumas Concluses
Com a popularizao da telefonia mvel e a constante evoluo da microeletrnica, o mercado de jogos para celulares cresce a cada dia e a sua atualizao se faz necessria sempre. O desenvolvimento deste trabalho visou projetar um jogo para dispositivos mveis utilizando a tecnologia Java e empregando padres de projeto que proporcionem a reutilizao de solues, facilitando a documentao e o aprendizado dos sistemas de software. Baseado no modelo do diagrama de classes proposto, utilizando a combinao dos padres de projeto MVC e Composite View, novos programadores podero implementar jogos preocupando-se apenas com as especificaes e regras de negcios do jogo, isolando as partes do projeto e tornando-as independentes e mais flexveis. O resultado ser um sistema mais organizado e simples, fcil de ser ma ntido e expandido. O projeto e desenvolvimento do jogo foram realizados no Ncleo de Tecnologias Web (NTEC) da Universidade da Amaznia. Para testes, foi utilizado o aparelho MOTOROLA 388.

6. Referncias Bibliogrficas
Almeida, L. (2004) Introduo J2ME e Programao MIDP. Revista Mundo Java, Curitiba, nmero 5, pginas 20-27. Booch, G., Rumbaugh, J. e Jacobson, I. (1999) The Unified Modeling Language User Guide: The Ultimate Tutorial to the UML from the Original Designers, Addison Wesley Longman, Inc. Hamer, C. (2004) J2ME Games with MIDP2. Apress. Jandl, P. (2003) Mais Java. Futura. Moraes, M. (2006) Telefonia celular conquista mais de 90 milhes de assinantes no Pas, www.anatel.gov.br/Tools/frame.asp?link=/biblioteca/releases/2006/release_17_05_2 006mm.pdf, Maio. Muchow, J. W. (2004) Core J2ME: Tecnologia & MIDP . Pearson Makron Books. Wells, M. (2004) J2ME game programming. Premier Press.

Anda mungkin juga menyukai