Your SlideShare is downloading. ×
0
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Desenvolvendo games multiplataforma
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desenvolvendo games multiplataforma

1,265

Published on

Palestra ministrada no The Developers Conference (TDC) em São Paulo no dia 10/07/2011 sobre desenvolvimento de games multiplataforma.

Palestra ministrada no The Developers Conference (TDC) em São Paulo no dia 10/07/2011 sobre desenvolvimento de games multiplataforma.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,265
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvendo Games Multiplataforma
    • André Santee (@DecoSantee)
    • -Programador de games da Jera (@JeraSoftware)
    • -Desenvolvo ferramentas e soluções para gamedev
    • Projetos:
    • -Ethanon Engine
    • -GS2D
  • 2.  
  • 3.  
  • 4.  
  • 5. Pensando multiplataforma
    • -Por quanto tempo você quer que seu código sobreviva?
    • -"Migrar" o código com pouco ou nenhum esforço? É possível?
  • 6. Ficar preso a uma plataforma pode ser fatal
  • 7.
    • O código está pronto para novas plataformas? Não? Isso é OK (sério!)
    E sua equipe?
  • 8. Existe linguagem flexível assim?
  • 9. Podemos levar C++ a qualquer lugar
  • 10. NinJump (Backflip Studios) Pinball Ride (Massive Finger) Angry Birds (Rovio)
  • 11.
    • Mas C++ não possui
    • garbage collection!
    C++ possui bibliotecas de templates shared_ptr<>, weak_ptr<>, ...
  • 12.
    • Já eu, prefiro as linguagens dinâmicas
    • e modernas!
    Justo! Sem problemas...
  • 13. Linguagens de scripting...
    •  
  • 14. Como/Porque funciona
  • 15. Interfaces (classes virtuais)
  • 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. Mandamentos
    • I - Não utilizarás código específico da plataforma explicitamente dentro do código do game.
    II - Lembrai do primeiro mandamento, SEMPRE.
  • 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. Ferramentas disponíveis hoje
    • Open source: -Qt -Ogre -SDL -Löve -GS2D -Ethanon*
    Proprietárias: -Unity -Unreal Engine -BatteryTech
  • 23. www.ethanon.com.br
  • 24. O futuro é multiplataforma Jamais fique preso a uma única plataforma
  • 25. Perguntas?
    • André Santee (@DecoSantee)

×