SlideShare a Scribd company logo
1 of 38
Um comparativo entre engines JavaScript para o
desenvolvimento de games HTML5
David Melo da Luz
Sobre mim
David Melo da Luz
MBA em Engenharia de Software
IBTA – Instituto Brasileiro de Tecnologia Avançada (Atualmente)
Pós graduação em Programação e produção de jogos
Serviço Nacional de Aprendizagem Comercial – SENAC SP
Graduação em Psicologia
Pontifícia Universidade Católica de São Paulo (PUC-SP)
Últimos trabalhos formais:
Consultor em tecnologia | Designer instrucional (Atual)
Fundação Vanzolini
Designer instrucional
Fundação Padre Anchieta (TV Cultura)
Consultor
Plataforma Geekie
Meus projetos pessoais
Plataforma de educação especial Escola de
design intrucional
O que é faço hoje exatamente ?
Jogos e objetos de aprendizagem para EAD e Elarning
( famoso joguinho educativo)
Jogo das placas Detran.SP
Regaste Solidariuns
Secretaria Educação Estado SP
joANNINHA
SP GameJAM 2015
Como vim para
aqui...
Vamos ao que
interessa...
Alguém aqui faz/já fez jogo usando
javascript?
Objetivo dessa apresentação
Entender como escolher a melhor game engine
dependendo do nosso contexto
Principais conceitos de programação de jogos
De forma BEM GERAL existem basicamente 2 estilos de programação de jogos
• Orientado a eventos
• Baseado em frames
Orientado a eventos
Muito parecida com programação pra web
Implementam o conceito de Game loop
Baseado em frames
Game Loop
Fonte: tutsplus
Game
ObjectÉ geralmente a menor unidade de um jogo – é a abstração mais ampla de um
componente em um jogo.
Game World
É geralmente um objeto de jogo abstrato utilizado para controlar os eventos gerais
- não associados a nenhum objeto específico.
State
Representa um estado específico do jogo ( seta por exemplo valores de variáveis ).
No contexto dos games é utilizado para implementar mudanças de fases.
Asset
s
São recursos externos e necessários ao jogo ( sprites, música, textura, vídeo e etc).
Por que falei destes conceitos?
Por que o contexto importa?
Outras características importantes...
• Física
• Partículas
• Animações
• Áudio
Jogos HTML5
Jogos HTML5
São jogos que rodam utilizando tecnologias nativas do navegador
Principais vantagens
• Rodam diretamente no navegador
• Não depende de plugins de terceiros
• São portáveis
• São fáceis de integrar
• Desenvolvimento não exige necessariamente
o uso de nenhum software específico.
O canvas é o elemento “novo” do HTML que permite “desenhar
dinâmicamente” usando javascript. Como esse desenho é feito
depende do contexto (context) utilizado.
Atualmente existem dois contextos disponíveis: 2D e WebGl. Cada um
deles é um objeto que expõe uma API diferente que pode ser usada
para desenhar ( o canvas 2D, e o WebGL3D).
Elemento Canvas
Canvas
var ctx = document.getElementById("meucanvas").getContext("2d");
WebGL
var gl = document.getElementById("meucanvas").getContext("webgl");
Eu, em 2010, recebendo a
notícia que o HTML
implementaria o elemento
canvas que permitiria o
desenvolvimento de jogos sem
plugins de navegador...
Eu descobrindo como
desenhar um quadrado
amarelo estático no navegador
usando o Canvas
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.rect(188, 50, 200, 100);
context.fillStyle = 'yellow';
context.fill();
context.lineWidth = 7;
context.strokeStyle = 'black';
context.stroke();
</script>
APIs Canvas e WebGL são genéricas –
Não foram feitas exclusivamente para
jogos
Frameworks para games HTML5
(game engines javascript)
Vantagens
• Implementam recursos focados em jogos (citados
anteriormente).
• Simplificam e aceleram o desenvolvimento
• Abstraem tarefas extremamente difíceis
• Tornam o desenvolvimento de jogos acessível
Comparando as melhores
games engines disponíveis
atualmente
CREATE JS
Outras soluções (usam libs de javascript – m
abstraem muito mais a parte de código do
desenvolvedor).
Exemplo prático com PhaserJS

More Related Content

Similar to Um comparativo entre engines JavaScript para o desenvolvimento de games HTML5 - SorocabaJS - David Luz

Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Felipe Pedroso
 
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaFramework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaBeatriz Vaz Pinto
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Mauricio Alegretti
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users InterfacesMauricio Alegretti
 
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGameFLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGameLucas Mousinho
 
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013Dra. Camila Hamdan
 
Vídeo Digital
Vídeo DigitalVídeo Digital
Vídeo Digitalsiufmg2011
 
Plano de Ensino - Aplicações para Internet 1o. semestre 2013
Plano de Ensino - Aplicações para Internet  1o. semestre 2013Plano de Ensino - Aplicações para Internet  1o. semestre 2013
Plano de Ensino - Aplicações para Internet 1o. semestre 2013Dra. Camila Hamdan
 
Plugins para Jogos Online
Plugins para Jogos OnlinePlugins para Jogos Online
Plugins para Jogos OnlineBruno Croci
 
Palestra Introdução ao Game Design
Palestra Introdução ao Game DesignPalestra Introdução ao Game Design
Palestra Introdução ao Game DesignLeonardo Zamprogno
 
Tecnologias de Desenvolvimento de Videojogos
Tecnologias de Desenvolvimento de VideojogosTecnologias de Desenvolvimento de Videojogos
Tecnologias de Desenvolvimento de VideojogosNelson Zagalo
 
Problemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisProblemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisMichel Montenegro
 
Desenvolvimento de games no contexto escolar - Guilherme Hartung
Desenvolvimento de games no contexto escolar - Guilherme HartungDesenvolvimento de games no contexto escolar - Guilherme Hartung
Desenvolvimento de games no contexto escolar - Guilherme HartungSEJUD
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Alessandro Binhara
 
Engine de jogos 2D
Engine de jogos 2DEngine de jogos 2D
Engine de jogos 2Dw_barros
 
Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. ParallaxMichel Montenegro
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 

Similar to Um comparativo entre engines JavaScript para o desenvolvimento de games HTML5 - SorocabaJS - David Luz (20)

Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
Computação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos DigitaisComputação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos Digitais
 
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo PlataformaFramework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
Framework de GameAnalytics para Jogos Moveis 2D Tipo Plataforma
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
 
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGameFLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
 
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013
Laboratório de Projetos de Jogos 2_Plano de Ensino _ 1 Semestre 2013
 
Vídeo Digital
Vídeo DigitalVídeo Digital
Vídeo Digital
 
Plano de Ensino - Aplicações para Internet 1o. semestre 2013
Plano de Ensino - Aplicações para Internet  1o. semestre 2013Plano de Ensino - Aplicações para Internet  1o. semestre 2013
Plano de Ensino - Aplicações para Internet 1o. semestre 2013
 
Plugins para Jogos Online
Plugins para Jogos OnlinePlugins para Jogos Online
Plugins para Jogos Online
 
Palestra Introdução ao Game Design
Palestra Introdução ao Game DesignPalestra Introdução ao Game Design
Palestra Introdução ao Game Design
 
Projeto de Douturado
Projeto de DouturadoProjeto de Douturado
Projeto de Douturado
 
Tecnologias de Desenvolvimento de Videojogos
Tecnologias de Desenvolvimento de VideojogosTecnologias de Desenvolvimento de Videojogos
Tecnologias de Desenvolvimento de Videojogos
 
Problemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisProblemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitais
 
Desenvolvimento de games no contexto escolar - Guilherme Hartung
Desenvolvimento de games no contexto escolar - Guilherme HartungDesenvolvimento de games no contexto escolar - Guilherme Hartung
Desenvolvimento de games no contexto escolar - Guilherme Hartung
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.
 
Comparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3dComparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3d
 
Engine de jogos 2D
Engine de jogos 2DEngine de jogos 2D
Engine de jogos 2D
 
Desenv. jogos em java e Proj. Parallax
Desenv.  jogos em java e Proj. ParallaxDesenv.  jogos em java e Proj. Parallax
Desenv. jogos em java e Proj. Parallax
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 

Um comparativo entre engines JavaScript para o desenvolvimento de games HTML5 - SorocabaJS - David Luz

  • 1. Um comparativo entre engines JavaScript para o desenvolvimento de games HTML5 David Melo da Luz
  • 2. Sobre mim David Melo da Luz MBA em Engenharia de Software IBTA – Instituto Brasileiro de Tecnologia Avançada (Atualmente) Pós graduação em Programação e produção de jogos Serviço Nacional de Aprendizagem Comercial – SENAC SP Graduação em Psicologia Pontifícia Universidade Católica de São Paulo (PUC-SP) Últimos trabalhos formais: Consultor em tecnologia | Designer instrucional (Atual) Fundação Vanzolini Designer instrucional Fundação Padre Anchieta (TV Cultura) Consultor Plataforma Geekie
  • 3. Meus projetos pessoais Plataforma de educação especial Escola de design intrucional
  • 4. O que é faço hoje exatamente ? Jogos e objetos de aprendizagem para EAD e Elarning ( famoso joguinho educativo) Jogo das placas Detran.SP Regaste Solidariuns Secretaria Educação Estado SP joANNINHA SP GameJAM 2015
  • 7. Alguém aqui faz/já fez jogo usando javascript?
  • 8. Objetivo dessa apresentação Entender como escolher a melhor game engine dependendo do nosso contexto
  • 9. Principais conceitos de programação de jogos
  • 10. De forma BEM GERAL existem basicamente 2 estilos de programação de jogos • Orientado a eventos • Baseado em frames
  • 11. Orientado a eventos Muito parecida com programação pra web
  • 12. Implementam o conceito de Game loop Baseado em frames
  • 15. Game ObjectÉ geralmente a menor unidade de um jogo – é a abstração mais ampla de um componente em um jogo.
  • 16. Game World É geralmente um objeto de jogo abstrato utilizado para controlar os eventos gerais - não associados a nenhum objeto específico.
  • 17. State Representa um estado específico do jogo ( seta por exemplo valores de variáveis ). No contexto dos games é utilizado para implementar mudanças de fases.
  • 18. Asset s São recursos externos e necessários ao jogo ( sprites, música, textura, vídeo e etc).
  • 19. Por que falei destes conceitos?
  • 20. Por que o contexto importa?
  • 21. Outras características importantes... • Física • Partículas • Animações • Áudio
  • 23. Jogos HTML5 São jogos que rodam utilizando tecnologias nativas do navegador
  • 24. Principais vantagens • Rodam diretamente no navegador • Não depende de plugins de terceiros • São portáveis • São fáceis de integrar • Desenvolvimento não exige necessariamente o uso de nenhum software específico.
  • 25. O canvas é o elemento “novo” do HTML que permite “desenhar dinâmicamente” usando javascript. Como esse desenho é feito depende do contexto (context) utilizado. Atualmente existem dois contextos disponíveis: 2D e WebGl. Cada um deles é um objeto que expõe uma API diferente que pode ser usada para desenhar ( o canvas 2D, e o WebGL3D). Elemento Canvas
  • 26. Canvas var ctx = document.getElementById("meucanvas").getContext("2d"); WebGL var gl = document.getElementById("meucanvas").getContext("webgl");
  • 27. Eu, em 2010, recebendo a notícia que o HTML implementaria o elemento canvas que permitiria o desenvolvimento de jogos sem plugins de navegador...
  • 28. Eu descobrindo como desenhar um quadrado amarelo estático no navegador usando o Canvas <canvas id="myCanvas" width="578" height="200"></canvas> <script> var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.beginPath(); context.rect(188, 50, 200, 100); context.fillStyle = 'yellow'; context.fill(); context.lineWidth = 7; context.strokeStyle = 'black'; context.stroke(); </script>
  • 29. APIs Canvas e WebGL são genéricas – Não foram feitas exclusivamente para jogos
  • 30. Frameworks para games HTML5 (game engines javascript)
  • 31. Vantagens • Implementam recursos focados em jogos (citados anteriormente). • Simplificam e aceleram o desenvolvimento • Abstraem tarefas extremamente difíceis • Tornam o desenvolvimento de jogos acessível
  • 32. Comparando as melhores games engines disponíveis atualmente
  • 33.
  • 34.
  • 35.
  • 37. Outras soluções (usam libs de javascript – m abstraem muito mais a parte de código do desenvolvedor).

Editor's Notes

  1. Porque eles são importantes
  2. Porque eles são importantes
  3. Porque eles são importantes
  4. Quem sou eu Falar de como cheguei aqui DevNaEstrada Estou aqui para aprender, desculpe qualquer bobagem