construção de jogos em html5 e javascript

63
Construção de jogos em HTML5 e JavaScript Docente : Jucimar Jr. Discente : Emiliano Carlos de M. Firmino

Upload: emiliano-firmino

Post on 25-May-2015

2.601 views

Category:

Technology


7 download

DESCRIPTION

Short overview of game development in HTML5

TRANSCRIPT

Page 1: Construção de jogos em html5 e javascript

Construção de jogos em HTML5 e JavaScript

Docente : Jucimar Jr.

Discente : Emiliano Carlos de M. Firmino

Page 2: Construção de jogos em html5 e javascript

Roteiro

1. Jogos 2. Desenvolvimento de Jogos 3. Arquitetura do Jogo 4. Jogos na Web 5. HTML5 6. JavaScript 7. Jogos, HTML5 e JS 8. Links Interessantes 9. Conclusão

Construção de jogos em html5 e javascript 2

Page 3: Construção de jogos em html5 e javascript

Jogos

Construção de jogos em html5 e javascript 3

Page 4: Construção de jogos em html5 e javascript

O que são jogos?

• Não são jogo: – Brinquedos

• Carrinho, Boneca, Bola, ...

– Puzzle • Quebra-cabeça, palavras cruzadas, ...

• São jogo: – Tabuleiro

• Dama, Xadrez, Go, ...

– Esportes • Futebol, Vôlei, Tênis, Corrida, ...

– Videogames • Mario, Tetris, WoW, ...

Construção de jogos em html5 e javascript 4

Page 5: Construção de jogos em html5 e javascript

O que são jogos?

• Jesse Schell: – “Jogo é uma atividade de resolução de problemas,

abordado de forma lúdica.”

• Experiência – Supressa, Diversão, Conflitos

• Ambiente Justo – Regras, Equilíbrio, Forças Distintas, Limites

• Requer – Interatividade – Imersão – Elementos Básicos

Construção de jogos em html5 e javascript 5

Page 6: Construção de jogos em html5 e javascript

Interatividade

Construção de jogos em html5 e javascript 6

MUNDO 웃 Interage

Page 7: Construção de jogos em html5 e javascript

Interatividade

Construção de jogos em html5 e javascript 7

MUNDO 웃

Page 8: Construção de jogos em html5 e javascript

Interatividade

Construção de jogos em html5 e javascript 8

MUNDO 웃 Interface Virtual

Page 9: Construção de jogos em html5 e javascript

Imersão

• Elemento Principal.

• Projetar-se no jogo

• Ambiente Consistente.

• Você está no jogo, compreende como o ambiente funciona, pronto para responder as adversidades.

Construção de jogos em html5 e javascript 9

Page 10: Construção de jogos em html5 e javascript

Elementos Básico

Construção de jogos em html5 e javascript 10

Estéti-ca

Tecno-logia

Mecâ-nica

Histo-ria

+ V

isív

el

Page 11: Construção de jogos em html5 e javascript

Tipos de Jogo

Casuais

• Controles Simples

• Poucas opções

• Nenhum/pouco conhecimento prévio

• Memorização

• Objetivos claros

• Soluções claras

Hardcore

• Controles Difíceis

• Excesso de opções

• Conhecimento prévio

• Memorização abstrata

• Objetivos incertos

• Soluções insertas

Construção de jogos em html5 e javascript 11

Page 12: Construção de jogos em html5 e javascript

Tipos de Jogador

Casuais

• Web

• Curta Interação

• Pouco exigentes

• Jogos pequenos

Hardcore

• Consoles/PC

• Longa interação

• Muito exigentes

• Jogos grandes

Construção de jogos em html5 e javascript 12

Page 13: Construção de jogos em html5 e javascript

Desenvolvimento de Jogos

Construção de jogos em html5 e javascript 13

Page 14: Construção de jogos em html5 e javascript

Etapas do Desenvolvimento

Construção de jogos em html5 e javascript 14

1º Conceito

Pré-produção

Produção

Teste

Publicação

Page 15: Construção de jogos em html5 e javascript

Plataforma

• Escolha de uma plataforma

• Tempo real

• Algoritmos eficientes

• Gerenciamento eficiente de memória

• Gerenciamento do Processamento

• Crítico em Dispositivos portáteis

• Artifícios: – Funções Rápidas, Modelos Simplificados, ...

Construção de jogos em html5 e javascript 15

Page 16: Construção de jogos em html5 e javascript

Projeto

• Requerimentos do jogo

• Planejamento

• Estabelecimentos das Equipes

• Controle do projeto

• Gerenciamento de Risco

• Estabelecimento de Prazos e Metas

Construção de jogos em html5 e javascript 16

Page 17: Construção de jogos em html5 e javascript

Problemas

• Mal Planejamento

• Subestimar a complexidade

• Preocupação excessiva com a aparência, e esquecer do gameplay

• Jogo mal definido

• Equipe desunida

• Esquecer de atender as restrições

• Poucos títulos são lucrativos

Construção de jogos em html5 e javascript 17

Page 18: Construção de jogos em html5 e javascript

Arquitetura de Jogos

Construção de jogos em html5 e javascript 18

Page 19: Construção de jogos em html5 e javascript

Objetivo

• Resposta em Tempo Real

• Gerar frame rate para uma animação suave

• Responder aos comandos do usuário

• Gerenciar todos os elementos do jogo

• Modificar os Estados do Jogo em resposta ao usuário

• Manter a Integridade e Consistência do jogo

Construção de jogos em html5 e javascript 19

Page 20: Construção de jogos em html5 e javascript

Game

Construção de jogos em html5 e javascript 20

Inicialização

Main Loop

Inputs do Usuário

Logica do Jogo

Renderiza Frame

blit

Time Sync

Finalizando

Terminou

Fecha

Figura ?. Arquitetura de execução

Page 21: Construção de jogos em html5 e javascript

Física

• Modelo matemático que cria a consistência no ambiente ao redor do jogador.

• Controla: – Movimento – Detectar Colisão – Responder a Colisão – Rotação de Objetos – Atrito – Gravidade – Inercia

Construção de jogos em html5 e javascript 21

Page 22: Construção de jogos em html5 e javascript

Inteligência Artificial

• Modela o comportamento de outras unidades, suporte a ações do jogador, permite a consistência no comportamento dos agentes no jogo.

• Controla:

– Encontrar o Caminho

– Suporte a Decisão

– Suporte a Estratégia

– Comportamento do Computador

– Comportamento Emergente

Construção de jogos em html5 e javascript 22

Page 23: Construção de jogos em html5 e javascript

Objetos

• Elementos do jogo com qual ocorre a interação.

• Exemplos:

– Cenário

– Avatar (jogador)

– Agentes (Computador)

– Componentes do Cenário (Caixa, Barris, Carro)

– Estruturas Internas de gerenciamento Jogo

– Waypoints

– ...

Construção de jogos em html5 e javascript 23

Page 24: Construção de jogos em html5 e javascript

Renderização

• Gera a saída que é exibida ao usuário. • Visual:

– Gera um frame com os elementos visíveis pelo campo de visão do jogador.

– Renderiza apenas o necessário para evitar desperdício de recursos.

• Áudio: – Toca o audio no momento certo. – Som espacial.

• Outros: – Tremer o controle, ...

Construção de jogos em html5 e javascript 24

Page 25: Construção de jogos em html5 e javascript

Jogos na Web

Construção de jogos em html5 e javascript 25

Page 26: Construção de jogos em html5 e javascript

Jogos na Web

• Uso de plug-ins: – Adobe Flash

– Microsoft Silverlight

• Características: – Casuais

– Single Player

– Gráficos em 2D

• Plataforma – Browser

Construção de jogos em html5 e javascript 26

Page 27: Construção de jogos em html5 e javascript

HTML5

Construção de jogos em html5 e javascript 27

Page 28: Construção de jogos em html5 e javascript

Proposta

• As versões anteriores do HTML não havia sido projetado produzir aplicações; foram feitas para disponibilizar documentação.

• Artifícios vem sendo utilizados para atender essa crescente necessidade.

• Aplicações Web:

– Multimídia, Gráfico, Desempenho, ...

Construção de jogos em html5 e javascript 28

Page 29: Construção de jogos em html5 e javascript

HTML5 permite:

• Arquivo

• Apresentações

• Armazenamento

• Desempenho

• Gráfico

• Multimídia

• Off-line

Construção de jogos em html5 e javascript 29

Page 30: Construção de jogos em html5 e javascript

Uso de arquivos

• Permite manipular os arquivos na memória sem o uso de plug-ins.

• Permite:

– Gerar miniatura

– Upload de arquivo

– Extrair meta-data de uma arquivo

• Elementos:

– File, FileList, FileReader, FileWriter

Construção de jogos em html5 e javascript 30

Page 31: Construção de jogos em html5 e javascript

Apresentação

• Permite pelo CSS3 criar ricas experiências visuais, com pouca complexidade.

• Permite: – Gerar transições – Transformações – Rotação – Incluir fontes únicas

• Elemento: – Transform, Transition, Rotate, Drag and Drop, ...

Construção de jogos em html5 e javascript 31

Page 32: Construção de jogos em html5 e javascript

Armazenamento

• Permite armazenar a aplicação no cliente, execução da mesma off-line, reduz a carga a cada nova reconexão.

• Permite: – Uso da aplicação off-line

– Bibliotecas

– Economia de banda

• Elemento: – WebStorage, WebSql, indexedDB,File, ...

Construção de jogos em html5 e javascript 32

Page 33: Construção de jogos em html5 e javascript

Desempenho

• Processamento intensivo sem prejudicar a navegação

• Permite: – Calcular rotas

– Processamento matemático

– Processamento interativo

– Aplicar filtro em imagem

• Elemento: – WebSocket, WebWorker, Notification

Construção de jogos em html5 e javascript 33

Page 34: Construção de jogos em html5 e javascript

Gráfico

• Gerar imagem, produzir animações, processamento de imagem.

• Permite: – Animações – Interface gráfica em jogos – Aplicar filtro em imagem

• Elemento:

– Canvas 2d, Canvas WebGL, SVG, ...

Construção de jogos em html5 e javascript 34

Page 35: Construção de jogos em html5 e javascript

Novos Elementos : Multimídia

• Tocar música, vídeo sem o uso plug-ins.

• Permite: – Adicionar toques

– Executar vídeos

– Video on Demand

• Elemento: – Video, Audio

Construção de jogos em html5 e javascript 35

Page 36: Construção de jogos em html5 e javascript

Novos Elementos : Off-line

• Executar aplicações sem a necessidade de estar conectado a internet

• Permite: – Reduzir a carga no servidor

– Uso off-line

• Elemento: – Application cache, localStorage, webSql, ...

Construção de jogos em html5 e javascript 36

Page 37: Construção de jogos em html5 e javascript

Empresas Interessadas

• Google.

• Microsoft

• Apple

• Mozilla Foundation

• Opera Software

• WHATWG

• World Wide Web Consortium (W3C)

Construção de jogos em html5 e javascript 37

Page 38: Construção de jogos em html5 e javascript

HTML5

Benefícios

• Aplicações Web

• Compatibilidade com diversas plataformas

• Dispensa plug-ins

• Padronização

Problemas

• Ainda em Desenvolvimento

• Conflito na definição do

codec de áudio e vídeo.

• Suporte apenas nos

browser mais recentes

• Suporte parcial

• Elementos ainda não totalmente definidos

Construção de jogos em html5 e javascript 38

Page 39: Construção de jogos em html5 e javascript

JavaScript

Construção de jogos em html5 e javascript 39

Page 40: Construção de jogos em html5 e javascript

Java + Script

• JavaScript não é Java, o nome é puro marketing da Netscape.

• O nome era LiveScript.

• Linguagem mais usada no mundo.

• JavaScript é interpretada, não é uma linguagem simples, é uma linguagem completa com suporte a OO.

Construção de jogos em html5 e javascript 40

Page 41: Construção de jogos em html5 e javascript

Características

• Linguagem padronizada pela European Computer Manufacturer's Association (ECMA).

• Nome oficial é ECMAScript, ECMA-262.

• Características: – Orientação a objeto, paradigma da prototipação. – Expressões regulares – Tipagem dinâmica – Corrente de Escopo

Construção de jogos em html5 e javascript 41

Page 42: Construção de jogos em html5 e javascript

JavaScript Client-Side

• Versão do JavaScript encontrada no Browser.

• Core JS + DOM.

• O JS manipula o DOM para modificar o conteúdo da página HTML.

• DOM é especificado pela W3C.

• Características: – Responder Eventos – Manipular Elementos, Cookie e persistência

Construção de jogos em html5 e javascript 42

Page 43: Construção de jogos em html5 e javascript

Jogos, HTML5 e JS

Construção de jogos em html5 e javascript 43

Page 44: Construção de jogos em html5 e javascript

Jogos, HTML5 e JS

• Adaptações – Processamento limitado

– Loops substituídos por eventos periódicos

• Limitações – Necessita browser compatíveis

• Firefox 3.5+, Opera 10+, Chrome 4+ ou IE9

– Otimização para web

– Limitação das fontes utilizadas

– Verificar compatibilidade entre os browser

Construção de jogos em html5 e javascript 44

Page 45: Construção de jogos em html5 e javascript

Ferramentas

Produção: • Editor

– suporte a programação

• Servidor – Apache2, ...

• Validação do Código – Validator W3C

– JSLint

• Teste e Debug – Firefox + FireBug

– Opera + Dragonfly

– Chrome + ConsJS

Publicação:

• JS Minify/Obfuscator – Yahoo YUI

– Closure Compiler

– JSMIN

• Site na Internet – HTML

– PHP

– ...

Construção de jogos em html5 e javascript 45

Page 46: Construção de jogos em html5 e javascript

HTML5 Elementos

• Gráfico – Canvas, [Img, Video,...]

• Inputs & Game Loop – Events

• Som – Audio*

• Off-line – localStorage, WebSql, ...

• Rede – WebSocket

• Proc. Intensivo – WebWorker

• JavaScript – DOM

– Registro de Eventos

– Core JS

• CSS3*

Construção de jogos em html5 e javascript 46

Page 47: Construção de jogos em html5 e javascript

Organização

Construção de jogos em html5 e javascript 47

Estrura do Documento

Dinamismo

Aparência

Page 48: Construção de jogos em html5 e javascript

Jogo HTML5 : Abrindo

Construção de jogos em html5 e javascript 48

var players = [

new Player(),

new Player()

];

var mapa =

new Map();

...

function loading(){

....

}

window.onload =

loading;

Game.js

Event Dispa-

tch

Execute ao carregar

Page 49: Construção de jogos em html5 e javascript

Jogo HTML5 : Inicializa

Construção de jogos em html5 e javascript 49

var players = [

new Player(),

new Player()

];

var mapa =

new Map();

...

function loading(){

....

}

window.onload =

loading;

Game.js

Event Dispa-

tch

Pagina Carregada

Page 50: Construção de jogos em html5 e javascript

Jogo HTML5 : Registra

Construção de jogos em html5 e javascript 50

function eventHdl(e){

...

}

function gameLoop (){

for(...){

fisica();

iA();

...

}

...

renderiza;

}

Game.js

Event Dispa-

tch

Repetir 25fps

Captura Mouse/K

Page 51: Construção de jogos em html5 e javascript

Jogo HTML5 : Resp. Input

Construção de jogos em html5 e javascript 51

function EventHdl(e) {

switch(e){

...

}

}

Game.js

Event Dispa-

tch 1

2

Page 52: Construção de jogos em html5 e javascript

Jogo HTML5 : Frame

Construção de jogos em html5 e javascript 52

function gameLoop (){

for(...){

fisica();

iA();

...

}

...

renderiza;

}

Game.js

Event Dispa-

tch

1

2

Page 53: Construção de jogos em html5 e javascript

Jogo HTML5 : Criatividade

Construção de jogos em html5 e javascript 53

Page 54: Construção de jogos em html5 e javascript

Links Interessantes

Construção de jogos em html5 e javascript 54

Page 55: Construção de jogos em html5 e javascript

1.Gamasutra

Construção de jogos em html5 e javascript 55

Page 56: Construção de jogos em html5 e javascript

2.Gamedev

Construção de jogos em html5 e javascript 56

Page 57: Construção de jogos em html5 e javascript

3. Mozilla Developer

Construção de jogos em html5 e javascript 57

Page 58: Construção de jogos em html5 e javascript

4. Opera Developer Community

Construção de jogos em html5 e javascript 58

Page 59: Construção de jogos em html5 e javascript

5. Douglas Crockford

Construção de jogos em html5 e javascript 59

Page 60: Construção de jogos em html5 e javascript

6.Chrome Experiments

Construção de jogos em html5 e javascript 60

Page 61: Construção de jogos em html5 e javascript

7.HTML5games.com

Construção de jogos em html5 e javascript 61

Page 62: Construção de jogos em html5 e javascript

Outros

• Basta Procurar:

Construção de jogos em html5 e javascript 62

Page 63: Construção de jogos em html5 e javascript

Conclusão

• Desenvolvimento de Jogos – Diversas Técnicas de computação – Excitante

• HTML5 – Promete revolucionar a web, mas ainda está em

desenvolvimento e o suporte é limitado.

• Games HTML5 – Jogos em 2D e 3D – Diversas plataformas – Simples de Programar

Construção de jogos em html5 e javascript 63