SlideShare uma empresa Scribd logo
Desenvolvimento de Jogos para
Dispositivos Móveis
Bruno Cicanci
gamedeveloper.com.br




                 UFRJ – GECOM 2011
Quando as Operadoras Dominaram o Mundo
Era Pré iPhone
                 • Apenas operadoras
                   publicavam jogos e aplicativos

                 • As empresas eram obrigadas a
                   seguir as exigências das
                   operadoras

                 • O lucro era baixo, inclusive
                   para grandes empresas

                 • Milhares de aparelhos com
                   características diferentes e
                   sem padrões
Era Pós iPhone
                 • Desenvolvedores
                   independentes podem publicar
                   seus aplicativos e jogos

                 • Operadoras não influenciam
                   nas lojas de aplicativos e jogos,
                   apenas em embeds

                 • Empresas pequenas e grandes
                   lucram muito neste mercado

                 • Poucas variações nas
                   características dos aparelhos
iOS (iPhone, iPod Touch e iPad)
                                                                          • Mesma versão para iPod Touch,
                                                                            iPhone e iPad (3.2+)

                                                                          • HVGA, qHD, XGA

                                                                          • Objective-C e C/C++ com
                                                                          • ambiente de desenvolvimento
                                                                            apenas no MacOSX

                                                                          • Valor da licença: $99

                                                                          • Categoria “Games” da App Store é
                                                                            bloqueada no Brasil

                                                                          • Necessário registrar aparelho para
                                                                            desenvolvimento

                                                                          • +425.000 apps disponíveis*
*Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
Android OS
                                                                          • Versões para smartphones
                                                                            (1.x ~ 2.3.x) diferentes das
                                                                            versões para tablets (3.x)

                                                                          • QVGA, HVGA, WVGA, FWVGA,
                                                                            qHD, SVGA, WXGA

                                                                          • Java e C/C++ com ambiente de
                                                                            desenvolvimento no Windows,
                                                                            Linux e MacOSX

                                                                          • Valor da licença: $25

                                                                          • Qualquer aparelho pode ser
                                                                            usado para desenvolvimento

                                                                          • +250.000 apps disponíveis*
*Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
One Build To Rule Them All
Mercado de smartphones nos EUA

                                                 5%
                                    11%

                                                                                                           Android
                                                                                                           iOS
                                                                                                           Blackberry
                                                                          52%
                             29%                                                                           Windows Phone




Fonte: gamesindustry.biz (23/08/2011) - http://www.gamesindustry.biz/articles/2011-08-23-android-increases-us-market-share-to-52-per-cent
Tablets no Brasil e no Mundo
                                                                            • Podem rodar aplicativos de
                                                                              smartphones sem muitos
                                                                              problemas

                                                                            • Atualmente quase todo fabricante
                                                                              de celular está produzindo tablets

                                                                            • Android OS permitiu o
                                                                              crescimento para concorrência
                                                                              com a Apple

                                                                            • Podem substituir netbooks nos
                                                                              próximos anos

                                                                            • Governo planeja dar incentivo
                                                                              para produção no Brasil*
*Fonte: G1 (24/05/2011) - http://g1.globo.com/tecnologia/noticia/2011/05/doze-empresas-querem-produzir-tablets-no-brasil-diz-mercadante.html
Início do Projeto
                    • Definir um tema/conceito

                    • Definir características do jogo
                      como um produto:
                      ▫ Público
                      ▫ Plataforma
                      ▫ Mercado
                      ▫ Concorrência
                      ▫ Diferenciais

                    • Montar um plano de negócio
                      com foco em produto pode ser
                      útil para organizar esta parte
                      do projeto
Modelo de Negócio
Pago                             Gratuito
• Funciona bem com jogos de      • Funciona bem com jogos de
  iOS, porém desde que tenha       Android, pois a pirataria neste
  uma versão de demonstração       OS é maior
  para o jogador testar
                                 • Anúncios, quando colocados
• Jogos indie geralmente tem       em locais corretos e com uma
  preços entre $0.99 e $2.99       freqüência adequada, podem
                                   dar um bom retorno
• Não é legal colocar anúncios
  em versões de demonstração     • Jogos Freemium são muito
                                   comuns no Android OS e iOS
2D, 2.5D ou 3D?




Fonte: Daniel Sefton (06/08/2011) - http://altdevblogaday.com/2011/08/06/does-3d-have-a-future-in-mobile-gaming/
Game Design
              • Principais pontos:
                ▫ Objetivos
                ▫ Desafios
                ▫ Recompensas

              • Testar conceito e validar o
                gameplay utilizando
                protótipos antes de começar o
                desenvolvimento
Protótipo de Papel
Protótipo Digital
Início da Produção
                     • Jogar fora o protótipo!

                     • Utilize um repositório para o
                       código do jogo com controle de
                       versão

                     • Mantenha documentado todos
                       softwares utilizados e suas
                       respectivas versões

                     • Crie um cronograma com foco
                       em tarefas de cada área

                     • Compartilhe os documentos

                     • Defina linguagens e engines
                       quer serão utilizadas
Programação
              • Desde o início do projeto, preocupe-
                se com a flexibilidade das classes

              • Modularizar as classes do jogo
                também é recomendado a para
                reusabilidade do código

              • Design Pattern Singleton é muito
                utilizado em jogos

              • Separe o código do jogo do código
                específico de um OS

              • Utilize Máquina de Estados para
                controlar o fluxo do jogo

              • Torne seu jogo graficamente
                escalável
Arquitetura
Game Engines
Engine            Prós                       Contras                Indie   Pro

Unity3D           Editor 3D fácil de usar,   Apenas para jogos em   $400*   $1500*
                  software bem               3D e 2.5D.
                  completo.
ShiVa 3D          Programação em C++,        Apenas para jogos em   € 169   € 1499
                  mais barata que a          3D e 2.5D.
                  Unity3D.
Corona SDK        Fácil de usar e rápida     Apenas jogos em 2D.    $199*   $199*
                  para criar jogos em 2D.    Linguagem script
                                             própria.
Marmalade SDK     SDK muito completo,        Não possui editor      $ 149   $ 499
                  programação em C++.        visual.
Cocos2Dx          Opensource e               Apenas jogos em 2D.    $0      $0
                  programação em C++.        Não possui editor
                                             visual.


*Por plataforma
Frameworks
             • Física
               ▫ Box2D
               ▫ Bullet Physics Library

             • Rede
               ▫ RakNet

             • Compressão
               ▫ Zlib

             • Propagandas (Ads)
               ▫ Admob
               ▫ Flurry

             • Script
               ▫ Lua
Fluxo de menus e telas
Sistema de telas
                   • Pop-ups devem ser usadas para
                     confirmar escolhas do jogador,
                     pois dão mais enfase a pergunta

                   • Transições entre telas com
                     efeitos tornam o jogo mais
                     profissional

                   • Interface não deve ser poluída,
                     simplifique opções e use ícones
                     sempre que possível

                   • Splash com logos devem ser
                     dinâmicas, assim será simples
                     adicionar novas imagens
Sistema gráfico
                  • Melhore o desempenho do load
                    de imagens/texturas
                    reutilizando recursos que já
                    estão na memória

                  • Matenha as animações curtas e
                    objetivas

                  • Para jogos em 2D, utilize Sprite
                    Sheets

                  • Faça a parte gráfica ser escalável
                    para que seja automaticamente
                    redimencionado, independente
                    da resolução
Sistema de som
                 • Nem todo formato de audio tem um
                   bom desempenho em dispositivos
                   móveis

                 • A concorrência de sons é um grande
                   problema em aparelhos com
                   hardware fraco

                 • Ulize formatos de audio
                   comprimidos sempre que possível
                   para músicas

                 • Efeitos sonoros devem ser curtos
                   para não causar problemas de
                   concorrência

                 • Utilize loop na música para que seu
                   tamanho fique menor
Sistema de E/S
                 • Trate separadamente todos
                   eventos de input que um
                   device pode receber:
                   ▫ Toque na tela
                   ▫ Acelerômetro
                   ▫ Botões de ação

                 • Caso seja possível rodar seu
                   jogo em landscape e portrait,
                   implemente a troca de
                   orientação
Outros sistemas
                  • Física

                  • Save game

                  • Logs

                  • Achievements

                  • Redes Sociais

                  • Partida em rede

                  • Publicidade

                  • Venda de itens
Arte
       • Nem todos aparelhos suportam
         compressão de textura (ATITC,
         PVRTC, ETC)

       • Recursos descomprimidos são
         maiores, porém garantem o
         funcionamento do jogo em
         qualquer aparelho

       • Em alguns aparelhoes, o
         OpenGL ES requer que os
         arquivos sejam POT

       • Utilize fontes TTF ou mapa de
         caracteres (adicione as fontes no
         projeto também)
Testes
         • Peça para outras pessoas
           testarem seu jogo em
           aparelhos diferentes

         • Caso reportem erros, peça
           para descreverem como
           causaram o erro

         • Utilize logs para identificar
           cada detalhe do jogo

         • Público ideal para testar:
           ▫ Seu público-alvo
           ▫ Quem não costuma jogar
Possíveis problemas
                  • Não confunda um bug com uma
                    nova feature no jogo

                  • Flexibilidade do código ajuda em
                    casos de grandes alterações

                  • Alterações em imagem são bem
                    comuns, mas geralmente não
                    causam impacto na programação

                  • Em alguns casos uma correção pode
                    ser a remoção ou alteração de uma
                    feature

                  • Saiba ouvir sugestões,
                    principalmente para corrigir
                    problemas
Publicação
Apple App Store                    Android Market
• Registrar-se em                  • Registrar-se em
  http://developer.apple.com/        http://developer.android.com

• Pagar a taxa anual de $99        • Pagar a taxa anual de $25

• Enviar jogo para homologação     • Não requer homologação do
  da Apple                           Google, seu jogo fica
                                     disponível imediatamente
• Se aprovado, seu jogo estará
  disponível pelo preço que você
  definiu
Pós Produção
               • Mantenha seu jogo vivo com
                 DLCs, updates e promoções

               • Utilize o jogo criado para fazer
                 uma seqüência ou reskin

               • Se o jogo criar uma marca,
                 tente explorar novos gêneros
                 com os mesmos recursos

               • Pense no que deu certo e
                 errado para melhorar nos
                 próximos projetos
Estude!
• C/C++ e OpenGL

• Orientação a Objetos

• Arquitetura/Engenharia de Software

• Design Patterns

• Boas práticas de programação

• Inglês
Não confie em emuladores!
• Testar em aparelhos reais pode ajudar a
  identificar problemas que não ocorrem em
  emuladores, como:
 ▫ Erros gráficos
 ▫ Estouro de memória
 ▫ Baixo desempenho

• Peça para outras pessoas testarem em seus
  aparelhos
Cuide bem do seu código!
• Mantenha sempre atualizado e organizado

• Adicione comentários úteis no código

• Utilize repositórios de código para controle de
  versão e alteração (SVN, CVS, Perforce,
  Mercurial, SourceSafe, etc) - BitBucket

• Documentação, mesmo mínima, ajuda a lembrar
  o que foi feito
Publique seu jogo!
• Pesquise detalhes de como publicar em cada
  plataforma

• Se for vender seu jogo, faça também uma versão
  gratuita limitada

• Mantenha seu jogo atualizado com conteúdo
  adicional

• Sempre que possível, publique em mais de uma
  plataforma
Jogue!
• Conheça mais sobre outros jogos, não apenas os
  que você gosta

• Tente entender como foi feita a programação de
  seus elementos (interface, gameplay, etc)

• Aprenda a analisar tecnicamente os jogos e
  entender a sua complexidade
Mantenha-se atualizado!
• Saiba o que está acontecendo na indústria

• Entenda as tendências relacionadas a jogos (redes
  sociais, smartphones, tablets, TV digital, html5)

• Leia sobre desenvolvimento de outros jogos e post-
  mortem dos projetos

• Converse com profissionais da indústria

• Tente participar de eventos, concursos e fóruns

• Acompanhe sites e blogs, monte um portfólio
Obrigado!
bruno@gamedeveloper.com.br
Links
•   Sites:
    ▫   Gamasutra - http://www.gamasutra.com/
    ▫   Gamesindustry - http://www.gamesindustry.biz/
    ▫   AppData - http://www.appdata.com/
    ▫   Ars Technica - http://arstechnica.com/gaming/
    ▫   MCV - http://www.mcvuk.com/
    ▫   GameCareerGuide - http://www.gamecareerguide.com/
•   Fóruns
    ▫   GameDev - http://www.gamedev.com.br/
    ▫   PDJ - http://www.programadoresdejogos.com/
    ▫   UniDev - http://www.unidev.com.br/
•   Blogs:
    ▫   AltDevBlogADay - http://altdevblogaday.com/
    ▫   Game Developer – http://gamedeveloper.com.br
    ▫   Game Producer - http://www.gameproducer.net/
    ▫   Indie Games - http://indiegames.com/index.html
•   Revistas:
    ▫   Casual Connect - http://casualconnect.org/magazine-archive/
    ▫   Develop - http://www.develop-online.net/
    ▫   EDGE - http://www.next-gen.biz/
    ▫   Game Developer Magazine - http://www.gdmag.com/homepage.htm
    ▫   Game Sauce - http://gamesauce.org/news/
    ▫   Wired - http://www.wired.com/gaming
Livros
•   Desenvolvimento de Jogos e programação:
    ▫   Code Complete - http://amzn.to/oqrBeP
    ▫   More Effective C++ - http://amzn.to/qQSksw
    ▫   Desenvolvimento de Jogos Eletrônicos - http://novatec.com.br/livros/jogos2/
    ▫   Software Engineering for Game Developers - http://amzn.to/qrY571
    ▫   Game Engine Architecture - http://amzn.to/pgnZFR
    ▫   Game Coding Complete - http://amzn.to/qA0Nz4
    ▫   Programming Game AI by Example - http://amzn.to/nQ5SdY
    ▫   Real-time Rendering - http://amzn.to/pbHDTp
    ▫   Game Programming All in One - http://amzn.to/p2S05M
    ▫   Beginning C++ through Game Programming - http://amzn.to/q0X1fV
    ▫   XNA Game Studio Creators Guide - http://amzn.to/nmSlFf
    ▫   iPhone Programming The Big Nerd Ranch Guide - http://amzn.to/p6kUkJ
    ▫   Head First iPhone and iPad Development - http://amzn.to/p0qXOo
    ▫   Agile Game Development with Scrum - http://amzn.to/nfp3T3
•   Game Design:
    ▫   Game Design Workshop - http://amzn.to/pVvJE0
    ▫   Rules of Play: Game Design Fundamentals - http://amzn.to/oHmOZ8
    ▫   The Game Design Reader: A Rules of Play Anthology - http://amzn.to/pTjOd7
    ▫   Half-Real: Video Games between Real Rules and Fictional Worlds - http://amzn.to/qA7yd6
    ▫   A Theory of Fun for Game Design - http://amzn.to/nmR1Ya
    ▫   The Art of Game Design: A book of lenses - http://amzn.to/p0Z5xr

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-x
Bruno Cicanci
 
Android: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataformaAndroid: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataforma
Jonas Alves
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidSalvador Torres
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional AndroidLucas Damasceno
 
Introdução a dispositivos móveis.
Introdução a dispositivos móveis.Introdução a dispositivos móveis.
Introdução a dispositivos móveis.Eduardo Lagares
 
Curso de Android - Aula #01: Introdução ao Android
Curso de Android - Aula #01: Introdução ao AndroidCurso de Android - Aula #01: Introdução ao Android
Curso de Android - Aula #01: Introdução ao Android
Renato Sousa
 
A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
Erisvaldo Junior
 
Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio Rocha
Ubiracy Santos
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Édipo Souza
 
O Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em MobileO Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em Mobile
Thiago Cortat
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
Wanderlei Silva do Carmo
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
Alexandre Zollinger Chohfi
 
Presentation Oktagon - Startup Competition
Presentation Oktagon - Startup CompetitionPresentation Oktagon - Startup Competition
Presentation Oktagon - Startup Competitionrocampo11
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
Tiago Carmo
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
Elton Minetto
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
Erisvaldo Junior
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
Android
AndroidAndroid
Desenvolvimento Mobile - Rio Info 2012
Desenvolvimento Mobile - Rio Info 2012Desenvolvimento Mobile - Rio Info 2012
Desenvolvimento Mobile - Rio Info 2012
Diego Dukão
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Júlia Fernandes Alves
 

Mais procurados (20)

Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-xDesenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos com Cocos2d-x
 
Android: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataformaAndroid: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataforma
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Introdução a dispositivos móveis.
Introdução a dispositivos móveis.Introdução a dispositivos móveis.
Introdução a dispositivos móveis.
 
Curso de Android - Aula #01: Introdução ao Android
Curso de Android - Aula #01: Introdução ao AndroidCurso de Android - Aula #01: Introdução ao Android
Curso de Android - Aula #01: Introdução ao Android
 
A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio Rocha
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
O Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em MobileO Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em Mobile
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
 
Presentation Oktagon - Startup Competition
Presentation Oktagon - Startup CompetitionPresentation Oktagon - Startup Competition
Presentation Oktagon - Startup Competition
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
Android
AndroidAndroid
Android
 
Desenvolvimento Mobile - Rio Info 2012
Desenvolvimento Mobile - Rio Info 2012Desenvolvimento Mobile - Rio Info 2012
Desenvolvimento Mobile - Rio Info 2012
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
 

Semelhante a Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011

EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma Alano Teles
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
Tadeu Araujo
 
Introdução ao desenvolvimento para android
Introdução ao desenvolvimento para androidIntrodução ao desenvolvimento para android
Introdução ao desenvolvimento para android
Hugo Ferreira
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
Iury Teixeira
 
Cocos 2d
Cocos 2dCocos 2d
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
Going Mobile
Going MobileGoing Mobile
Going Mobile
Rodrigo Borges
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
Campus Party Brasil
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
Giordano Bruno Vieira
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
Roberson Alves
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
Adriel Café
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
Everton Dewes
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsMicrosoft
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USC
Antonio Marin Neto
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
Grendene S/A
 
Linux Móvel: do EZX ao MeeGo
Linux Móvel: do EZX ao MeeGoLinux Móvel: do EZX ao MeeGo
Linux Móvel: do EZX ao MeeGo
UEPA
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensar
cezarsignori
 
Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7
Marcos Jahn
 

Semelhante a Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011 (20)

EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
 
Introdução ao desenvolvimento para android
Introdução ao desenvolvimento para androidIntrodução ao desenvolvimento para android
Introdução ao desenvolvimento para android
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Cocos 2d
Cocos 2dCocos 2d
Cocos 2d
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Going Mobile
Going MobileGoing Mobile
Going Mobile
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Desenvolvimento 3G
Desenvolvimento 3GDesenvolvimento 3G
Desenvolvimento 3G
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPs
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USC
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Linux Móvel: do EZX ao MeeGo
Linux Móvel: do EZX ao MeeGoLinux Móvel: do EZX ao MeeGo
Linux Móvel: do EZX ao MeeGo
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensar
 
Restaurante
RestauranteRestaurante
Restaurante
 
Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7
 

Mais de Bruno Cicanci

Design Patterns in Game Programming
Design Patterns in Game ProgrammingDesign Patterns in Game Programming
Design Patterns in Game Programming
Bruno Cicanci
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
Bruno Cicanci
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
Bruno Cicanci
 
Game Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horasGame Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horas
Bruno Cicanci
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
Bruno Cicanci
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
Bruno Cicanci
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDK
Bruno Cicanci
 

Mais de Bruno Cicanci (7)

Design Patterns in Game Programming
Design Patterns in Game ProgrammingDesign Patterns in Game Programming
Design Patterns in Game Programming
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
 
Game Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horasGame Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horas
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDK
 

Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011

  • 1. Desenvolvimento de Jogos para Dispositivos Móveis Bruno Cicanci gamedeveloper.com.br UFRJ – GECOM 2011
  • 2.
  • 3. Quando as Operadoras Dominaram o Mundo
  • 4. Era Pré iPhone • Apenas operadoras publicavam jogos e aplicativos • As empresas eram obrigadas a seguir as exigências das operadoras • O lucro era baixo, inclusive para grandes empresas • Milhares de aparelhos com características diferentes e sem padrões
  • 5. Era Pós iPhone • Desenvolvedores independentes podem publicar seus aplicativos e jogos • Operadoras não influenciam nas lojas de aplicativos e jogos, apenas em embeds • Empresas pequenas e grandes lucram muito neste mercado • Poucas variações nas características dos aparelhos
  • 6. iOS (iPhone, iPod Touch e iPad) • Mesma versão para iPod Touch, iPhone e iPad (3.2+) • HVGA, qHD, XGA • Objective-C e C/C++ com • ambiente de desenvolvimento apenas no MacOSX • Valor da licença: $99 • Categoria “Games” da App Store é bloqueada no Brasil • Necessário registrar aparelho para desenvolvimento • +425.000 apps disponíveis* *Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
  • 7. Android OS • Versões para smartphones (1.x ~ 2.3.x) diferentes das versões para tablets (3.x) • QVGA, HVGA, WVGA, FWVGA, qHD, SVGA, WXGA • Java e C/C++ com ambiente de desenvolvimento no Windows, Linux e MacOSX • Valor da licença: $25 • Qualquer aparelho pode ser usado para desenvolvimento • +250.000 apps disponíveis* *Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
  • 8. One Build To Rule Them All
  • 9. Mercado de smartphones nos EUA 5% 11% Android iOS Blackberry 52% 29% Windows Phone Fonte: gamesindustry.biz (23/08/2011) - http://www.gamesindustry.biz/articles/2011-08-23-android-increases-us-market-share-to-52-per-cent
  • 10. Tablets no Brasil e no Mundo • Podem rodar aplicativos de smartphones sem muitos problemas • Atualmente quase todo fabricante de celular está produzindo tablets • Android OS permitiu o crescimento para concorrência com a Apple • Podem substituir netbooks nos próximos anos • Governo planeja dar incentivo para produção no Brasil* *Fonte: G1 (24/05/2011) - http://g1.globo.com/tecnologia/noticia/2011/05/doze-empresas-querem-produzir-tablets-no-brasil-diz-mercadante.html
  • 11.
  • 12. Início do Projeto • Definir um tema/conceito • Definir características do jogo como um produto: ▫ Público ▫ Plataforma ▫ Mercado ▫ Concorrência ▫ Diferenciais • Montar um plano de negócio com foco em produto pode ser útil para organizar esta parte do projeto
  • 13. Modelo de Negócio Pago Gratuito • Funciona bem com jogos de • Funciona bem com jogos de iOS, porém desde que tenha Android, pois a pirataria neste uma versão de demonstração OS é maior para o jogador testar • Anúncios, quando colocados • Jogos indie geralmente tem em locais corretos e com uma preços entre $0.99 e $2.99 freqüência adequada, podem dar um bom retorno • Não é legal colocar anúncios em versões de demonstração • Jogos Freemium são muito comuns no Android OS e iOS
  • 14. 2D, 2.5D ou 3D? Fonte: Daniel Sefton (06/08/2011) - http://altdevblogaday.com/2011/08/06/does-3d-have-a-future-in-mobile-gaming/
  • 15. Game Design • Principais pontos: ▫ Objetivos ▫ Desafios ▫ Recompensas • Testar conceito e validar o gameplay utilizando protótipos antes de começar o desenvolvimento
  • 18. Início da Produção • Jogar fora o protótipo! • Utilize um repositório para o código do jogo com controle de versão • Mantenha documentado todos softwares utilizados e suas respectivas versões • Crie um cronograma com foco em tarefas de cada área • Compartilhe os documentos • Defina linguagens e engines quer serão utilizadas
  • 19. Programação • Desde o início do projeto, preocupe- se com a flexibilidade das classes • Modularizar as classes do jogo também é recomendado a para reusabilidade do código • Design Pattern Singleton é muito utilizado em jogos • Separe o código do jogo do código específico de um OS • Utilize Máquina de Estados para controlar o fluxo do jogo • Torne seu jogo graficamente escalável
  • 21. Game Engines Engine Prós Contras Indie Pro Unity3D Editor 3D fácil de usar, Apenas para jogos em $400* $1500* software bem 3D e 2.5D. completo. ShiVa 3D Programação em C++, Apenas para jogos em € 169 € 1499 mais barata que a 3D e 2.5D. Unity3D. Corona SDK Fácil de usar e rápida Apenas jogos em 2D. $199* $199* para criar jogos em 2D. Linguagem script própria. Marmalade SDK SDK muito completo, Não possui editor $ 149 $ 499 programação em C++. visual. Cocos2Dx Opensource e Apenas jogos em 2D. $0 $0 programação em C++. Não possui editor visual. *Por plataforma
  • 22. Frameworks • Física ▫ Box2D ▫ Bullet Physics Library • Rede ▫ RakNet • Compressão ▫ Zlib • Propagandas (Ads) ▫ Admob ▫ Flurry • Script ▫ Lua
  • 23. Fluxo de menus e telas
  • 24. Sistema de telas • Pop-ups devem ser usadas para confirmar escolhas do jogador, pois dão mais enfase a pergunta • Transições entre telas com efeitos tornam o jogo mais profissional • Interface não deve ser poluída, simplifique opções e use ícones sempre que possível • Splash com logos devem ser dinâmicas, assim será simples adicionar novas imagens
  • 25. Sistema gráfico • Melhore o desempenho do load de imagens/texturas reutilizando recursos que já estão na memória • Matenha as animações curtas e objetivas • Para jogos em 2D, utilize Sprite Sheets • Faça a parte gráfica ser escalável para que seja automaticamente redimencionado, independente da resolução
  • 26. Sistema de som • Nem todo formato de audio tem um bom desempenho em dispositivos móveis • A concorrência de sons é um grande problema em aparelhos com hardware fraco • Ulize formatos de audio comprimidos sempre que possível para músicas • Efeitos sonoros devem ser curtos para não causar problemas de concorrência • Utilize loop na música para que seu tamanho fique menor
  • 27. Sistema de E/S • Trate separadamente todos eventos de input que um device pode receber: ▫ Toque na tela ▫ Acelerômetro ▫ Botões de ação • Caso seja possível rodar seu jogo em landscape e portrait, implemente a troca de orientação
  • 28. Outros sistemas • Física • Save game • Logs • Achievements • Redes Sociais • Partida em rede • Publicidade • Venda de itens
  • 29. Arte • Nem todos aparelhos suportam compressão de textura (ATITC, PVRTC, ETC) • Recursos descomprimidos são maiores, porém garantem o funcionamento do jogo em qualquer aparelho • Em alguns aparelhoes, o OpenGL ES requer que os arquivos sejam POT • Utilize fontes TTF ou mapa de caracteres (adicione as fontes no projeto também)
  • 30. Testes • Peça para outras pessoas testarem seu jogo em aparelhos diferentes • Caso reportem erros, peça para descreverem como causaram o erro • Utilize logs para identificar cada detalhe do jogo • Público ideal para testar: ▫ Seu público-alvo ▫ Quem não costuma jogar
  • 31. Possíveis problemas • Não confunda um bug com uma nova feature no jogo • Flexibilidade do código ajuda em casos de grandes alterações • Alterações em imagem são bem comuns, mas geralmente não causam impacto na programação • Em alguns casos uma correção pode ser a remoção ou alteração de uma feature • Saiba ouvir sugestões, principalmente para corrigir problemas
  • 32. Publicação Apple App Store Android Market • Registrar-se em • Registrar-se em http://developer.apple.com/ http://developer.android.com • Pagar a taxa anual de $99 • Pagar a taxa anual de $25 • Enviar jogo para homologação • Não requer homologação do da Apple Google, seu jogo fica disponível imediatamente • Se aprovado, seu jogo estará disponível pelo preço que você definiu
  • 33. Pós Produção • Mantenha seu jogo vivo com DLCs, updates e promoções • Utilize o jogo criado para fazer uma seqüência ou reskin • Se o jogo criar uma marca, tente explorar novos gêneros com os mesmos recursos • Pense no que deu certo e errado para melhorar nos próximos projetos
  • 34.
  • 35. Estude! • C/C++ e OpenGL • Orientação a Objetos • Arquitetura/Engenharia de Software • Design Patterns • Boas práticas de programação • Inglês
  • 36. Não confie em emuladores! • Testar em aparelhos reais pode ajudar a identificar problemas que não ocorrem em emuladores, como: ▫ Erros gráficos ▫ Estouro de memória ▫ Baixo desempenho • Peça para outras pessoas testarem em seus aparelhos
  • 37. Cuide bem do seu código! • Mantenha sempre atualizado e organizado • Adicione comentários úteis no código • Utilize repositórios de código para controle de versão e alteração (SVN, CVS, Perforce, Mercurial, SourceSafe, etc) - BitBucket • Documentação, mesmo mínima, ajuda a lembrar o que foi feito
  • 38. Publique seu jogo! • Pesquise detalhes de como publicar em cada plataforma • Se for vender seu jogo, faça também uma versão gratuita limitada • Mantenha seu jogo atualizado com conteúdo adicional • Sempre que possível, publique em mais de uma plataforma
  • 39. Jogue! • Conheça mais sobre outros jogos, não apenas os que você gosta • Tente entender como foi feita a programação de seus elementos (interface, gameplay, etc) • Aprenda a analisar tecnicamente os jogos e entender a sua complexidade
  • 40. Mantenha-se atualizado! • Saiba o que está acontecendo na indústria • Entenda as tendências relacionadas a jogos (redes sociais, smartphones, tablets, TV digital, html5) • Leia sobre desenvolvimento de outros jogos e post- mortem dos projetos • Converse com profissionais da indústria • Tente participar de eventos, concursos e fóruns • Acompanhe sites e blogs, monte um portfólio
  • 42. Links • Sites: ▫ Gamasutra - http://www.gamasutra.com/ ▫ Gamesindustry - http://www.gamesindustry.biz/ ▫ AppData - http://www.appdata.com/ ▫ Ars Technica - http://arstechnica.com/gaming/ ▫ MCV - http://www.mcvuk.com/ ▫ GameCareerGuide - http://www.gamecareerguide.com/ • Fóruns ▫ GameDev - http://www.gamedev.com.br/ ▫ PDJ - http://www.programadoresdejogos.com/ ▫ UniDev - http://www.unidev.com.br/ • Blogs: ▫ AltDevBlogADay - http://altdevblogaday.com/ ▫ Game Developer – http://gamedeveloper.com.br ▫ Game Producer - http://www.gameproducer.net/ ▫ Indie Games - http://indiegames.com/index.html • Revistas: ▫ Casual Connect - http://casualconnect.org/magazine-archive/ ▫ Develop - http://www.develop-online.net/ ▫ EDGE - http://www.next-gen.biz/ ▫ Game Developer Magazine - http://www.gdmag.com/homepage.htm ▫ Game Sauce - http://gamesauce.org/news/ ▫ Wired - http://www.wired.com/gaming
  • 43. Livros • Desenvolvimento de Jogos e programação: ▫ Code Complete - http://amzn.to/oqrBeP ▫ More Effective C++ - http://amzn.to/qQSksw ▫ Desenvolvimento de Jogos Eletrônicos - http://novatec.com.br/livros/jogos2/ ▫ Software Engineering for Game Developers - http://amzn.to/qrY571 ▫ Game Engine Architecture - http://amzn.to/pgnZFR ▫ Game Coding Complete - http://amzn.to/qA0Nz4 ▫ Programming Game AI by Example - http://amzn.to/nQ5SdY ▫ Real-time Rendering - http://amzn.to/pbHDTp ▫ Game Programming All in One - http://amzn.to/p2S05M ▫ Beginning C++ through Game Programming - http://amzn.to/q0X1fV ▫ XNA Game Studio Creators Guide - http://amzn.to/nmSlFf ▫ iPhone Programming The Big Nerd Ranch Guide - http://amzn.to/p6kUkJ ▫ Head First iPhone and iPad Development - http://amzn.to/p0qXOo ▫ Agile Game Development with Scrum - http://amzn.to/nfp3T3 • Game Design: ▫ Game Design Workshop - http://amzn.to/pVvJE0 ▫ Rules of Play: Game Design Fundamentals - http://amzn.to/oHmOZ8 ▫ The Game Design Reader: A Rules of Play Anthology - http://amzn.to/pTjOd7 ▫ Half-Real: Video Games between Real Rules and Fictional Worlds - http://amzn.to/qA7yd6 ▫ A Theory of Fun for Game Design - http://amzn.to/nmR1Ya ▫ The Art of Game Design: A book of lenses - http://amzn.to/p0Z5xr