Top Banner
Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR: DALTON SOLANO DOS REIS FURB – UNIVERSIDADE REGIONAL DE BLUMENAU
47

Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Dec 28, 2018

Download

Documents

phungtruc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Motor para jogos 2D

utilizando HTML5

MARCOS HARBS

ORIENTADOR: DALTON SOLANO DOS REIS

FURB – UNIVERSIDADE REGIONAL DE BLUMENAU

Page 2: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Roteiro

Introdução

Objetivos

Fundamentação teórica

Desenvolvimento

Resultados e discussão

Conclusão

Extensões

Page 3: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Introdução

HTML5

Javascript, CSS e HTML

Canvas

Motores de jogos

Surgiu em meados dos anos 90 com jogos de

FPS

Vários gêneros

Abstrai a parte comum do desenvolvimento

Page 4: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Objetivos

Visualizar o funcionamento do motor e editor de

jogos

Visualizar a execução do jogo Tangram

Apresentar performance da ferramenta

Page 5: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Fundamentação teórica

Jogos eletrônicos

Motores de jogos

HTML5 e Javascript

Box2DJS

Kinect e Zigfu

Tangram

Trabalhos correlatos

Page 6: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Jogos Eletrônicos

Experiência interativa

Desafios e aprendizagem

Vários tipos de jogos

Mundo virtual manipulado pelo computador

Aproximação e simplificação

Simulações temporais

Respostas em tempo real

Page 7: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Motores de Jogos

Abstração de tarefas comuns

Conjunto de ferramentas

Construído em camadas

Problema de alto acoplamento

Solução da orientação a componentes

Page 8: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

HTML5 e Javascript

HTML5

Será o novo padrão para HTML

Elemento canvas

Javascript

Manipula elementos HTML

Linguagem para web

Linguagem leve

Fracamente tipada

Fácil aprendizagem

Page 9: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Box2DJS

Motor de simulações físicas de corpos rígidos

Desenvolvida em Javascript

Porte do motor Box2D desenvolvido em C++

Código fonte aberto

Detecção de colisão contínua

Colisão por categorias e grupos

Polígonos convexos, círculos e retângulos

Contato, fricção e restituição

Gravidade

Pontos de junção

Page 10: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Kinect e Zigfu

Kinect

Sensor de movimento

Criado pela Microsoft

Zigfu

Biblioteca de comunicação com Kinect

Possui uma interface Javascript

Plugin para vários navegadores

Multi-plataforma

Licença de uso

Page 11: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Tangram

Quebra cabeça geométrico

Criado na China por volta de VII a.C.

Formado por sete polígonos

Pode-se formar uma grande variedade de

representações geométricas, letras e figuras

Apenas cenário de testes

Page 12: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Trabalhos correlatos

ImpactJS

Unity 3D

Page 13: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

ImpactJS

Motor de jogos 2D Javascript e HTML5

Utiliza a Box2D na camada de física

Criação de níveis

Detecção de colisão

Gerenciamento de recursos

Gerenciamento de camadas

Renderização de objetos

Dispositivos móveis

É paga

Page 14: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Unity 3D

Motor e editor de jogos 3D

Física de corpos rígidos

Gerenciamento de recursos

Orientada a componentes

Gerenciamento de personagens

Multi-plataforma

Ferramentas de depuração

Gerenciamento de animações

É paga

Page 15: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Desenvolvimento

Casos de uso

Diagramas

Implementação

Page 16: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Casos de uso do motor de jogos

Page 17: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Casos de uso do editor de jogos

Page 18: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama: Pacotes do motor de jogos

Page 19: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: collide

Page 20: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: component

Page 21: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: game

Page 22: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: gameobject

Page 23: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: system

Page 24: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama: Pacote do editor de jogos

Page 25: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: editor.controller

Page 26: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: editor.managedbean

Page 27: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: editor.model

Page 28: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Dia

gra

ma

se

qu

ên

cia

: g

am

elo

op

Page 29: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Implementação

Orientação a objetos

Arquitetura orientada a componentes

HTML5 e Javascript

Box2DJS

Zigfu

SublimeText

Java Server Faces e Primefaces

JBoss

Eclipse IDE

Page 30: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Implementação: Camadas arquitetura

Page 31: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Implementação: Eventos disponíveis

Page 32: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Implementação: Corpos rígidos

Page 33: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Implementação: Normalização de

coordenada

Page 34: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Características Unity 3D Impact Motor desenvolvido

Suporte 2D X X

Suporte 3D X

Orientada a componentes X X

Suporte a física X X X

Editor de cena X X X

Ferramentas de debug X X

Geração para dispositivos móveis X X

Código fonte aberto X

Sem necessidade de licença X

Page 35: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Page 36: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Quantidade

de objetos

Google Chrome Internet Explorer Opera Mozilla Firefox

Antes Depois Antes Depois Antes Depois Antes Depois

1 60 60 60 60 60 60 60 60

5 60 60 60 60 60 60 55 60

10 60 60 60 60 60 60 40 60

15 58 60 60 60 60 60 30 60

20 48 60 59 60 53 60 22 59

25 38 59 59 60 41 60 18 59

30 29 59 55 60 31 59 14 59

40 21 58 41 59 23 58 10 58

50 17 58 33 59 20 57 8 57

60 15 53 27 58 16 53 6 57

80 10 41 20 57 12 41 5 55

100 8 30 15 53 9 31 4 52

150 6 22 11 41 7 23 3 35

200 5 16 8 30 5 16 2 27

Page 37: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Page 38: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Page 39: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Resultados e discussões

Page 40: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Projeto VisEDU

Projeto LIFE

Resultados e discussões

Page 41: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Conclusão

O motor de jogos atende os requisitos propostos

Alta flexibilidade por causa da arquitetura

orientada a componentes

Desempenho superou o proposto

O editor de jogos cumpriu os requisitos propostos

Usuário ainda necessita conhecer programação e Javascript

A usabilidade do editor deve ser melhorada

para usuários sem conhecimento de

programação e Javascript

Page 42: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Extensões

Explorar mais recursos da Box2DJS

Explorar mais recursos da Zigfu

Biblioteca de Inteligência Artificial

Desenhar objetos 3D com WebGL

Outros sensores de movimento (Leap Motion)

Implementar Grafo de Cena

Novos componentes

Multiplayer com WebSockets

Controle de acesso no editor de jogos

Page 43: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Extensões

Projetos colaborativos

Executar em dispositivos móveis

Melhorar a usabilidade do editor de jogos

Page 44: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Demonstração

Page 45: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: geometric

Page 46: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: utils

Page 47: Motor para jogos 2D utilizando HTML5 - dsc.inf.furb.brdsc.inf.furb.br/arquivos/tccs/apresentacoes/2013_2_marcos-harbs_a... · Motor para jogos 2D utilizando HTML5 MARCOS HARBS ORIENTADOR:

Diagrama classe: editor.utils