Por que eu devo ler este artigo:Desenvolvendo jogos com o Corona
A categoria de jogos é, de longe, a mais popular nas lojas de aplicativos do Google e Apple. O sonho de todo desenvolvedor independente é conseguir emplacar um novo Angry Birds ou Temple Run. Existem muitas alternativas para implementar um jogo. Das mais complexas como usar APIs nativas do OpenGL, passando pela implementação direta num Canvas ou SurfaceView, até a utilização de frameworks que facilitam e aceleram o processo de desenvolvimento

Neste artigo vamos aprender a desenvolver um jogo multiplataforma usando o framework de desenvolvimento de jogos Corona. Vamos implementar um exemplo passo a passo e ao final do artigo teremos um jogo que, apesar de simples, contém vários elementos de jogos de sucesso encontrados no Google Play e App Store.

Em que situação o tema é útil
Esse artigo será útil para desmistificar um pouco o desenvolvimento de jogos. Apesar de parecer muito complexo, frameworks como o Corona simplificam bastante o processo como um todo e nos auxiliam a implementar tarefas aparentemente muito difíceis como o uso da física nos jogos.


Autores: Cleverson Schmidt e Rafael Munhoz

O mercado de smartphones e tablets tem crescido de forma muito acelerada nos últimos anos. Previsões indicam que em 2013 serão vendidos mais de 1 bilhão de smart devices no mundo todo. Cada um desses dispositivos tem capacidade de processamento semelhante a PCs de um passado não muito distante. Os usuários têm em mãos um aparelho capaz de executar tarefas cada vez mais complexas e os desenvolvedores de jogos estão explorando muito bem esse ambiente.

A categoria de jogos é, de longe, a mais popular nas lojas de aplicativos do Google e Apple. Em média, metade do tempo de uso nos smartphones é dedicado a jogos. Além de jogar muito, também se gasta muito nessa categoria. Usuários estão despejando bilhões de dólares em compras diretas e micro transações (In App Purchase - ler Nota do DevMan 1). Combinando um imenso mercado potencial e os dólares desses consumidores, temos um ambiente muito atrativo a ser explorado.

Nota DevMan 1. In App Purchase

Basicamente, uma In App Purchase se refere à possibilidade de inserir em sua aplicação mecanismos de compra que podem ser acessados de através de botões ou links. Normalmente, estas transações estão associadas à adição de algum recurso extra à sua aplicação ou jogo. Para ilustrar, considere o Jogo Clash of Clans, um jogo de estratégia muito difundido no momento pata ambientes iOS. Neste jogo, você deve evoluir sua vila através da construção de uma série de unidades de ataque e defesa contando para isso com moedas, uma espécie de elixir e esmeraldas. Estes recursos são limitados e vão avançando à medida que suas unidades vão produzindo os recursos. Entretanto, é possível ter uma ajuda extra na liberação de recursos para que você possa evoluir sua vila mais rapidamente. Isso é feito através de compras de recursos através de seu cartão de crédito. Para os mais ansiosos, é possível liberar recursos suficientes para dar um bom upgrade em seu ambiente.

Entretanto, o desenvolvimento de jogos traz um conjunto de características que, em muitas vezes, funcionam como uma verdadeira barreira para a entrada neste mercado já bastante disputado. A simples junção da lógica do jogo com uma interface bem elaborada e interativa com o usuário já é por si só uma tarefa extremamente desafiadora e difícil de ser alcançada. Indo um pouco mais além, outro recurso que é presença obrigatória em jogos aumenta ainda mais esta barreira: o uso correto da física. Quando falamos de física, nos referimos a simular no ambiente virtual de um smartphone o comportamento que um objeto teria no mundo real considerando questões como peso, gravidade, colisão e inercia. Criar soluções com estas características vai muito além de um simples cadastro básico que estamos acostumados a lidar em nosso dia a dia como desenvolvedores de software, quando lidamos na maioria das vezes com tarefas repetitivas e que algumas vezes dispensam o uso da criatividade.

Isso sem falar que para atingir um público alvo mais abrangente, é preciso que o jogo desenvolvido possa ser utilizado, pelo menos, nas principais plataformas do mercado. No cenário, essas plataformas são o iOS e o Android. Ou seja, o jogo deve ser desenvolvido de modo que funcione em plataformas distintas, seja multiplataforma.

Apesar de todo este complexo cenário que se apresenta em um primeiro momento, ainda assim o sonho de todo desenvolvedor independente é conseguir emplacar um novo Angry Birds ou Temple Run, ganhar alguns milhões e comprar uma Ferrari. Mas, voltando ao mundo real, antes de comprar uma Ferrari temos que desenvolver um jogo e para isso lidar com fragmentação de plataformas, alta complexidade de APIs gráficas (OpenGL), suporte a física, colisões, partículas, enfim, obstáculos que à primeira vista parecem quase intransponíveis. Assim, por onde começamos?

Alternativas

Existem muitas alternativas para implementar um jogo. Das mais complexas como usar APIs nativas do OpenGL, passando pela implementação direta em um Canvas ou SurfaceView, até a utilização de frameworks que facilitam e aceleram o processo de desenvolvimento. A grande vantagem dos frameworks está na maneira como eles abstraem tarefas complexas e oferecem APIs específicas para o universo de jogos. Recursos como sprites, animações, timers, detecção de colisões, integração com redes sociais e sistemas de rankings, badges e achievements (Game Center), suporte a física e portabilidade em múltiplas plataformas como iOS e Android estão entre as facilidades oferecidas. Frameworks são o caminho menos tortuoso para um desenvolvedor independente conseguir publicar um jogo.

Uma vez que o caminho escolhido seja a utilização de um framework, o próximo passo é escolher qual dos frameworks disponíveis adotar. Existem dezenas de opções e a escolha certa depende de alguns fatores. Jogos em 2D ou 3D? Múltiplas plataformas? Complexidade de animações e transições muito alta? As respostas a essas perguntas vão influenciar na decisão, mas, pensando em jogos profissionais 2D, multiplataforma (iOS e Android) e com alta demanda de processando gráfico, nós temos o nosso favorito e alvo deste artigo: Corona!

Corona

O Corona é o framework número um do mercado no desenvolvimento de jogos 2D multiplataforma. Adotado por grandes players como Disney e Eletronic Arts, ele consegue gerar builds para Android (APK) e iOS (IPA) pois os jogos são escritos numa linguagem intermediária (LUA) que, curiosamente, foi criada por brasileiros. Suas APIs são extremamente simples e mascaram muito bem a complexidade envolvida em sua implementação. Muitas vezes, um recurso avançado é implementado em uma ou duas linhas de código. A comunidade em torno do Corona é bastante colaborativa e comumente encontramos os engenheiros responsáveis pelo desenvolvimento da ferramenta respondendo a perguntas em fóruns na internet. Somando-se a isso o fato de que o ambiente de desenvolvimento é gratuito, até o ponto em que publicamos nosso jogo, faz com que tenhamos em mãos uma opção bem atraente.

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