SlideShare una empresa de Scribd logo
1 de 25
Desenvolvendo Games Multiplataforma ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
 
Pensando multiplataforma ,[object Object],[object Object]
Ficar preso a uma plataforma pode ser fatal
[object Object],E sua equipe?
Existe linguagem flexível assim?
Podemos levar C++ a qualquer lugar
NinJump (Backflip Studios) Pinball Ride (Massive Finger) Angry Birds (Rovio)
[object Object],[object Object],C++ possui bibliotecas de templates shared_ptr<>, weak_ptr<>, ...
[object Object],[object Object],Justo! Sem problemas...
Linguagens de scripting... ,[object Object]
Como/Porque funciona
Interfaces (classes virtuais)
class   Texture { public :      virtual   bool   SetTexture ( const   unsigned   int   passIdx   =   0 )   =   0 ;      virtual   math :: Vector2   GetBitmapSize ()   const   =   0 ; protected :      virtual   bool   LoadTexture (          VideoWeakPtr   video ,          const   string &   fileName ,   GS_COLOR   mask ,          const   unsigned   int   width   =   0 ,   const   unsigned   int   height   =   0 ,          const   unsigned   int   nMipMaps   =   0      )   =   0 ; }; class   GLES2Texture   :   public   Texture { public :      GLES2Texture ( VideoWeakPtr   video ,   const   str_type :: string &   fileName );      ~ GLES2Texture ();      bool   SetTexture ( const   unsigned   int   passIdx   =   0 );      math :: Vector2   GetBitmapSize ()   const ; protected :      bool   LoadTexture (          VideoWeakPtr   video ,          const   string &   fileName ,          GS_COLOR   mask ,          const   unsigned   int   width   =   0 ,   const   unsigned   int   height   =   0 ,          const   unsigned   int   nMipMaps   =   0 );      GLuint   m_textureID ; };
Scripting scriptEngine->RegisterGlobalFunction (    &quot;void AddEntity(const string &in)&quot; ,   FUNCTION(engine::AddEntity),   CALL_GENERIC );
Outro modelo possível (também multiplataforma)
 
Mandamentos ,[object Object],II - Lembrai do primeiro mandamento, SEMPRE.
Problemas comuns Resoluções de tela:  um desafio em games baseados em sprites Métodos de entrada:  teclado, mouse, dpad, touchscreen... Codificação de strings:  ANSI vs UTF-7 vs UTF-8 vs UTF-16  Suporte a RTTI e Exceptions: &quot;To boost or not to boost?&quot;          
Ferramentas disponíveis hoje ,[object Object],Proprietárias: -Unity -Unreal Engine -BatteryTech
www.ethanon.com.br
O futuro é multiplataforma Jamais fique preso a uma única plataforma
Perguntas? ,[object Object]

Más contenido relacionado

Similar a Desenvolvendo games multiplataforma

Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersiMasters
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Ferramentas Livres para o Desenvolvimento de Jogos Eletrônicos
Ferramentas Livres para o Desenvolvimento de Jogos EletrônicosFerramentas Livres para o Desenvolvimento de Jogos Eletrônicos
Ferramentas Livres para o Desenvolvimento de Jogos EletrônicosIngrid Mendes
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Flávio Ribeiro
 
ISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasPedro Kayatt
 
Defesa TC V1.2.1
Defesa TC V1.2.1Defesa TC V1.2.1
Defesa TC V1.2.1B Bellaver
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenziejonathanblacknight
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasPedro Kayatt
 
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVDesenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVmulder3
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaHeitor Carlos
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Fernando Passold
 
Mantendo a Sanidade com o Glade
Mantendo a Sanidade com o GladeMantendo a Sanidade com o Glade
Mantendo a Sanidade com o GladeMarcelo Lira
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Interfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasInterfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasPedro Kayatt
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...INdT
 

Similar a Desenvolvendo games multiplataforma (20)

Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game Developers
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Ferramentas Livres para o Desenvolvimento de Jogos Eletrônicos
Ferramentas Livres para o Desenvolvimento de Jogos EletrônicosFerramentas Livres para o Desenvolvimento de Jogos Eletrônicos
Ferramentas Livres para o Desenvolvimento de Jogos Eletrônicos
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
ISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes Telas
 
Defesa TC V1.2.1
Defesa TC V1.2.1Defesa TC V1.2.1
Defesa TC V1.2.1
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
 
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVDesenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - Sparta
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
Mantendo a Sanidade com o Glade
Mantendo a Sanidade com o GladeMantendo a Sanidade com o Glade
Mantendo a Sanidade com o Glade
 
Intel Perceptual Computing SDK
Intel Perceptual Computing SDKIntel Perceptual Computing SDK
Intel Perceptual Computing SDK
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Devfest cerrado2017
Devfest cerrado2017Devfest cerrado2017
Devfest cerrado2017
 
Interfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasInterfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes Telas
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
TDC2014 - Arduino Legacy
TDC2014 - Arduino LegacyTDC2014 - Arduino Legacy
TDC2014 - Arduino Legacy
 
UTools Unite Brasil
UTools Unite BrasilUTools Unite Brasil
UTools Unite Brasil
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
 

Desenvolvendo games multiplataforma

  • 1.
  • 2.  
  • 3.  
  • 4.  
  • 5.
  • 6. Ficar preso a uma plataforma pode ser fatal
  • 7.
  • 9. Podemos levar C++ a qualquer lugar
  • 10. NinJump (Backflip Studios) Pinball Ride (Massive Finger) Angry Birds (Rovio)
  • 11.
  • 12.
  • 13.
  • 16. class   Texture { public :      virtual   bool   SetTexture ( const   unsigned   int   passIdx   =   0 )   =   0 ;      virtual   math :: Vector2   GetBitmapSize ()   const   =   0 ; protected :      virtual   bool   LoadTexture (          VideoWeakPtr   video ,          const   string &   fileName ,   GS_COLOR   mask ,          const   unsigned   int   width   =   0 ,   const   unsigned   int   height   =   0 ,          const   unsigned   int   nMipMaps   =   0      )   =   0 ; }; class   GLES2Texture   :   public   Texture { public :      GLES2Texture ( VideoWeakPtr   video ,   const   str_type :: string &   fileName );      ~ GLES2Texture ();      bool   SetTexture ( const   unsigned   int   passIdx   =   0 );      math :: Vector2   GetBitmapSize ()   const ; protected :      bool   LoadTexture (          VideoWeakPtr   video ,          const   string &   fileName ,          GS_COLOR   mask ,          const   unsigned   int   width   =   0 ,   const   unsigned   int   height   =   0 ,          const   unsigned   int   nMipMaps   =   0 );      GLuint   m_textureID ; };
  • 17. Scripting scriptEngine->RegisterGlobalFunction (    &quot;void AddEntity(const string &in)&quot; ,   FUNCTION(engine::AddEntity),   CALL_GENERIC );
  • 18. Outro modelo possível (também multiplataforma)
  • 19.  
  • 20.
  • 21. Problemas comuns Resoluções de tela: um desafio em games baseados em sprites Métodos de entrada:  teclado, mouse, dpad, touchscreen... Codificação de strings:  ANSI vs UTF-7 vs UTF-8 vs UTF-16  Suporte a RTTI e Exceptions: &quot;To boost or not to boost?&quot;          
  • 22.
  • 24. O futuro é multiplataforma Jamais fique preso a uma única plataforma
  • 25.