Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
implementacao de suporte a modelos de personagem nao jogador

implementacao de suporte a modelos de personagem nao jogador

Ratings: (0)|Views: 51 |Likes:
Published by Ricardo Palma

More info:

Published by: Ricardo Palma on Dec 29, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/01/2013

pdf

text

original

Implementac\u00b8\u02dc
ao de Suporte a Modelos de Personagem N\u02dc
ao Jogador em
Dispositivos M\u00b4
oveis na Mobile 3D Game Engine
Paulo C\u00b4
esar Rodacki Gomes
Cl\u00b4
audio Jos\u00b4
e Est\u00b4
acio
FURB - Universidade Regional de Blumenau
DSC - Departamento de Sistemas e Computac\u00b8\u02dc
ao

Vitor Fernando Pamplona
UFRGS - Universidade Federal do Rio Grande do Sul
PPGC - Programa de P\u00b4

os-Graduac\u00b8\u02dc
ao em Computac\u00b8\u02dc
ao
Instituto de Inform\u00b4
atica
Figura 1:Personagem Knight em 3 diferentes modos de visualizac\u00b8\u02dc
ao
Resumo
Nos\u00b4
ultimos anos, jogos 3D para celulares t\u02c6
em recebido signi\ufb01ca-
tiva atenc\u00b8\u02dc
ao dos pesquisadores e incentivos \ufb01scais do estado bra-
sileiro. Ainda longe da qualidade gr\u00b4

a\ufb01ca dos jogos para compu- tadores e consoles, os jogos para celulares, que sofrem pela se- vera limitac\u00b8\u02dc

ao de mem\u00b4

oria e processamento dos aparelhos moder- nos, caminham a passos lentos. Recentes investidas contra es- tas difuldades criaram motores de jogos [Gomes and Pamplona 2005], [de Albuquerque Mac\u02c6

edo Jr. 2005] com a \ufb01nalidade de faci- litar o desenvolvimento e otimizar os jogos. Este trabalho apresenta a implementac\u00b8\u02dc

ao do m\u00b4
odulo de importac\u00b8\u02dc
ao e visualizac\u00b8\u02dc
ao de Per-
sonagens N\u02dc

ao Jogador (PNJs) em um dos motores de jogos citados anteriormente, oMobile 3D Game Engine (M3GE). Desta forma, foi adicionado o suporte a um formato de modelos chamadoQuake

II\u2019s Models(MD2), muito utilizado para a modelagem de perso-
nagens para jogos, pois incorpora recursos de animac\u00b8\u02dc
ao quadro a
quadro. O trabalho n\u02dc
ao discute quest\u02dc
oes relativas`
a intelig\u02c6
encia dos
PNJs. S\u02dc
ao apresentados detalhes da implementac\u00b8\u02dc
ao de importac\u00b8\u02dc
ao
e visualizac\u00b8\u02dc
ao dos modelos, bem como a demonstrac\u00b8\u02dc
ao de exem-
plos e testes de desempenho de forma a validar a soluc\u00b8\u02dc
ao proposta.
Keywords::Personagem n\u02dc
ao Jogador (PNJ), Motores de Jogos,
M3G, Dispositivos M\u00b4
oveis, MD2
Author\u2019s Contact:
rodacki@inf.furb.br
{claudioestacio, vitorpamplona}@gmail.com
1 Introduc\u00b8\u02dc
ao
Os jogos eletr\u02c6
onicos para dispositivos m\u00b4
oveis s\u02dc
ao uma opc\u00b8\u02dc

ao de entretenimento que vem despertando cada vez mais interesse tanto por parte dos jogadores quanto pela ind\u00b4

ustria de software brasileira. Tal categoria de jogos vem se modernizando constantemente, se- guindo a evoluc\u00b8\u02dc

ao do hardware, notoriamente dos telefones celu-
lares, onde dentre os recursos mais importantes, est\u02dc
ao as recentes
implementac\u00b8\u02dc
oes e melhorias nas rotinas de animac\u00b8\u02dc
ao 3D.
Sob uma\u00b4
otica retrospectiva, em poucos anos os jogos para con-
soles e computadores evolu\u00b4\u0131ram na simplicidade dos gr\u00b4
a\ufb01cos em
duas dimens\u02dc
oes (2D) e sons reproduzidos com algumas notas de
bips, para um mundo mais realista, com visualizac\u00b8\u02dc
ao de ambien-
tes 3D, com mais ac\u00b8\u02dc

ao e sons com recursos interativos e 3D. Visto esse processo evolutivo dos jogos para computadores, pode-se es- perar que o mesmo deva acontecer nos jogos para celulares. Atu-

almente a maioria dos jogos nesta plataforma s\u02dc
ao em 2D, mas j\u00b4

a existem diversas iniciativas para desenvolvimento em 3D. Para fa- cilitar o desenvolvimento dos jogos, utilizam-se os motores, que s\u02dc

ao bibliotecas de software respons\u00b4
aveis pelos ciclos de interac\u00b8\u02dc
ao
existentes em um jogo, as quais s\u02dc
ao capazes de tratar a maioria das
necessidades existentes na sua implementac\u00b8\u02dc
ao. A Mobile 3D Game
Engine (M3GE) [Gomes and Pamplona 2005]\u00b4

e um motor de jo- gos para telefones celulares baseado na Java Mobile 3D Graphics API (M3G) [Nokia 2004] e j\u00b4

a possui diversas funcionalidades im-
plementadas, tais como, importac\u00b8\u02dc
ao e renderizac\u00b8\u02dc
ao de ambientes
3D, criac\u00b8\u02dc
ao de c\u02c6
ameras, tratamento de eventos, movimentac\u00b8\u02dc
ao de
personagens e c\u02c6
ameras pelo cenario e tratamento de colis\u02dc
ao. Cabe
ressaltar que a M3GE\u00b4
e a primeira implementac\u00b8\u02dc
ao livre de motor
de jogos 3D em Java que se tem not\u00b4\u0131cia.
`
A medida que os jogos em dispositivos m\u00b4
oveis v\u02dc
ao se tornando
mais complexos e so\ufb01sticados, o n\u00b4\u0131vel de realismo gr\u00b4
a\ufb01co dever\u00b4

a levar os jogadores a acreditar que os jogos ocorrem em mundos muito mais realistas. Um componente importante desse crescente n\u00b4\u0131vel de realismo s\u02dc

ao os Personagens N\u02dc
ao Jogador (PNJs). Os PNJs
s\u02dc
ao os personagens presentes no jogo e que n\u02dc
ao s\u02dc

ao controlados pelo jogador, mas que se relacionam de alguma forma com ele. Por exemplo, num jogo de primeira pessoa, os PNJs s\u02dc

ao os personagens
inimigos do jogador, que devem ser acertados por seus disparos.
Este artigo apresenta detalhes da implementac\u00b8\u02dc
ao de uma extens\u02dc
ao
da M3GE que consiste na integrac\u00b8\u02dc
ao de Personagem N\u02dc
ao Jogador
(PNJ). Tal integrac\u00b8\u02dc
ao\u00b4
e feita com recursos de importac\u00b8\u02dc
ao de mode-
los so\ufb01sticados, incorporac\u00b8\u02dc
ao dos mesmos ao grafo de cena dispo-
nibilizado pela M3G, e, naturalmente, a renderizac\u00b8\u02dc
ao destes mode-
los na cena. A implementac\u00b8\u02dc
ao considera a importac\u00b8\u02dc

ao de modelos de personagens animados no formato de arquivoQuake II\u2019s Models (MD2) [Henry 2004]. O MD2\u00b4

e um dos formatos mais populares
para inclus\u02dc
ao de PNJs em jogos 3D. O presente trabalho n\u02dc
ao aborda
quest\u02dc
oes de suporte a intelig\u02c6
encia arti\ufb01cial para os PNJs.
O artigo est\u00b4
a estruturado da seguinte forma: primeiramente, a
sec\u00b8\u02dc
ao de introduc\u00b8\u02dc
ao contextualiza o problema, e as duas pr\u00b4
oximas
sec\u00b8\u02dc
oes apresentam uma breve revis\u02dc

ao das principais tecnologias para desenvolvimento de jogos para telefones celulares, incluindo informac\u00b8\u02dc

oes gerais a respeito de motores de jogos. A seguir, s\u02dc

ao comentados alguns trabalhos correlatos, detalhando-se as princi- pais caracter\u00b4\u0131sticas do motor de jogosMobile 3D Game Engine (M3GE). Ap\u00b4

os,\u00b4
e apresentado o conceito de Personagem N\u02dc
ao
Jogador e detalhes dos modelos MD2. Finalmente,\u00b4
e discutida
a implementac\u00b8\u02dc
ao de suporte`
a importac\u00b8\u02dc

ao de modelos MD2 na M3GE, sendo posteriormente apresentados os resultados e con- clus\u02dc

oes do artigo.
2 Jogos em Dispositivos M\u00b4
oveis
O avanc\u00b8o da tecnologia dos celulares nos\u00b4
ultimos anos fez com que
esses aparelhos deixassem de ser apenas usados para transmiss\u02dc
ao
e recepc\u00b8\u02dc

ao de voz e passassem a ter diversas utilidades. O de- senvolvimento de jogos para tais dispositivos vem ganhando cada vez mais import\u02c6

ancia, e as soluc\u00b8\u02dc
oes mais utilizadas pela comuni-
dade de desenvolvedores s\u02dc
ao a Sun J2ME, a Qualcomm BREW e a
Mophun [Paiva 2003].
A Sun Java 2 Micro Edition (J2ME)\u00b4
e uma vers\u02dc
ao da linguagem
Java para dispositivos m\u00b4
oveis, sendo a primeira iniciativa nesse seg-
mento em 2000. Para sua aplicac\u00b8\u02dc
ao rodar em um celular, basta que
o celular possua uma m\u00b4
aquina virtual Java, como a Kilobyte Virtual
Machine (KVM) [M\u00a8
uller et al. 2005].
Em janeiro de 2001 a Qualcomm lanc\u00b8ou o Binary Runtime Envi-
roment for Wireless (BREW). Para este ambiente as aplicac\u00b8\u02dc
oes s\u02dc

ao desenvolvidas em C/C++, e depois de compiladas rodam em um chip separado do processador principal do dispositivo. Esta arqui- tetura apresenta caracter\u00b4\u0131sticas semelhantes a J2ME por apresentar suporte a APIs OpenGL ES [Khronos Group 2004]. Ainda existe a Application Program Interface (API) desenvolvida pela pr\u00b4

opria empresa, a QX Engine, que tem recursos que facilitam o desenvol- vimento de jogos. Uma caracter\u00b4\u0131stica interessante apresentada pelo BREW\u00b4

e que para uma aplicac\u00b8\u02dc
ao ser comercializ\u00b4

avel, ela deve estar cadastrada na empresa e passar por rigorosos testes, para evitar que haja erros em tempo de execuc\u00b8\u02dc

ao. Isto viabiliza uma certi\ufb01cac\u00b8\u02dc
ao de
qualidade e originalidade`
a aplicac\u00b8\u02dc
ao [M\u00a8
uller et al. 2005].
O padr\u02dc
ao Mophun foi desenvolvido pela sueca Synergenix.\u00b4
E me-
nos usado em relac\u00b8\u02dc

ao ao Java e ao BREW, mas tem como carac- ter\u00b4\u0131stica deixar os jogos menores, os quais \ufb01cam entre metade e um terc\u00b8o do tamanho das outras duas soluc\u00b8\u02dc

oes [Paiva 2003].
3 Motores de Jogos 3D
Um motor de jogo\u00b4
e o corac\u00b8\u02dc
ao de qualquer jogo eletr\u02c6

onico. Inici- almente os motores eram desenvolvidos para fazer parte do jogo e serem usados somente para este \ufb01m espec\u00b4\u0131\ufb01co. Visto que diferen- tes jogos t\u02c6

em similaridades em seu processo de desenvolvimento, os motores passaram a implementar funcionalidades comuns a de- terminados tipos de jogos. Assim seu c\u00b4

odigo fonte\u00b4
e reutilizado,
isto\u00b4
e, func\u00b8\u02dc

oes que foram usadas num determinado jogo, podem ser usadas em outros que apresentam caracter\u00b4\u0131sticas semelhantes [Har- rison 2003].

Conforme de\ufb01nido por Mac\u02c6
edo J\u00b4
unior [de Albuquerque Mac\u02c6
edo
Jr. 2005], um motor de jogos 3D\u00b4
e um sistema que produz
uma visualizac\u00b8\u02dc
ao em tempo real respondendo aos eventos da
aplicac\u00b8\u02dc
ao. Para o funcionamento desse processo deve-se utilizar
v\u00b4
arias t\u00b4
ecnicas, algoritmos, estruturas de dados e conhecimentos
matem\u00b4

aticos. Estes aspectos \ufb01cam transparentes quando se desen- volve um jogo utilizando motor de jogos 3D pois o desenvolvedor \ufb01ca abstra\u00b4\u0131do dessas funcionalidades, preocupando-se apenas com a l\u00b4

ogica e o enredo do jogo.
O motor disponibiliza as principais caracter\u00b4\u0131sticas para o desen-
volvimento de jogos, como por exemplo: renderizac\u00b8\u02dc
ao de cen\u00b4
arios
3D, recursos de comunicac\u00b8\u02dc
ao em rede, tratamento de eventos, ma-
peamento de texturas,scripting, intelig\u02c6
encia arti\ufb01cial, entre ou-
tros [Finney 2004]. O principal foco dos motores 3D est\u00b4
a na quali-
dade e no desempenho computacional da apresentac\u00b8\u02dc
ao visual (ren-
dering) do jogo. Como os ambientes s\u02dc
ao tridimensionais, diversos
c\u00b4
alculos s\u02dc
ao usados para renderizar cada quadro da visualizac\u00b8\u02dc
ao,
juntando-se os v\u00b4
ertices com as texturas e aplicando efeitos. Al-
guns exemplos de motores de jogos 3D s\u02dc

ao: Crystal Space [Crys- tal Space 2004], Ogre 3D [Ogre3D 2005], Genesis3D [Eclipse En- tertainment 2004], 3D Game Studio [Conitec Corporation 2004] e Fly3D [Paralelo Computac\u00b8\u02dc

ao 2004].
A \ufb01gura 2 apresenta a arquitetura de um motor de jogos 3D. O
gerenciador principal\u00b4
e o centro dos demais n\u00b4\u0131veis, sendo o res-
pons\u00b4
avel por interligar cada funcionalidade do motor de jogos. O
gerenciador de entrada organiza e repassa as informac\u00b8\u02dc
oes vindas do
usu\u00b4
ario. O gerenciador gr\u00b4
a\ufb01co apresenta a cena atual na sa\u00b4\u0131da do
dispositivo, neste caso a tela. O gerenciador de intelig\u02c6
encia arti\ufb01cial
gerencia os personagens n\u02dc
ao jogadores, de\ufb01nindo seus movimen-
tos. O gerenciador de m\u00b4
ultiplos jogadores gerencia a comunicac\u00b8\u02dc

ao com os demais jogadores. O gerenciador de mundo armazena o grafo de cena do jogo onde est\u02dc

ao interligados todos os objetos. O gerenciador de objetos tem a \ufb01nalidade de inserir, alterar e excluir os objetos do jogo. O objeto do jogo armazena as informac\u00b8\u02dc

oes de cada entidade do jogo. O gerenciador de som controla os efeitos sonoros provenientes dos objetos, enviando para a sa\u00b4\u0131da, que neste caso s\u02dc

ao os alto-falantes do dispositivo. E por\u00b4
ultimo o editor de
cen\u00b4
ario\u00b4
e um n\u00b4\u0131vel a parte do restante que tem por \ufb01nalidade criar
a estrutura inicial da visualizac\u00b8\u02dc
ao dos jogos, composta pelos cha-
mados \u201cmapas\u201d. Tamb\u00b4
em pode ser realizada no editor de cen\u00b4
ario a
criac\u00b8\u02dc
ao dos personagens 3D [Gomes and Pamplona 2005].
Usu\u00e1rio
Gerenciador
de entrada
Gerenciador
principal
Gerenciador
de IA
Gerenciador de
m\u00faltiplos jogadores
Gerenciador
gr\u00e1\ufb01co
Tela
Editor de
cen\u00e1rios
Gerenciador
do mundo
Gerenciador
de som
Gerenciador
de objetos
Ampli\ufb01cadores
Objeto
do jogo
Figura 2:Arquitetura de um motor de jogos
4 TrabalhosCorrelatos
O desenvolvimento de motores de jogos para dispositivos m\u00b4
oveis\u00b4
e
uma\u00b4
area ainda recente, mas podemos citar tr\u02c6
es projetos acad\u02c6
emicos
relacionados ao presente trabalho: o wGEN, o mOGE e a M3GE.
O wGEN\u00b4
e umframework de desenvolvimento de jogos 2D para
dispositivos m\u00b4
oveis [Pessoa 2001]. Ele\u00b4
e o pioneiro na utilizac\u00b8\u02dc
ao de
J2ME num motor de jogos, por\u00b4
em n\u02dc
ao tem recursos 3D. O wGEN
apresenta como componentes e funcionalidades: representac\u00b8\u02dc
ao do
objeto do jogo, representac\u00b8\u02dc
ao do mapa do jogo, gerenciamento
de objetos, gerenciamento de entrada, gerenciamento gr\u00b4

a\ufb01co, ge- renciamento do jogo, gerenciamento de rede, gerenciamento de aplicac\u00b8\u02dc

ao e integrac\u00b8\u02dc
ao com o editor de cen\u00b4
arios.
Outro motor de jogos com caracter\u00b4\u0131sticas semelhantes com este
trabalho\u00b4
e o Mobile Graphics Engine (mOGE) [de Albuquer-
que Mac\u02c6
edo Jr. 2005]. Este projeto teve como objetivo prover
diversas t\u00b4
ecnicas de computac\u00b8\u02dc
ao gr\u00b4
a\ufb01ca 3D. Para a renderizac\u00b8\u02dc
ao,
o mOGE utiliza opipeline gr\u00b4
a\ufb01co, que\u00b4
e a decomposic\u00b8\u02dc
ao do pro-
cesso de transformac\u00b8\u02dc
ao de objetos 3D em imagens, composto pe-
los est\u00b4
agios de aplicac\u00b8\u02dc
ao, de geometria e de rasterizac\u00b8\u02dc
ao. Para a
representac\u00b8\u02dc
ao de objetos foi utilizada malha de tri\u02c6
angulos. Para a
estrutura dos objetos presentes no jogo\u00b4
e utilizado um grafo de cena.
Da mesma forma que na M3GE, a utilizac\u00b8\u02dc
ao de um grafo de cena
facilitou o processo de animac\u00b8\u02dc
ao dos objetos. Este motor de jogos
apresenta ainda projec\u00b8\u02dc
ao de c\u02c6
ameras, detecc\u00b8\u02dc
ao de colis\u02dc
ao e efeitos
especiais baseados em imagens [de Albuquerque Mac\u02c6
edo Jr. 2005].
No\u02c6
ambito de jogos comerciais, o motor 3D mais conhecido\u00b4

e o Ed- gelib [Elements Interactive 2007]. Desenvolvido em C++ para sis- tema operacional Symbian pela empresa Elements Interactive, este motor j\u00b4

a\u00b4
e bastante usado por uma grande quantidade de desenvol-
vedores. Possui recursos para gr\u00b4
a\ufb01cos 2D e 3D, com suporte para
OpenGL ES, al\u00b4
em de recursos para desenvolvimento de jogos em
rede,\u00b4
audio, gerenciamento de mem\u00b4
oria e de arquivos, entre outros.

Recentemente foi anunciado pela empresa Fishlabs o motor de jo- gos Abyss 2.0 [FISHLABS Entertainment GmbH 2007]. Com- pat\u00b4\u0131vel com celulares que rodem a JSR-184 [Nokia 2003], este mo- tor apresenta recursos de renderizac\u00b8\u02dc

ao 3D, juntamente com um mo-
tor de Intelig\u02c6
encia Arti\ufb01cial e F\u00b4\u0131sica de corpos R\u00b4\u0131gidos.
Nenhum dos motores citados possuem funcionalidades espec\u00b4\u0131\ufb01cas
para a importac\u00b8\u02dc
ao de PNJs, por\u00b4
em o grafo de cena do mOGE\u00b4
e um
dos recursos\u00b4
uteis para uma eventual implementac\u00b8\u02dc
ao de inserc\u00b8\u02dc
ao de
PNJs nos jogos, de forma que o motor possa desenh\u00b4
a-los na cena.
5 Mobile 3D Game Engine
A Mobile 3D Game Engine (M3GE)\u00b4
e um prot\u00b4
otipo de mo-
tor de jogos para dispositivos m\u00b4

oveis com suporte a M3G. Ela apresenta diversas funcionalidades implementadas, tais como: importac\u00b8\u02dc

ao e renderizac\u00b8\u02dc
ao de ambientes 3D, criac\u00b8\u02dc
ao
de c\u02c6
ameras, tratamento de eventos, movimentac\u00b8\u02dc
ao de persona-
gens no cen\u00b4
ario e tratamento de colis\u02dc
ao. Na p\u00b4
agina do pro-
jeto (https://m3ge.dev.java.net/),\u00b4

e disponibilizado um exemplo de um jogo com as funcionalidades implementadas, onde um cen\u00b4

ario 3D com objetos est\u00b4
aticos pode ser visualizado. A \ufb01-
gura 3 demonstra duas telas desta aplicac\u00b8\u02dc
ao exemplo. O jogador,
representado por um cubo,\u00b4
e controlado pelos comandos do teclado
do celular. A movimentac\u00b8\u02dc
ao do jogador est\u00b4
a sujeita ao tratamento
de colis\u02dc
oes e possui capacidade de disparar tiros nos demais obje-
tos da cena. A implementac\u00b8\u02dc
ao da M3GE\u00b4
e feita sobre a M3G que
por sua vez\u00b4
e implementada atrav\u00b4
es da J2ME. A M3G\u00b4
e uma API
Gr\u00b4
a\ufb01ca 3D para ser utilizada em dispositivos m\u00b4
oveis com suporte
a programac\u00b8\u02dc
ao Java. Esta foi criada em func\u00b8\u02dc

ao da maioria dos jo- gos para esse tipo de dispositivo ser em 2D e haver uma demanda latente por jogos 3D em celulares [H\u00a8

ofele 2005].
Figura 3:Aplicac\u00b8\u02dc
ao exemplo da M3GE
O motor M3GE foi projetado anexo`
a M3G, signi\ufb01cando que se
pode acessar diretamente a M3G na aplicac\u00b8\u02dc
ao, se necess\u00b4
ario. Isto
d\u00b4
a maior \ufb02exibilidade na implementac\u00b8\u02dc
ao dos jogos. O motor foi
dividido em dois grandes componentes: o respons\u00b4
avel pela leitura
dos arquivos de entrada e ocore, al\u00b4
em de um terceiro componente
de classes utilit\u00b4
arias. A \ufb01gura 4 ilustra a arquitetura da M3GE, seus
principais componentes e classes. Para se montar o cen\u00b4
ario do jogo
s\u02dc
ao lidos tr\u02c6
es tipos de arquivos: um com as con\ufb01gurac\u00b8\u02dc
oes gerais do
ambiente, um com as malhas de pol\u00b4\u0131gonos e outro com uma s\u00b4
erie de
texturas. As classes ObjLoader e MbjLoader s\u02dc
ao respons\u00b4

aveis por gerenciar os objetos, elas criam os objetos da classe Object3D e os n\u00b4

os do grafo de cena. A classe Object3D\u00b4

e a classe base de todos os objetos 3D vis\u00b4\u0131veis da M3G. Ela inclui o nodo pai ou qualquer outro nodo no grafo de cena, uma animac\u00b8\u02dc

ao, uma textura, entre outros.
Em cada nodo do grafo est\u02dc
ao presentes um ou mais grupos, que por
sua vez s\u02dc
ao interligados aos objetos 3D da classe Object3D. Estes
objetos podem ser modelos gr\u00b4
a\ufb01cos 3D, c\u02c6
ameras, luzes, imagens
2D, entre outros.
O componentecore, na \ufb01gura4\u00b4

e o motor de jogos propriamente dito, que tem como gerenciador de entrada a classe KeysMana- ger. A classe Player implementa o personagem principal do jogo. A classe EngineCanvas\u00b4

e o gerenciador principal. Para criar as
c\u02c6
ameras existe a classe Cameras. Para fazer o tratamento de colis\u02dc

ao trabalham juntas as classes Con\ufb01guration e CollisionDetection. A classe UpdateListener deve ser implementada pelo desenvolvedor do jogo para tratar funcionalidades na renderizac\u00b8\u02dc

ao, ou da l\u00b4
ogica
atrav\u00b4
es da adic\u00b8\u02dc
ao de eventos. E a classe UpdatesceneTimertask im-
plementa rotinas para a chamada de renderizac\u00b8\u02dc
ao num determinado
intervalo de tempo.
No pacote de carga de arquivos, a classe Loader\u00b4
e a interface para
duas classes, a ObjLoader e a MbjLoader. A M3G utiliza arqui-
UpdateListener
UpdatesceneTimertask
EngineCanvas
Keysmanager
Con\ufb01gurationCollisionDetection
Player
Cameras
<<interface>>
Loader
ObjLoader
ObjLoader
FileReader
MtlLoader
Core
Carga de arquivos
InconsistentFileException
ArrayUtils
ImageUtils
Object3DInfo
Utilit\u00e1rias
Figura 4:Arquitetura da M3GE
vos no formato Wavefront (obj) para importac\u00b8\u02dc
ao de modelos 3D,
que s\u02dc
ao carregados pela classe ObjLoader. Experi\u02c6
encias anteriores
constataram que o processo de importac\u00b8\u02dc
ao de modelos em telefones
celulares\u00b4
e demasiadamente lento, pois cada arquivo (de geometria
e de materiais) precisa ser lido at\u00b4
e tr\u02c6
es vezes. Por isso, a M3GE uti-
liza um formato pr\u00b4
oprio, o Mobile Object File (mbj), no qual uma
s\u00b4
erie de informac\u00b8\u02dc
oes sobre o modelo j\u00b4
a est\u02dc
ao pr\u00b4
e-processadas, agili-
zando a sua importac\u00b8\u02dc
ao. A classe MtlLoader\u00b4

e utilizada para a carga deste tipo de arquivos, que descrevem cores, propriedades de mate- riais e texturas do ambiente ou de grupos de objetos 3D. Os arquivos mtl podem ser utilizados juntamente com arquivos Wavefront, per- mitindo que modelos em ambos os formatos sejam carregados em um mesmo jogo. A classe FileReader\u00b4

e uma classe especial para
facilitar a leitura dos arquivos.
A M3GE ainda conta com um conjunto de classes utilit\u00b4
arias. A
classe InconsistentFileException lanc\u00b8a uma excec\u00b8\u02dc
ao quando ocorre
algum erro na leitura de arquivos. A classe ImageUtils\u00b4

e utilizada para fazer a leitura de um arquivo de imagem utilizado como tex- tura. A classe Object3DInfo\u00b4

e utilizada para armazenar o ponto
central de um objeto 3D e seu respectivo nome. Por\u00b4
ultimo, a classe
ArrayUtils\u00b4
e utilizada para chamar m\u00b4
etodos para tratamento de lis-
tas.
As conclus\u02dc
oes relatadas por Gomes e Pamplona [Gomes and Pam-
plona 2005] a\ufb01rmaram que Java\u00b4
e promissora para a implementac\u00b8\u02dc
ao
de jogos para dispositivos m\u00b4
oveis. Apesar da M3GE ser apenas um
prot\u00b4
otipo, ela j\u00b4
a vem sendo utilizada para desenvolvimento de jogos
comercialmente [Guiliano 2005]. Al\u00b4
em disso, recentemente foi im-
plementado um m\u00b4
odulo para jogos multiusu\u00b4
ario com comunicac\u00b8\u02dc
ao
viabluetooth [Carandina and Martins 2006].
6 PersonagemN\u02dc
ao Jogador
O termo Personagem N\u02dc
ao Jogador (PNJ) vem do ingl\u02c6
esNon-Player
Character(NPC), e de\ufb01ne-se por um personagem presente no jogo,
que n\u02dc
ao\u00b4

e controlado pelo jogador, mas que se relaciona de alguma forma com ele. Os PNJs podem ser elementos decorativos das ce- nas ou interagir diretamente com as ac\u00b8\u02dc

oes do jogador [S\u00b4
anchez and
Dalmau 2004]. Para jogos onde o usu\u00b4

ario joga contra o compu- tador, usam-se os PNJs para representar oponentes. Por exemplo, num jogo de primeira pessoa existem na cena personagens que s\u02dc

ao inimigos do jogador e tem-se como objetivo acertar tiros neles. Es- tes personagens podem ter diversas apar\u02c6

encias, isto depende dos
modelos que foram desenhados e tamb\u00b4
em de suas texturas. Deste
modo, tem-se no jogo a possibilidade de interac\u00b8\u02dc

ao com diversos inimigos, alguns mais parecidos com humanos, outros com \ufb01guras mitol\u00b4

ogicas, mutantes, rob\u02c6
os, entre outros. Estes personagens s\u02dc
ao
criados com relac\u00b8\u02dc
ao ao enredo do jogo.
O primeiro jogo a incluir um oponente animado por computador
foiShark Jaws da empresa Atari em 1974. Nesse jogo, o PNJ\u00b4
e
um tubar\u02dc
ao e tem como ac\u00b8\u02dc
ao perseguir o mergulhador controlado
pelo jogador. Para isso, foi usada Intelig\u02c6

encia Arti\ufb01cial (IA) de uma forma simpli\ufb01cada, se comparada com o que existe nos jogos atuais [Byl 2004].

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->