mobile 3d game engine

23
Mobile 3D Game Engine https://m3ge.dev.java.net Out/2005 Comming soon...

Upload: vitor-pamplona

Post on 18-May-2015

2.973 views

Category:

Technology


0 download

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.

TRANSCRIPT

Page 1: Mobile 3D Game Engine

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

Comming soon...

Page 2: Mobile 3D Game Engine

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 [email protected]

Vitor Fernando Pamplona

[email protected]

Page 3: Mobile 3D Game Engine

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

Page 4: Mobile 3D Game Engine

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)

Page 5: Mobile 3D Game Engine

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

Page 6: Mobile 3D Game Engine

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

Page 7: Mobile 3D Game Engine

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

Page 8: Mobile 3D Game Engine

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

Page 9: Mobile 3D Game Engine

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

Arquitetura da Solução

Page 10: Mobile 3D Game Engine

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

Detecção de colisão

Page 11: Mobile 3D Game Engine

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)

Page 12: Mobile 3D Game Engine

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.

Page 13: Mobile 3D Game Engine

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

Page 14: Mobile 3D Game Engine

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

Page 15: Mobile 3D Game Engine

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

Page 16: Mobile 3D Game Engine

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

Jogo Teste

Page 17: Mobile 3D Game Engine

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

Page 18: Mobile 3D Game Engine

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

Page 19: Mobile 3D Game Engine

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

Page 20: Mobile 3D Game Engine

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

Page 21: Mobile 3D Game Engine

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

Page 22: Mobile 3D Game Engine

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

Page 23: Mobile 3D Game Engine

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

Obr

iga d

o

http

://m

3ge.

dev.

java

.net