mobile game case: bboy in heaven´s mission
TRANSCRIPT
Overview da apresentação• Mercado de jogos wireless• Jogos de sucesso• Bboy : desenvolvendo jogos wireless
– Criação– Tecnologia– Lidando com as limitações– Usabilidade e curva de aprendizado– Analisando o processo– Ferramentas– Lições aprendidas– Bboy em ação
Mercado de jogos Wireless no mundo• Já está acontecendo:
Mercado global de jogos / 2001: $28b (Jogos wireless: $.0007b)$30b em 2006 (Jogoswireless $3.6b)
Ovum Research:em 2006 jogos wireless games serão $4.4b
Strategy Analytics:$1b+ em 2003, $7b+ em 2008
IDC:7.0 milhões de jogadores wireless em 2002/371.2 milhões de jogadores wireless em 2007
Mercado de jogos Wireless no mundo• Ainda há espaço para os pequenos
• Grandes nomes ainda estão tímidos• Baixo custo de desenvolvimento• Possibilidades de distribuição• Média de preço : 3 US dólares
• No Brasil:• Mão de obra abundante• Criatividade abundante• Ferramentas gratuitas
Sucesso mundo a fora : Simplicidade!• Divertir é a palavra chave
• Um bom jogo não é feito somente de :
– Bons gráficos– Engines 3D de última geração– Milhares de fases diferentes
• Um bom jogo é feito de:
– Uma boa e bem contada história– Personagens cativantes– Desafios balanceados– Fatores “viciantes”– Os fatores do primeiro item
Sucesso mundo a fora: Exemplos• Jogos que ganham pela simplicidade
• Pontos fortes: Simplicidade e facilidade de uso• 3D não é garantia de sucesso. • 3D = custos mais altos, poucos aparelhos dão suporte
Sucessos Mundo a fora: Hits!• Qualidade acima da média
– Pontos fortes: Complexidade aliada facilidade
Limonade tycoon Townsmen Ancient Empires
Mercado no brasil: Ainda engatinhando• Como comprar? Site das operadoras
• Preço médio : 10 reais (!!!) jogos perfeitos para baixar esse custo :jogos 2D
• Pouca variedade
Bboy : Desenvolvendo jogos Wireless no Brasil
• INdT em parceira com o C.E.S.A.R
• Conceito• Você é Bboy, um anjo querendo
provar seu valor e recebe a missão de resgatar almas capturadas em 3 planos no mundo terreno. Sua promoção para arcanjo depende do seu desempenho!
• Referências:Incredible machinesLost VikingsLemmingsKrusty fun houseMarsupilami
Bboy: Equipe• Lerê: 9 pessoas ( 7 full time ) x 3 meses • Objetivo inicial: análise de processo• Equipe baseada no processo RUP
Engenheiros de software: Mauro Vieira, Telmo Mota, Jorge Ae
Designer gráfico: Francisco Spencer
Game Designer: Marcelo Eduardo
Gerente de projeto: Neildes vieira / Aldenor Martins
Analistas de negócios: Ivan Patriota e Hilmer Neri
Bboy: Ferramentas• Eclipse Ide : experiência da equipe com ferramenta foi crucial.
FREEWARE
• Nokia Developer Suite: Emuladores e conversores. FREEWARE
• WTK 1.4 ( wireless Toolkit da sun ). FREEWARE
• Ant & Antenna : build . FREEWARE
• Proguard: Obfuscador . FREEWARE
• WinCVS. FREEWARE
• Desenvolvimento proprio : Editor de cenário
Bboy : Processo de CriaçãoGAME DESIGN :Criação do conceito , personagens e
ambientação
1 e 2 semana : brainstorm para criação das regras macros.
Gera : Documento de Game Design
Cobre : Necessidades Técnicas e artisticas do jogo
Opcional : protótipo em game Maker
Atenção : às restrições.
Bboy: PersonagensDiabinhos : antagonista, tentam evitar que bboy salve as almasAlmas : Cegas e bobas morrem de medo dos diabinhosFoco: Busca por personagens engraçados e carismáticos. Sempre.
Bboy: Fluxo simplificado do jogoO jogador deve vencer 15 fases salvando o máximo que puder das 10 almas em cada uma delas.Detalhes que fazem a diferença: Cheat code pra abrir fases. Finais diferentes para 100% e menos que issoNão existe limite de vidas. O obstáculo mair do jogador é o próprio quebra-cabeça de cada fase.
Tela de entrada Seleção de fasesFases 1 a 5 fases 6 a 10 fase 11 a 15
Fim 1
Fim 2
O jogo mescla ação com puzzle
Bboy deve correr a fase atrás de itens, protegendo sempre as almas, até que possa montar o caminho perfeito para que elas possam escapar.
Bboy: AmbientaçãoCriar ambientes diferentes torna a experiência menos repetitiva e envolve pouco trabalho do time de programadores. Utilizando os 3 ambienteschegamos ao total de 15 fases.
29 tiles de 16px
20 tiles de 16px23 tiles de 16px
Bboy: Evolução gráfica da ambientaçãoFoco no alvo: Divertido, carismático, estilo cartoon, não agressivo.
Bboy: Level designCriar fases com progressivo aumento da dificuldade.Não desanimar o usuário com fases impossíveis.Tarefa demorada e complicada. Perdura por todo projeto
Ferramenta própria criada : Level Editor em Dhtml ( 2 dias )
Bboy: Level designGerar fases com progressivo aumento da dificuldade.Não desanimar o usuário com fases impossíveis.Tarefa demorada e complicada. Perdura por todo projeto
Ferramenta propria gerada : Level Editor em Dhtml ( 2 dias )
Bboy: Recursos de imagensGrande quantidade de imagens necessárias:Observar limite ( geralmente da operadora )
Bboy: O processo • Desenvolver jogo pra celular pede um processo enxuto, rápido e flexivel.
• RUP se mostrou inadequado pro jogo
• Sendo que em diversos momentos o projeto chegou a parar por culpa doprocesso, e os documentos do RUP foram pouco utilizados.
• Deve se ter em mente: Um processo simples, que se adeque a qualquer tipo dejogo, pois cada estilo tem suas particularidades e vão pedir documentos diferentes.
• No final um processo customizado mesclando alguns documentos do RUP ealgumas filosofias do XP, foi criado e utilizado.
• Comunicação é extremamente importante no projeto. Toda equipe deve conhecer bem o jogo e tudo que se almeja com o produto.
• Mais sobre processo desenvolvimento na Revista: MundoJava
Bboy: Tecnologia• Escolha da plataforma: Symbian ou Java?
– Por quê java?
Grande expertise do C.E.S.A.RPrazo Curto e orçamento limitadoFoco: analisar o processo de desenvolvimento jogos.Facilidade de desenvolvimentoPossibilidade de porte para outros aparelhos
Desvantagens :
PerformanceLimitaçoes : sons, efeitos etc.Memória controlada pelo garbageCollector
Bboy: Lidando com as limitações• Desenvolver pra celular é lidar com severas limitações:
1. Memória2. Armazenamento3. Processamento4. GUI
Bboy: Lidando com as limitações• Memória ( execução )
Heap varia de 128kb até 10 megas
Imagens coloridas : 2 Bytes/cor *W*H+68 bytes
Ex: imagem 128x128 ( ~5kb em disco ) : 32kb no heap!!!
Solução: Reutilização de imagens, DirectUtils da nokia.
Bboy: Lidando com as limitações
Armazenamento ( em java )Somente RMS. Limite pequeno em vários aparelhos ( 20kb )Não pode salvar no sistema de arquivosMédia de tamanho de .Jars = 64kb
ProcessamentoGrande variação do poder de processamentoSeries 60 : processadores ARM 100 mhz : sem suporte a ponto
flutuanteBboy : Grande complexidade de redesenho, e grande numero de
entidades na tela : ir até o limite da kvm
Bboy: Lidando com as limitações
GUI – Interface Gráfica Diferentes celulares podem ter diferentes implementaçõesEx: 7650 3650 e Ngage
Bboy: Lições aprendidas• Se Precisa de alta perfomance, bluetooth ou outro recurso do
sistema na serie 60 utilize C++ nativo
• GC não funciona corretamente. Efeturar controle severo da memória : memory status
• Teste no aparelho final sempre : 7650 tem RAM do que o 3650
• Utilizar Menos Orientação a objeto : menos classes, evitar packages
• Evitar uso de intefaces, metodos sincronizados e Strings
• Cacheie a maior parte dos elementos
Bboy: Lições aprendidas• Quando utilizar jogos com tiles evitar utilizar todo o canvas
• Utilize tiles maior que 16x16
• Otimize seu metodo draw para evitar flicks
• Midis consomem muita memória
• Tons com oitavas baixas ( 0 ) não tocam com volume satisfatório
• Evitar uso desnecessário de imagens
• Controlar a equipe e gerentes para não se repetir :
• “ Ah seria ótimo se ele pudesse voar...”