De que se trata o artigo:

Neste artigo será apresentada a construção de um jogo da velha. Mostraremos de forma prática e passo a passo os conceitos relacionados ao sistema Android para este tipo de jogo.


Em que situação o tema é útil:

Este artigo pode ser útil para desenvolvedores iniciantes ou experientes que desejam entrar neste fantástico mundo dos jogos.

Resumo DevMan:

De acordo com dados sobre o Market - loja de aplicativos para Android OS da Google, jogos representam entre 30% e 50% do volume de downloads de aplicativos. Sendo assim, torna-se um grande nicho para ser explorado pelos desenvolvedores, e este artigo vem contribuir neste aspecto.
Autores: Júlio Faerman e Luiz Fernando Barbosa

Atualmente, os jogos eletrônicos são considerados uma das mais expressivas práticas de entretenimento. A grande paixão pela essência criativa e divertida dos jogos é motivada pelo seu mercado milionário, que segundo a Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos (www.abragames.org) possui um faturamento anual superior a 20 milhões de reais. Isso faz com que os jogos se tornem cada vez mais populares, conquistando um imenso público de todos os gêneros e idades, e criando novos desafios para os profissionais da área.

Associado a isto, o mercado de celulares vem sofrendo uma grande revolução nos últimos anos. O aumento do poder computacional dos aparelhos os fez ganhar diversas funcionalidades que estão cada vez mais atrativas para os usuários. Os smartphones, como são chamados os telefones celulares com recursos avançados, são aparelhos que agrupam um conjunto de funcionalidades que vão muito além de ligar e receber chamadas de voz e enviar mensagens de texto. Atualmente, os usuários desses dispositivos podem contar com telas sensíveis ao toque, câmeras de ótima qualidade, sensores de movimento, internet móvel Wi-Fi ou 3G, acesso a mapas e GPS, leitores de arquivos PDF ou do Microsoft Office, jogos 3D, grande quantidade de memória para armazenamento de arquivos, entre outros.

Recentemente, os jogos para celulares ganharam popularidade por fornecer o entretenimento pessoal móvel. Esta popularidade faz com que os jogos desempenhem um papel fundamental na geração de renda para as operadoras de celulares, desenvolvedores de jogos e fabricantes de aparelhos telefônicos.

Os jogos móveis podem ser classificados em três categorias:

  • Jogos embutidos: jogos que são codificados no sistema do aparelho celular e são disponibilizados com ele.
  • Jogos de SMS: os jogos que utilizam o envio de mensagens de texto, freqüentemente, em forma de concursos e pesquisas ao vivo. Não muito popular, pois o custo do jogo aumenta com cada SMS enviada.
  • Jogos de Navegador: estes jogos utilizam um micro navegador embutido no telefone celular. As pessoas podem jogar tais jogos conectados através da sua operadora de celular ou do site de jogos de um fornecedor terceirizado ou descarregá-los para jogarem quando estiverem desconectados. Esta categoria inclui uma ampla escala de jogos, tais como jogos individuais e multiplayer.

Dentre estas três categorias, a dos jogos de navegador é, hoje, o tipo mais popular de jogos para celulares pelo seu conteúdo inovador e rico em multimídia, apresentação atraente, e um custo mais baixo de jogar comparado aos jogos de SMS.

Considerando a grande diversidade de plataforma e o grande número de usuários de jogos, esse mercado é visto com otimismo por muitas empresas e profissionais, pois ao contrário do que muitos pensam, desenvolver um jogo não é uma tarefa difícil. Basicamente, são necessários dois requisitos básicos para a elaboração de game: primeiro, é necessário criatividade para montar um roteiro interessante para o jogo e, por fim, ter conhecimento sobre uma linguagem de programação e suas APIs (Application Programming Interface) para implementar na forma de código fonte toda a lógica e funcionamento do jogo.

Neste contexto, a principal motivação deste artigo foi aprender alguns conceitos do sistema Android de uma forma divertida, fazendo um jogo, além de ser um mercado em constante expansão.

O desenvolvimento de jogos passa por várias etapas, e algumas delas são:

  • Game Design;
  • Rascunho dos objetos e cenários;
  • Modelagem;
  • Engenharia de Software;
  • Programação.

O Game Design é a etapa onde o jogo é criado com suas idéias, personagens e estória, ou seja, é a concepção propriamente dita. O rascunho do jogo é a etapa do processo que auxilia os modeladores a criarem o mundo do jogo.

Já a modelagem é a etapa onde serão criados modelos e texturas utilizados no jogo. Na engenharia de software é feita a modelagem do sistema, e na programação, o jogo é desenvolvido. Este artigo abordará apenas a etapa da programação.

Neste contexto, neste tutorial desenvolveremos um jogo da velha usando vários recursos tais como: layouts, menu, passar parâmetros de uma atividade para outra, ler e salvar dados via preferências, tela de inicialização e recursos de música através da API Media Player do Android (ler Nota DevMan 1), o sistema operacional do google.

Nota DevMan 1. API Media Player

É a classe utilizada para controlar a reprodução de arquivos do tipo áudio/vídeo e stream.

Tipos de jogos

Para desenvolver um jogo de sucesso é preciso ter conhecimento não apenas sobre programação. É necessário ter uma visão de mercado, não apenas do mercado de jogos para celulares, mas do mercado de jogos para dispositivos móveis em geral, incluindo outras tecnologias. É importante saber o que faz com que um jogo tenha chances de entrar no mercado. Em suma, conhecer vários jogos ajuda você a ter idéias para desenvolver o seu próprio jogo - é interessante saber em quais pontos outros jogos acertaram e erraram.

Um ponto que facilita na criação e concepção de um jogo é sua classificação. Isso vai auxiliar no game design e na programação em si. Vamos conhecer alguns tipos de jogos:

  • Arcade: jogos clássicos dos anos 80, como Asteroids, Space Invaders e Pac-Man;
  • Carta: simulam um jogo específico de cartas como Poker ou Truco;
  • Puzzle: privilegiam o raciocínio rápido, como Tetris e Shapes and Collumns;
  • Jogos de tabuleiro: simulam os antigos jogos de tabuleiro como Xadrez e Damas;
  • Aventura em texto: jogos totalmente em texto, em que um cenário é descrito e o jogador tem uma lista de decisões possíveis;
  • Aventura gráfica: basicamente é a evolução da aventura em texto. São mostradas figuras estáticas ou dinâmicas de cenários e o jogador pode interagir com elas, como Space Quest;
  • Side scrollers: conhecidos como “de plataforma”, são jogos 2D em que o personagem tem que pular buracos e atirar em inimigos, como Sonic e Super Mario;
  • RPG: em geral possuem uma história complexa, onde o personagem evolui durante o jogo e pode interferir em toda a história. Exemplos são as séries Ultima e Final Fantasy.

Essa classificação serve para o desenvolvedor definir as regras do jogo, o público alvo e a plataforma alvo. Essas escolhas devem ser consistentes. É difícil, por exemplo, obter sucesso se você quiser fazer um jogo 3D para um celular simples, pois ele provavelmente ficará muito lento e a jogabilidade muito prejudicada. Outro fato que ajuda é ter um grupo de jogadores com o perfil alvo para testar e fazer sugestões sobre o jogo, como nível de dificuldade, arte ou interface. Outro ponto que gostaríamos de citar é que alguns jogos misturam mais de um elemento, ficando essa decisão por conta do game designer.

Conceitos de jogos

Para que o leitor possa acompanhar melhor o artigo, introduziremos alguns conceitos aqui.

  • Curva de aprendizagem: é o tempo que um jogador necessita para assimilar os comandos e as regras do jogo. Existem principalmente duas abordagens utilizadas para permitir que o jogador aprenda as regras e os comandos: (1) através da criação de uma fase do jogo, conhecida como tutorial, onde os comandos e as regras são explicitamente demonstrados e (2) através da criação de fases iniciais com níveis de dificuldade baixos. Essas abordagens facilitam a despertar o interesse do jogador.
  • Tempo de vida do jogo: quantas horas em média um usuário vai continuar jogando este jogo antes de perder o interesse por ele.
  • Fator de replay: quantas vezes o jogador vai jogar novamente, mesmo já tendo terminado o jogo.
  • Sprite: é um elemento básico visual que pode ser renderizado a partir de um ou vários frames de uma imagem. Estes vários frames podem ser utilizados para fazer a animação do sprite. Normalmente corresponde a um objeto na tela do jogo, como um inimigo, o personagem principal, ou um tiro.
  • FPS (frames per second): significa quadros por segundo. Define quantos quadros são mostrados ao usuário em um segundo de jogo. Para jogos em celulares, o mínimo aceitável são 10 quadros por segundo. Quanto maior a quantidade de quadros por segundo, maior é o processamento requerido.
  • Plataforma-alvo: celular ou conjunto de celulares que serão capazes de rodar o jogo.
  • Público-alvo: pessoas às quais o jogo se destina.
  • Turno de jogo: conjunto de atividades que o jogo faz a cada frame de jogo. Entre atividades típicas, estão repintar a tela, verificar os pontos do jogador ou colisões entre os sprites.

Conhecendo um pouco mais sobre o Android

O primeiro fabricante a adotar a plataforma Android foi a HTC. Ela lançou em outubro de 2008 o G1 (nome utilizado nos Estados Unidos e na Europa) também conhecido como Dream. Esse smartphone vinha com o Android padrão, ou seja, sem nenhuma modificação feita pela empresa. A partir de então, outros fabricantes como Motorola, Sony Ericsson, Samsung e Dell, também lançaram seus aparelhos Android, inclusive personalizando-os com jogos, skins e aplicativos que acessam redes sociais, além de adicionar funcionalidades em aplicações já existentes na plataforma padrão. Isso agrega valor ao produto e traz um diferencial ao usuário final. Hoje já existem vários modelos no mercado utilizando a plataforma.

A plataforma Android tem como base o kernel 2.6 do Linux. Sobre ele temos uma máquina virtual chamada Dalvik, que é responsável por executar as aplicações. O Android padrão (pois cada fabricante pode modificá-lo) vem com algumas aplicações padrões como media player, calendário, calculadora e SMS/MMS. Além disso, os usuários de aparelhos Android contam com uma loja virtual chamada Android Market.

Um diferencial do Android é que ele permite a instalação de widgets: miniaplicativos que ficam na área de trabalho do aparelho exibindo informações como hora, previsão do tempo, cotação do dólar, entre outros. Outro ponto a favor da plataforma da Google é que ela permite a execução de aplicações em segundo plano, ou seja, é possível termos mais de uma aplicação executando paralelamente, entretanto apenas uma será exibida por vez na tela do aparelho.

Para a plataforma Android, a Google disponibiliza o Android SDK, que é um conjunto de ferramentas que provêm a infraestrutura necessária para a construção de aplicações, como: bibliotecas de classes e um simulador para que possamos testar nossos aplicativos sem a necessidade do aparelho real. Esse SDK está disponível para Windows, OS X e Linux.

Um recurso interessante do Android é que ele trata todas as aplicações da mesma forma. Isso quer dizer que se o usuário não gostar, por exemplo, do MP3 player que vem no dispositivo, ele pode baixar outro aplicativo ou ainda desenvolver o seu próprio e avisar ao Android para utilizá-lo como player padrão. Isto é similar ao que fazemos no Windows, por exemplo, onde associamos um programa para executar arquivos de um determinado formato.

O Eclipse e o NetBeans são as IDEs mais conhecidas pelos desenvolvedores Java e podem ser utilizadas para o desenvolvimento de aplicações Android. Para isso, basta instalar o plugin ADT (Android Development Tools) e configurá-lo para apontar para o diretório onde o SDK do Android foi instalado.

O mercado móvel está em expansão e hoje podemos encontrar vários dispositivos com Android, facilitando assim a sua disseminação. Outro ponto bastante importante é o fato da plataforma ser livre e ter o seu código fonte liberado, assim como um SDK que possui um emulador, facilitando o desenvolvimento.

Preparando o ambiente de desenvolvimento

O primeiro passo para iniciarmos o desenvolvimento na plataforma Android é instalar o SDK do Android e o plugin ADT no Eclipse (ler Nota DevMan 2). Vamos precisar deles para construir o nosso jogo e você pode fazer isto baixando o SDK através do site http://developer.android.com/sdk/index.html.

Nota DevMan 2. Plugin ADT no Eclipse

O Android oferece um plugin customizado para o Eclipse, chamado ADT (Android Development Tools, Ferramenta de desenvolvimento Android), que foi desenvolvido para fornecer um ambiente poderoso e integrado para a construção de aplicações Android.

...
Quer ler esse conteúdo completo? Tenha acesso completo