Mobile 3D Game Engine

Preview:

DESCRIPTION

Apresentação da arquitetura da M3GE na Seminco/FURB. Utilizei os mesmos slides na apresentação da minha monografia. Paper Page: http://vitorpamplona.com/wiki/M3GE:%20um%20motor%20de%20jogos%203D%20para%20dispositivos%20m%C3%B3veis%20com%20suporte%20a%20M3G%20API Referência: Paulo C. R. Gomes e Vitor F. Pamplona. M3GE: um motor de jogos 3D para dispositivos móveis com suporte a Mobile 3D Graphics API . Proceedings of IV Brazilian Symposium on Computer Games and Digital Entertainment, Nov. 2005, São Paulo. Anais do WJogos. Porto Alegre: SBC, 2005. p. 55-65.

Citation preview

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Comming soon...

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

M3GE: um motor de jogos 3D para dispositivos móveis com

suporte a Mobile 3D Graphics API

Paulo César Rodacki Gomesrodacki@inf.furb.br

Vitor Fernando Pamplona

vitor@babaxp.org

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Roteiro● Introdução● Jogos● Motores de Jogos● Mobile 3D Graphics API● Mobile 3D Game Engine● Jogo Teste● Resultados e Conclusões● Extensões

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Introdução

● Jogos, o entretenimento milenar● Qualidade gráfica e complexidade

computacional● Celulares e poder computacional● Jogos para celulares● OpenGL ES e Mobile 3D Graphics API

(M3G)

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Jogos

● Necessitam de tempo real.● Animações, som e enredo● Interatividade

● Arquitetura de um Jogo:– Enredo, história, charadas e objetivos– Interface interativa, gráficos e efeitos– Motor de jogos, o controle central do jogo

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Motor de jogos 3D

● Motor de Jogos 3D– Carrega e renderiza modelos 3D– Controla os recursos multimídia– Gerencia os dispositivos de entrada– Gerencia usuários e conectividade– Possui um editor de cenários– Possui rotinas de colisão, física e inteligência

artificial– É o Kernel de um jogo

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Mobile 3D Graphics API for J2ME (M3G)

● Especificação de uma API 3D para celulares.● JSR liderada pela Nokia e concluída em dez.

de 2003● Projetada para trabalhar sobre a OpenGL ES● Projetada para trabalhar com placas gráficas● Possui rotinas otimizadas para leitura de

imagens e modelos 3D● Tamanho em ROM e RAM menor que 150Kb

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Mobile 3D Game Engine (M3GE)

● Requisitos:– Carregar e desenhar um ambiente virtual a partir

de um arquivo de modelo 3D– Troca de câmeras no cenário– Movimentação de personagem no cenário– Detecção de colisão básica– Modelo de eventos– Portabilidade– Velocidade

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Arquitetura da Solução

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Detecção de colisão

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Importação de Modelos 3D

● Formato .M3G definido pela M3G API● Formato Wavefront (OBJ e MTL)● Formato Mobile Object File (MBJ e MTL)

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Formato M3G

● Definido pela M3G API● Arquivo binário ● Leitura rápida pelo celular● Estrutura interna de grafo de cena● Poucas ferramentas dão suporte a ele● Suporte a vários tipos de objetos como

luzes, câmeras, sub-grupos, etc.

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

O formato de arquivos Wavefront (OBJ e MTL)

● Padrão mundial● Arquivo texto● Leitura lenta● Estrutura interna de pontos e faces● Todas as ferramentas tem suporte a ele● Trabalha com objetos visíveis, ignorando os

nós de Câmera, Luz, sub-grupo e com efeitos especiais

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Arquivo Mobile Object File (MBJ)

● Definido na M3GE● Arquivo texto● Leitura mais rápida que o Wavefront● Estrutura interna de pontos e faces● Gerado a partir de um arquivo Wavefront● Só trabalha com objetos 3D visíveis

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

O Jogo Teste

● Simulação de jogo em primeira pessoa● 7 objetos 3D visíveis e 3 Câmeras● 6 texturas de 256x256 pixels● Movimentação total pelo cenário● Detecção de colisão contra paredes● Tratamento de frames por segundo, acertos

dos tiros, e avisos na troca de câmera. ● 9 Linhas para carga e 90 linhas para lógica

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Jogo Teste

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

O Arquivo de Configurações

● Mantém as informações necessárias para que o motor de jogos possa estabelecer seu estágio inicial e o modo de iteração com o usuário

● Define como o jogador irá interagir com o jogo e com que velocidade.

● Define cameras com posições e perspectivas

● Ativa/desativa o cálculo de colisão

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

PLAYER_FRONT= -59 REFRESH_RATE=50PLAYER_BACK= -60 TEXTURE_SCALE=-40PLAYER_LEFT= 55 VELOCITY=0.05 PLAYER_RIGHT= 56 JUMP_POWER=0.05PLAYER_JUMP= 51 COLISION_DETECTION=1PLAYER_DOWN= 54 COLISION_PLAYER_RAY=0.05

VIEW_UP= 49 CHANGE_CAMERA=57VIEW_DOWN= 52 CAMERA0_RELATIVE_TO=PLAYERVIEW_LEFT= -61 CAMERA0_X=0VIEW_RIGHT= -62 CAMERA0_Y=0.00FIRE=-26 CAMERA0_Z=0 CAMERA0_FOVY=70.0 CAMERA0_NEAR=0.01 CAMERA0_FAR=50.0

Exemplo Arquivo de Configurações

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Resultados● Emulador e celular só diferem na velocidade ● Tempo de carga (Siemens CX 65):

– Com o arquivo Obj: 17 segundos– Com o arquivo Mbj: 14,5 segundos– Reduzindo tamanho das texturas: 8 segundos

● Tempo para o pré-processamento: 3 segs● Cálculo de colisão: 70 milisegundos● Jar da engine com 65 Kb. ● http://m3ge.dev.java.net

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Conclusão● É possível construir jogos 3D em java para os

celulares atuais.● O hardware está pronto para os jogos 3D● O hardware ainda não é popular● Velocidade vs OO e Design Patterns● O mercado mundial é voltado para jogos ● Fabricantes e operadoras não acessíveis● Jogos on-line ainda são mitos no Brasil

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Extensões

● Rotinas de colisão mais precisas● Eventos mais precisos● Unificação das texturas num único arquivo● Classes utilitárias● Efeitos especiais prontos● Engine Física● Módulo de IA● Módulo de multi-usuário

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Tranquility

● Jogo profissional com a M3GE● Simulador de vôos 3D● Desenvolvido pela empresa

norte americana Autonomous Productions

Mobile 3D Game Engine https://m3ge.dev.java.netOut/2005

Obr

iga d

o

http

://m

3ge.

dev.

java

.net

Recommended