O desafio (e soluções) do
desenvolvimento multiplataforma


      Luiz Alessandro Nörnberg
          CTO, Izyplay Game Studio




                                     luiz.nornberg@izyplay.com.br
3



    Luiz Alessandro Nörnberg

•   Diretor de Tecnologia no Izyplay Game Studio
•   Editor do blog Abrindo o Jogo
•   10 anos como diretor de R&D na Gestum S.A.
•   Total de 20 anos de desenvolvimento de jogos digitais
•   Midcore gamer (sempre que dá tempo...)



        “Possuo a maior parte do EXP na parte tecnológica,
         mas já completei várias quests de game design.”
4



  Agenda

• Desafio
• Soluções
• Na prática...
Desafio
6



  Qual é mesmo o desafio?

• “Write once, run every where”
• Alcançar o maior público possível
• Alcançar o público o maior tempo possível
   – Estar sempre disponível quando o público quiser
7



  Principalmente em

• Jogos casuais
   – Cada vez mais um “serviço”, acessivel em varias
     plataformas.
   – Baixo valor comercial, “ganha na quantidade”
• Advergames
   – Nem precisa explicar...
   – Quanto mais impactados, melhor
8



  Porque é um desafio

• Infelizmente, é assim que é
• A segmentação ainda é reforçada pelos fabricantes
   – Todos querem seus apps e games
   – De preferência, SÓ na plataforma deles...
• Não existe hoje uma solução ideal crossplataforma
9



    Quais plataformas temos hoje?

•   Desktop (Web)      •   iOS
•   Smartphone         •   Android
•   Tablet             •   Windows Phone
•   Web                •   Blackberry Tablet OS (Playbook)
•   Smart TV           •   Windows 7
                       •   Windows 8
Falando em games...    •   Mac
...não esqueçamos os   •   Linuxes
consoles
Soluções
11



    Muitas opções

•   Muitos frameworks e ferramentas
•   Corona, Moai, Construct 2, Phonegap, Appmobi, etc.
•   A maioria não é para todas plataformas
•   Os mais flexíveis adicionam muitas camadas extras
•   Não raramente demandam linguagem própria ou
    pouco conhecida
12



  Tendências

• Action Script 3 (AS3)
• Javascript + HTML 5
• Unity
13



  E o Java?

• Ainda é uma possibilidade, em termos técnicos
• Presente em muitos locais (desktop, blu-ray, set-top
  box, feature phone)
• Ausente onde é importante hoje (smartphones,
  tablets, smart TVs)
• Fazem apenas 4 anos que eu sugeria Java como
  multiplataforma!
14



    Unity

•   Há tempos mantendo-se como opção multiplataforma
•   Principal opção para jogos “pesados” (leia-se 3D)
•   Windows, Linux, Mac
•   iOS, Android, Windows Phone
•   Web
•   Consoles!
15



  Flash rises

• Flash volta à cena para mobile
• Quer dizer, o AIR, Adobe Integrated Runtime
• Mesmo o AIR possui resistência em algumas
  plataformas (Windows Phone, Smart TVs)
• Atende Win 7, Mac, Linux, iOS, Android, Blackberry
• Provavelmente vai atender Win 8 e Win Phone 8
• Hoje, é a melhor tecnologia crossplataforma para
  serviços leves e médios
16



  Javascript + HTML 5

• Única crossplataforma de fato
• Desde o desktop até a Smart TV
• Potencial muito grande (hoje, apenas isso)
   – Digamos que apenas serviços leves
• Problemas:
   – Falta de ferramentas / workflow
   – Falta de padronização
   – Variações grandes no grau de suporte (WebGL,
     áudio, cache, etc)
Na prática...
18



  Apps adaptativos

• Projetos simples conseguem ter codebase única
• Projetos complexos precisam ser adaptativos
   – Sim, estou falando de IFs no código
   – Não são pecado, não...
• Diferenças grandes exigem código separado
19



  Além da implementação

• O projeto precisa prever a multiplataforma
  (principalmente o game design)
• Quando possível, projeta-se pelo mínimo
  denominador comum
• Caso contrário, teremos código separado
20



  Mesma “base” do código

• O importante é isolar a base do código, o “core”
• Ter blocos de código em separado não é realmente um
  problema, se bastar compilar cada um separadamente
21



    Ganhei multiplataforma, perdi algo?

• Sim!
• Desempenho (dependendo do projeto)
• Máxima integração com a plataforma (look and feel)
• Recursos específicos da plataforma (sensores, etc)
• Há quem critique o desenvolvimento crossplataforma
  por conta destes aspectos.
• A solução, por enquanto, é realmente portar o código.
Em conclusão
23



  AIR, HTML, Unity

• Estas são as tecnologias crossplataformas “de
  verdade”
• AIR e HTML servem para apps (além de games)
• Unity é a opção para foco apenas em jogos (consoles)

  O cenário é muito melhor do que a 3 anos atrás, mas
  certamente ainda bem pior do que daqui a 3 anos...
24



Obrigado




           luiz.nornberg@izyplay.com.br

Desafio do desenvolvimento multiplataforma, 2º SouWebPel

  • 2.
    O desafio (esoluções) do desenvolvimento multiplataforma Luiz Alessandro Nörnberg CTO, Izyplay Game Studio luiz.nornberg@izyplay.com.br
  • 3.
    3 Luiz Alessandro Nörnberg • Diretor de Tecnologia no Izyplay Game Studio • Editor do blog Abrindo o Jogo • 10 anos como diretor de R&D na Gestum S.A. • Total de 20 anos de desenvolvimento de jogos digitais • Midcore gamer (sempre que dá tempo...) “Possuo a maior parte do EXP na parte tecnológica, mas já completei várias quests de game design.”
  • 4.
    4 Agenda •Desafio • Soluções • Na prática...
  • 5.
  • 6.
    6 Qualé mesmo o desafio? • “Write once, run every where” • Alcançar o maior público possível • Alcançar o público o maior tempo possível – Estar sempre disponível quando o público quiser
  • 7.
    7 Principalmenteem • Jogos casuais – Cada vez mais um “serviço”, acessivel em varias plataformas. – Baixo valor comercial, “ganha na quantidade” • Advergames – Nem precisa explicar... – Quanto mais impactados, melhor
  • 8.
    8 Porqueé um desafio • Infelizmente, é assim que é • A segmentação ainda é reforçada pelos fabricantes – Todos querem seus apps e games – De preferência, SÓ na plataforma deles... • Não existe hoje uma solução ideal crossplataforma
  • 9.
    9 Quais plataformas temos hoje? • Desktop (Web) • iOS • Smartphone • Android • Tablet • Windows Phone • Web • Blackberry Tablet OS (Playbook) • Smart TV • Windows 7 • Windows 8 Falando em games... • Mac ...não esqueçamos os • Linuxes consoles
  • 10.
  • 11.
    11 Muitas opções • Muitos frameworks e ferramentas • Corona, Moai, Construct 2, Phonegap, Appmobi, etc. • A maioria não é para todas plataformas • Os mais flexíveis adicionam muitas camadas extras • Não raramente demandam linguagem própria ou pouco conhecida
  • 12.
    12 Tendências •Action Script 3 (AS3) • Javascript + HTML 5 • Unity
  • 13.
    13 Eo Java? • Ainda é uma possibilidade, em termos técnicos • Presente em muitos locais (desktop, blu-ray, set-top box, feature phone) • Ausente onde é importante hoje (smartphones, tablets, smart TVs) • Fazem apenas 4 anos que eu sugeria Java como multiplataforma!
  • 14.
    14 Unity • Há tempos mantendo-se como opção multiplataforma • Principal opção para jogos “pesados” (leia-se 3D) • Windows, Linux, Mac • iOS, Android, Windows Phone • Web • Consoles!
  • 15.
    15 Flashrises • Flash volta à cena para mobile • Quer dizer, o AIR, Adobe Integrated Runtime • Mesmo o AIR possui resistência em algumas plataformas (Windows Phone, Smart TVs) • Atende Win 7, Mac, Linux, iOS, Android, Blackberry • Provavelmente vai atender Win 8 e Win Phone 8 • Hoje, é a melhor tecnologia crossplataforma para serviços leves e médios
  • 16.
    16 Javascript+ HTML 5 • Única crossplataforma de fato • Desde o desktop até a Smart TV • Potencial muito grande (hoje, apenas isso) – Digamos que apenas serviços leves • Problemas: – Falta de ferramentas / workflow – Falta de padronização – Variações grandes no grau de suporte (WebGL, áudio, cache, etc)
  • 17.
  • 18.
    18 Appsadaptativos • Projetos simples conseguem ter codebase única • Projetos complexos precisam ser adaptativos – Sim, estou falando de IFs no código – Não são pecado, não... • Diferenças grandes exigem código separado
  • 19.
    19 Alémda implementação • O projeto precisa prever a multiplataforma (principalmente o game design) • Quando possível, projeta-se pelo mínimo denominador comum • Caso contrário, teremos código separado
  • 20.
    20 Mesma“base” do código • O importante é isolar a base do código, o “core” • Ter blocos de código em separado não é realmente um problema, se bastar compilar cada um separadamente
  • 21.
    21 Ganhei multiplataforma, perdi algo? • Sim! • Desempenho (dependendo do projeto) • Máxima integração com a plataforma (look and feel) • Recursos específicos da plataforma (sensores, etc) • Há quem critique o desenvolvimento crossplataforma por conta destes aspectos. • A solução, por enquanto, é realmente portar o código.
  • 22.
  • 23.
    23 AIR,HTML, Unity • Estas são as tecnologias crossplataformas “de verdade” • AIR e HTML servem para apps (além de games) • Unity é a opção para foco apenas em jogos (consoles) O cenário é muito melhor do que a 3 anos atrás, mas certamente ainda bem pior do que daqui a 3 anos...
  • 24.
    24 Obrigado luiz.nornberg@izyplay.com.br