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.
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.
...Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.