Post on 18-May-2015
description
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