SlideShare une entreprise Scribd logo
1  sur  42
Desenvolvimento
de Jogos Mobile


    Bruno Cicanci
DISPOSITIVOS MÓVEIS
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+)

                                                                               •     Poucas variações nos hardwares da
                                                                                     mesma geração

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

                                                                               •     Valor da licença anual: $99

                                                                               •     Categoria “Games” foi adiciona na
                                                                                     AppStore do Brasil no início de 2012

                                                                               •     +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) – A partir da versão
                                                                                     4.0.x tablets e smartphones podem
                                                                                     usar a mesma versão

                                                                               •     Variações de hardware independente
                                                                                     da versão do sistema operacional

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

                                                                               •     Valor da licença anual: $25

                                                                               •     +250.000 apps disponíveis*




*Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
Fragmentação do Android




*Fonte: Android Developers (02/07/2012) - http://developer.android.com/resources/dashboard/platform-versions.html
Mercado mobile nos EUA



                                                       5%
                                        11%

                                                                                                                        Android
                                                                                                                        iOS
                                                                                                                        Blackberry
                                                                                     52%
                                                                                                                        Windows Phone
                                29%




Fonte: gamesindustry.biz (23/08/2011) - http://www.gamesindustry.biz/articles/2011-08-23-android-increases-us-market-share-to-52-per-cent
DESENVOLVIMENTO DE JOGOS
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

• Jogos indie geralmente tem   • Anúncios, quando colocados
  preços entre $0.99 e $2.99     em locais corretos e com uma
                                 freqüência adequada, podem
                                 dar um bom retorno
• A versão de demonstração
  pode ser limitada ou uma
  versão do jogo usando o      • Jogos Freemium são muito
  modelo de negócio gratuito     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/
Início da Produção

                     •   Criar um protótipo para validar a
                         mecânica do jogo
                         (objetivos, desafios, recompensas)

                     •   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 as tecnologias que serão utilizadas
                         (teste primeiro!)
Programação

              •   Jogue fora o protótipo!

              •   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

              •   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
Exemplo de Arquitetura
Game Engines/ Frameworks

Engine            Prós                        Contras                     Indie   Pro

Unity3D           Editor 3D fácil de usar,    Apenas para jogos em 3D     $400*   $1.500*
                  software bem completo,      e 2.5D.
                  programação em C#,
                  Javascript e/ou Boo.
ShiVa 3D          Programação em C++,         Apenas para jogos em 3D     $200    $1.000
                  editor 3D fácil de usar.    e 2.5D.
Corona SDK        Fácil de usar e rápida      Apenas jogos em 2D, e       $199*   $349*
                  para criar jogos em 2D.     possui linguagem script
                                              própria.
Marmalade SDK     SDK muito completo,         Versão trial limitada por   $149    $499
                  programação em C++,         tempo.
                  para jogos 2D e 3D,
                  várias plataformas.
Cocos2Dx          Opensource e                Apenas jogos em 2D.         FREE!   FREE!
                  programação em C++,
                  tools disponíveis (Tiled,
                  TexturePacker), várias
                  plataformas.
*Por plataforma
Outros Frameworks

                    • Física
                        – Box2D
                        – Bullet Physics Library

                    • Rede
                        – RakNet

                    • Compressão
                        – Zlib

                    • Propagandas (Ads)
                        – Admob
                        – Flurry

                    • Script
                        – Lua
Sistema de Telas

                   • Pop-ups devem ser usadas para
                     confirmar escolhas do
                     jogador, pois dão mais ênfase a
                     ação

                   • 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

                  • Mantenha 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 áudio tem um
                     bom desempenho em dispositivos
                     móveis

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

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

                 •   Utilize formatos de áudio
                     comprimidos sempre que possível
                     para músicas

                 •   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

                  •   Menu
                  •   Física
                  •   Save game
                  •   Logs
                  •   Achievements
                  •   Redes Sociais
                  •   Partida em rede
                  •   Publicidade
                  •   Venda de itens
                  •   Strings
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 aparelhos, o OpenGL ES
           requer que os arquivos sejam POT
           (também podem haver diferenças
           quanto a versão do OpenGL ES)

       •   Utilize fontes TTF ou mapa de
           caracteres para textos (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
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
HTML5 - UM NOVO PADRÃO
Por que um novo padrão?
Características do HTML5

                           • Suportado nativamente
                             por todos navegadores
                             (não requer plugin)

                           • Cross-platform
                             (web, mobile, consoles, p
                             c, mac, qualquer coisa
                             com navegador)

                           • Mais rápido do que Flash

                           • Código visível 
Desenvolvimento com HTML5

                     • Utiliza JavaScript, CSS3 e
                       JQuery

                     • Cada vez mais frameworks
                       disponíveis

                     • Facebook e Google+ estão
                       dando suporte para os
                       desenvolvedores

                     • Adobe também está
                       apoiando HTML5 com o
                       software EDGE (beta)
Frameworks e Softwares

                         • Frameworks
                           –   Box2D JS (opensource)
                           –   Cocos2Dx JS (opensource)
                           –   Icenium (free)
                           –   ImpactJS ($99)
                           –   Isometric Engine (£99)
                           –   LimeJS (opensource)
                           –   Moai (free/pago)
                           –   Trigger IO (free)

                         • Softwares
                           – Adobe EDGE (beta)
                           – Aptana Studio 3 (free)
Case: SpaceShip 4042

                                                                                • Protótipo desenvolvido sem
                                                                                  frameworks

                                                                                • Gameplay feito em menos de
                                                                                  10 horas:
                                                                                   –   Colisão com meteoros
                                                                                   –   Movimentação da nave
                                                                                   –   Nave atira
                                                                                   –   Efeito Sonoro
                                                                                   –   Log para debug
                                                                                   –   Meteoro sofre dano
                                                                                   –   Animação da nave
                                                                                   –   Meteoros aleatórios

                                                                                • github.com/cicanci

Disponível em: http://gamedeveloper.com.br/cicanci/games/html5_spaceship4042/
DICAS SOBRE DESENVOLVIMENTO DE JOGOS
Estude!

• C/C++ e OpenGL

• Orientação a Objetos

• Arquitetura/Engenharia de Software

• Design Patterns

• Boas práticas de programação

• Conheça as caracteríscas de cada plataforma

• Inglês e comunicação
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, Github

• 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 (principalmente jogos indie)

• Converse com profissionais da indústria

• Tente participar de eventos, concursos e fóruns

• Acompanhe sites e blogs, monte um portfólio
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
     –   Effective C++ - http://amzn.to/NJ2ed2
     –   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
Obrigado!


bruno@gamedeveloper.com.br

Contenu connexe

Tendances

Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
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
 
É Hora de criar sua própria engine de jogos?
É Hora de criar sua própria engine de jogos?É Hora de criar sua própria engine de jogos?
É Hora de criar sua própria engine de jogos?José Farias
 
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 RochaUbiracy Santos
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos MóveisGrendene S/A
 
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
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidMaurílio Silva
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Fabio Moura Pereira
 

Tendances (20)

Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus Party
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
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
 
É Hora de criar sua própria engine de jogos?
É Hora de criar sua própria engine de jogos?É Hora de criar sua própria engine de jogos?
É Hora de criar sua própria engine de jogos?
 
Apresentação android
Apresentação androidApresentação android
Apresentação android
 
Games imersivos
Games imersivosGames imersivos
Games imersivos
 
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
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Artigo unity3 d
Artigo unity3 dArtigo unity3 d
Artigo unity3 d
 
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
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para Android
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
 
Flash mobile
Flash mobileFlash mobile
Flash mobile
 
Android
Android Android
Android
 
Workshops de Unity
Workshops de UnityWorkshops de Unity
Workshops de Unity
 
Android
AndroidAndroid
Android
 

Similaire à TDC 2012 - Desenvolvimento de Jogos Mobile

EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma Alano Teles
 
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...Eteg
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Androidilegra
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Impacta Eventos
 
Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7Marcos Jahn
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsMicrosoft
 
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 plataformaJonas Alves
 
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
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Tadeu Araujo
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFGiordano Bruno Vieira
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaDanielAmaral70
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1Talita Carvalho
 

Similaire à TDC 2012 - Desenvolvimento de Jogos Mobile (20)

EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma EDTED - Frameworks mobile multiplataforma
EDTED - Frameworks mobile multiplataforma
 
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
 
Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7Desenvolvimento para Windows Phone 7
Desenvolvimento para Windows Phone 7
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPs
 
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
 
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
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
Restaurante
RestauranteRestaurante
Restaurante
 
Herez ubuntu mobile
Herez ubuntu mobileHerez ubuntu mobile
Herez ubuntu mobile
 
Cocos 2d
Cocos 2dCocos 2d
Cocos 2d
 
Going Mobile
Going MobileGoing Mobile
Going Mobile
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1
 
JavaMe no Mercado Mobile
JavaMe no Mercado MobileJavaMe no Mercado Mobile
JavaMe no Mercado Mobile
 
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
 

Plus de Bruno Cicanci

Design Patterns in Game Programming
Design Patterns in Game ProgrammingDesign Patterns in Game Programming
Design Patterns in Game ProgrammingBruno Cicanci
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesBruno Cicanci
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the gameBruno 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 horasBruno 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 JogoBruno Cicanci
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design PatternsBruno Cicanci
 
Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKBruno Cicanci
 

Plus 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
 

TDC 2012 - Desenvolvimento de Jogos Mobile

  • 3. 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
  • 4. 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
  • 5. iOS (iPhone, iPod Touch e iPad) • Mesma versão para iPod Touch, iPhone e iPad (3.2+) • Poucas variações nos hardwares da mesma geração • Objective-C e C/C++ com ambiente de desenvolvimento apenas no MacOSX • Valor da licença anual: $99 • Categoria “Games” foi adiciona na AppStore do Brasil no início de 2012 • +425.000 apps disponíveis* *Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
  • 6. Android OS • Versões para smartphones (1.x ~ 2.3.x) diferentes das versões para tablets (3.x) – A partir da versão 4.0.x tablets e smartphones podem usar a mesma versão • Variações de hardware independente da versão do sistema operacional • Java e C/C++ com ambiente de desenvolvimento no Windows, Linux e MacOSX • Valor da licença anual: $25 • +250.000 apps disponíveis* *Fonte: develop (24/08/2011) - http://www.develop-online.net/news/38512/Windows-Marketplace-surpasses-30000-apps
  • 7. Fragmentação do Android *Fonte: Android Developers (02/07/2012) - http://developer.android.com/resources/dashboard/platform-versions.html
  • 8. Mercado mobile nos EUA 5% 11% Android iOS Blackberry 52% Windows Phone 29% Fonte: gamesindustry.biz (23/08/2011) - http://www.gamesindustry.biz/articles/2011-08-23-android-increases-us-market-share-to-52-per-cent
  • 10. 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
  • 11. 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 • Jogos indie geralmente tem • Anúncios, quando colocados preços entre $0.99 e $2.99 em locais corretos e com uma freqüência adequada, podem dar um bom retorno • A versão de demonstração pode ser limitada ou uma versão do jogo usando o • Jogos Freemium são muito modelo de negócio gratuito comuns no Android OS e iOS
  • 12. 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/
  • 13. Início da Produção • Criar um protótipo para validar a mecânica do jogo (objetivos, desafios, recompensas) • 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 as tecnologias que serão utilizadas (teste primeiro!)
  • 14. Programação • Jogue fora o protótipo! • 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 • 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
  • 16. Game Engines/ Frameworks Engine Prós Contras Indie Pro Unity3D Editor 3D fácil de usar, Apenas para jogos em 3D $400* $1.500* software bem completo, e 2.5D. programação em C#, Javascript e/ou Boo. ShiVa 3D Programação em C++, Apenas para jogos em 3D $200 $1.000 editor 3D fácil de usar. e 2.5D. Corona SDK Fácil de usar e rápida Apenas jogos em 2D, e $199* $349* para criar jogos em 2D. possui linguagem script própria. Marmalade SDK SDK muito completo, Versão trial limitada por $149 $499 programação em C++, tempo. para jogos 2D e 3D, várias plataformas. Cocos2Dx Opensource e Apenas jogos em 2D. FREE! FREE! programação em C++, tools disponíveis (Tiled, TexturePacker), várias plataformas. *Por plataforma
  • 17. Outros Frameworks • Física – Box2D – Bullet Physics Library • Rede – RakNet • Compressão – Zlib • Propagandas (Ads) – Admob – Flurry • Script – Lua
  • 18. Sistema de Telas • Pop-ups devem ser usadas para confirmar escolhas do jogador, pois dão mais ênfase a ação • 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
  • 19. Sistema Gráfico • Melhore o desempenho do load de imagens/texturas reutilizando recursos que já estão na memória • Mantenha 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
  • 20. Sistema de Som • Nem todo formato de áudio tem um bom desempenho em dispositivos móveis • A concorrência de sons é um grande problema em aparelhos com hardware fraco • Efeitos sonoros devem ser curtos para não causar problemas de concorrência • Utilize formatos de áudio comprimidos sempre que possível para músicas • Utilize loop na música para que seu tamanho fique menor
  • 21. 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
  • 22. Outros Sistemas • Menu • Física • Save game • Logs • Achievements • Redes Sociais • Partida em rede • Publicidade • Venda de itens • Strings
  • 23. 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 aparelhos, o OpenGL ES requer que os arquivos sejam POT (também podem haver diferenças quanto a versão do OpenGL ES) • Utilize fontes TTF ou mapa de caracteres para textos (adicione as fontes no projeto também)
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. HTML5 - UM NOVO PADRÃO
  • 28. Por que um novo padrão?
  • 29. Características do HTML5 • Suportado nativamente por todos navegadores (não requer plugin) • Cross-platform (web, mobile, consoles, p c, mac, qualquer coisa com navegador) • Mais rápido do que Flash • Código visível 
  • 30. Desenvolvimento com HTML5 • Utiliza JavaScript, CSS3 e JQuery • Cada vez mais frameworks disponíveis • Facebook e Google+ estão dando suporte para os desenvolvedores • Adobe também está apoiando HTML5 com o software EDGE (beta)
  • 31. Frameworks e Softwares • Frameworks – Box2D JS (opensource) – Cocos2Dx JS (opensource) – Icenium (free) – ImpactJS ($99) – Isometric Engine (£99) – LimeJS (opensource) – Moai (free/pago) – Trigger IO (free) • Softwares – Adobe EDGE (beta) – Aptana Studio 3 (free)
  • 32. Case: SpaceShip 4042 • Protótipo desenvolvido sem frameworks • Gameplay feito em menos de 10 horas: – Colisão com meteoros – Movimentação da nave – Nave atira – Efeito Sonoro – Log para debug – Meteoro sofre dano – Animação da nave – Meteoros aleatórios • github.com/cicanci Disponível em: http://gamedeveloper.com.br/cicanci/games/html5_spaceship4042/
  • 34. Estude! • C/C++ e OpenGL • Orientação a Objetos • Arquitetura/Engenharia de Software • Design Patterns • Boas práticas de programação • Conheça as caracteríscas de cada plataforma • Inglês e comunicação
  • 35. 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
  • 36. 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, Github • Documentação, mesmo mínima, ajuda a lembrar o que foi feito
  • 37. 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
  • 38. 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
  • 39. 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 (principalmente jogos indie) • Converse com profissionais da indústria • Tente participar de eventos, concursos e fóruns • Acompanhe sites e blogs, monte um portfólio
  • 40. 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
  • 41. Livros • Desenvolvimento de Jogos e programação: – Code Complete - http://amzn.to/oqrBeP – Effective C++ - http://amzn.to/NJ2ed2 – 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