Jogo para Android com Unity3D Vinícius Akira Moribe Faculdade de Engenharia de Sorocaba (FACENS) Caixa postal 355 – 18087-125 – Sorocaba – SP – Brasil [email protected] Resumo: Atualmente o mercado de jogos para celulares está muito aquecido, existe um mercado muito grande para esse tipo de entretenimento. O sistema operacional mobile Android é o mais vendido no mundo. Muitas empresas pequenas surgiram nos últimos anos para entrar nesse competitivo mercado. Diante desse cenário, este artigo apresenta conceitos importantes para o desenvolvimento de jogos para celulares. Abstract: Nowadays the market for mobile games has been growing steadily in recent years given the demand for this kind of entertainment. The Android mobile operating system is the best-selling in the world. Many small companies have emerged in recent years to enter this competitive market. Given this scenario, this paper presents important concepts for developing games for Android phones. 1. Introdução A tecnologia dos smartphones tem avançado muito, principalmente nos últimos anos. Altos investimentos são feitos nessa área pelos fabricantes de aparelhos móveis. O mercado de smartphones está aquecido e ainda em crescimento, consequentemente o mercado de aplicativos e jogos para eles também. Esse crescimento aconteceu após o lançamento de smartphones utilizando o sistema operacional mobile chamado de Android. Ele é desenvolvido pelo Google junto de um grupo de companhias da tecnologia denominado Open Handset Alliance (OHA). Devido ao fato dele ter seu código aberto, muitas fabricantes aderiram a esse sistema operacional pela possibilidade de customização e a facilidade de desenvolvimento de aplicações para dispositivos com Android, pois os desenvolvedores não precisam criar um aplicativo para cada celular, é só desenvolver para o Android que irá funcionar em outros aparelhos com o mesmo sistema operacional. 2. Android O Google sempre manteve interesse na criação e no desenvolvimento de novas tecnologias nas mais diversas áreas, não se limitando apenas no seu buscador. Investiram em serviços de email (Gmail), vídeos (Youtube) e até em editores de texto (Google Docs). Por esses motivos, quando a empresa decidiu lançar um sistema operacional específico para dispositivos móveis, já era possível perceber que esses dispositivos poderiam dominar o mercado. A consolidação do sistema operacional Android ocorreu no ano de 2010, quando o crescimento da venda de aparelhos móveis utilizando-o foi de mais de 800% (SMAAL, 2011). Em 2010, foram vendidos mais de 1,6 bilhão de celulares com Android, o que representou um crescimento de 31,8% em comparação com 2009 (GARTNER, 2010). 2.1. O que é o Android? O Android é um conjunto completo de software open-source (código aberto) criado para telefones celulares e outros dispositivos móveis, o que inclui um sistema operacional, middleware e aplicações chave. O Google é o líder do Android Open Source Project (AOSP), é ele quem está responsável pela manutenção e desenvolvimento do Android (Android.com). Ele foi construído desde o começo para que fosse permitido aos desenvolvedores criar aplicações móveis que conseguissem aproveitar todos os recursos que os dispositivos oferecem. Um aplicativo pode usar qualquer funcionalidade do aparelho, como fazer chamadas, enviar mensagens de texto, usar a câmera, utilizar os sensores presentes nos aparelhos, como acelerômetro, giroscópio, bússola, tudo isso para que possa ser possível para os desenvolvedores criarem aplicações com uma experiência de uso melhor, mais rica e coerente para os usuários (Open Handset Alliance). As características do Android são a sua framework (é um conjunto de classes que constitui um projeto abstrato para a solução de uma família de problemas)(Fayad et al, 1999) que permite a reutilização de e a substituição de componentes, a máquina virtual Dalvik que é otimizada para dispositivos móveis, navegador web integrado baseado no código aberto Webkit, gráficos otimizados por bibliotecas 2D customizadas e gráficos 3D com base no OpenGL (versão ES 1.0), usa o SQLite para o armazenamento de dados, suporte a mídias de áudio, vídeo e formatos de imagens estáticas, utiliza o padrão GSM (Sistema Global para Comunicações Móveis). Também fazem parte das características do Android o suporte ás tecnologias bluetooth, EDGE, 3G, WiFi, GPS (Sistema de Posicionamento Global), acelerômetro, bússola, câmera e possui um rico ambiente de desenvolvimento, o qual inclui um emulador de dispositivos, ferramentas de depuração e um plugin para a IDE Eclipse (Android.com). A arquitetura do Android pode ser vista na fig. 1.0. Fig. 1.0 Arquitetura do Android. Fonte: http://developer.android.com/images/system-architecture.jpg 2.2. Aplicativos para Smartphones com Android O Android não diferencia aplicativos nativos dos de terceiros. Todos os aplicativos podem ser construídos tendo acesso total às tecnologias do aparelho, proporcionando aos usuários uma ampla variedade de serviços e aplicações. Com os dispositivos construídos para a plataforma Android, os usuários conseguem adequar completamente os dispositivos aos seus interesses. Os usuários conseguem trocar a tela inicial do celular, mudar o estilo do discador ou de qualquer outro aplicativo. Esse sistema operacional para dispositivos móveis quebrou as barreiras para a construção de novas e inovadoras aplicações. Um desenvolvedor pode usar dados da web junto com os dados individuais de cada smartphone, como dados de geolocalização, contatos, para criar aplicações com uma experiência de maior relevância para o usuário, aplicações com base em dados reais e personalizados para cada indivíduo (Open Handset Alliance). No início, o desenvolvimento de aplicações para o ecossistema Android só era possível se utilizasse o plugin Android Development Tools (ADT) com algum Integrated Development Environment (IDE), a mais comum é o Eclipse, que é open source, utilizando a linguagem Java. Hoje já se pode programar para Android com várias linguagens diferentes. Para se desenvolver com a ferramenta Unity3D pode-se utilizar a linguagem C#, que faz parte da .NET Framework, JavaScript ou Boo. 3. Engines Um jogo é formado por um conjunto de texturas, efeitos 3D, cenários, física nos objetos, inteligência artificial e sons que, ao se integrarem, coordenam o funcionamento do jogo. Cada um desses itens deve ser desenvolvido nos mínimos detalhes, a união desses “motores” é responsável pelo controle do que acontece no jogo. Mas não é habitual o desenvolvimento desses sistemas complexos, grande parte dos jogos é desenvolvida utilizando como base motores já desenvolvidos, as chamadas engines gráficas (KLEINA, 2011). 3.1. O que é uma Engine? Antigamente, criar jogos para computadores e consoles era muito desafiador, pois para o jogo funcionar em uma plataforma diferente era muito trabalhoso, exigia-se a reprogramação de praticamente todos os aspectos do jogo. O reaproveitamento de código da versão anterior era muito pequeno. Com isso começou-se a terceirizar alguns dos aspectos técnicos da criação dos jogos. Essa terceirização teve início com um suporte gráfico através de softwares de renderização que tinham como objetivo processar as imagens digitais criadas (KLEINA, 2011). O termo engine surgiu em meados da década de 1990 com a popularização dos jogos de tiro em primeira pessoa (First-Person Shooter em inglês, o famoso FPS). Uma das engines pioneiras para jogos no estilo FPS foi do Doom (KLEINA, 2011). Os motores gráficos ficaram muito populares em todos os tipos de jogos, como os Rolling Playing Games (RPG) e os de aventura. A programação de engines se tornou um trabalho artístico por causa da capacidade das criações modernas. Elas são muito completas, deixam os sons e imagens o mais parecido possível com a realidade e assim exigem menos dos desenvolvedores. Com o uso das engines as empresas têm muitos benefícios, como o aumento na velocidade de lançamento de jogos, a possibilidade de exportar mais facilmente para outras plataformas e principalmente pela redução de custos com o desenvolvimento das partes já disponíveis na engine (KLEINA, 2011). A CryEngine é um dos motores gráficos mais famosos. Criado pela alemã Crytek, ela servia para demonstrar a tecnologia da NVIDIA (fabricante de placas de vídeo) em uma convenção no ano 2000. Devido ao sucesso que obteve na exposição, a ferramenta deu origem a um jogo, o Far Cry, quatro anos depois. A consagração só veio com o lançamento da CryEngine 2, pois dela se originou um jogo em que o seu foco era principalmente no potencial do realismo de seus gráficos, o Crysis (KLEINA, 2011). Uma das tendências atuais para o desenvolvimento de jogos é o uso de engines alternativas, pois o seu custo é muito menor comparado com o de uma famosa. Além do custo menor, às vezes são gratuitas. O desenvolvimento nessas engines alternativas é simples, mas eficiente. A Unity3D, que será usada nesse projeto, é um ótimo exemplo, a versão completa custa no máximo U$4500,00. Uma versão com menos recursos é disponibilizada gratuitamente (KLEINA, 2011). 3.2. Unity3D A Unity3D é uma ferramenta muito poderosa para o desenvolvimento de jogos, ela facilita o trabalho do desenvolvedor, principalmente nos jogos tridimensionais. Ela tem uma versão gratuita que contém a maioria dos recursos e funcionalidades necessários para se criar um jogo e publicar para Windows, Mac ou Web. Os jogos Web necessitam da instalação de um plugin chamado UnityPlayer no navegador web. Dependendo de qual versão paga for adquirida pode-se publicar para Android, Iphone ou Nintendo Wii (ANDRADE, 2010). Nela pode-se utilizar as linguagens de programação C#, JavaScript e Boo (Python). Outro recurso interessante é o sistema de importação de arquivos 2D e 3D. Ele suporta, por exemplo, arquivos com as extensões .jpg e .png para 2D, .blend, .max e .fbx para 3D, entre outros. É possível também trabalhar utilizando Shaders com facilidade. Um dos recursos mais vantajosos é o seu editor visual, com ele é possível visualizar toda a cena do jogo. Ele contém ferramentas para criar e manipular objetos contidos nas cenas (CORRAL, 2009). Utilizando a Unity3D pode-se desenvolver jogos com uma agilidade maior, tanto para 2D como 3D. O desempenho dos jogos criados é muito bom e os efeitos de alta qualidade, chegando a uma qualidade praticamente profissional. Utilizando 50% a menos de esforço do que codificar tudo a partir do zero. O editor presente na Unity3D é muito completo, pode-se posicionar objetos, importar arquivos e muitas outras tarefas. Nele permite-se testar o jogo sem ter de compilar uma versão definitiva, ainda é possível pausar ou “dar play” novamente. É possível customizar o editor da forma que for mais agradável, é um editor muito completo (ANGELINE, 2010). Por ser altamente otimizada, a velocidade de renderização dos gráficos é muito grande, funciona tanto para DirectX como para OpenGL. O motor gráfico presente na Unity3D é alta qualidade. Ela possui um bom sistema de partículas e animação de modelos. Também faz parte da Unity3D uma parte de Network (rede), áudio e vídeo, esse último pode ser reproduzido tanto em uma textura 2D quanto em uma 3D (disponível somente na versão paga), possibilita a criação de scripts que contenham toda a lógica e o funcionamento do jogo, um bom sistema de iluminação e utiliza o motor físico criado pela NVIDIA, o PhysX, que permite simulações físicas de extrema qualidade (ANGELINE, 2010). 4. Jogos Os jogos são um dos meios mais populares de entretenimento entre as pessoas desde muito tempo atrás até hoje. Um dos tipos mais famosos são os jogos eletrônicos, que surgiram na década de 50 e vêem se modernizando, atualizando e têm acompanhado o lançamento de novas tecnologias ganhando cada vez mais espaço no mercado. 4.1. Jogos para Smartphones Os jogos para celular são um dos meios mais importantes desse tipo de entretenimento digital, os modelos mais antigos que vinham com o jogo Snake préinstalado, foi estimado que 350 milhões de celulares vieram com ele pré-instalado, hoje, os smartphones de última geração permitem a instalação de muitos jogos e aplicativos através de lojas online. O avanço tecnológico dos celulares permitiu que fossem desenvolvidos jogos mais elaborados, tanto na qualidade dos efeitos gráficos quanto nos sonoros e com isso possibilitar o surgimento de um mercado importante (Entertainment Software Association, 2011). O mercado de jogos para celular é um setor relativamente novo para as indústrias de software para entretenimento, mas que está crescendo muito. Essa área tem recebido uma atenção muito grande por causa da alta demanda, da constante criação de novos produtos e das pesquisas e desenvolvimento de tecnologias inovadoras. De acordo com a PricewaterhouseCoopers, estimasse que esse mercado de jogos vai chegar ao valor de U$ 12,7 bilhões no ano de 2014. De acordo com a Entertainment Software Association, em 2011 alguns fatos essenciais sobre a indústria do computador e do vídeo game ocorreram. Cerca de 55% dos gamers (pessoas que gostam muito de jogos eletrônicos) jogam em seu celular ou dispositivo portátil, como o tablet. A Pew Internet and American Life Project, entretanto, descobriu que 46% dos adolescentes nos Estados Unidos jogam em um telefone celular ou PDA. Combinado com os 71% dos adolescentes com idades entre 12-14 anos que jogam jogos em um dispositivo portátil, o setor de jogos para celular parece estar pronto para desfrutar de uma grande base de consumidores nos próximos anos. O modelo de negócios empreendedor que agora caracteriza o setor de jogos móveis montou o palco para inovações adicionais nos próximos anos. Analistas antecipam que a próxima geração de jogos para celular provavelmente vai incluir mais títulos multi jogadores, jogo com publicidade e com conteúdo para download. As mais importantes publicadoras de jogos devem mais uma vez repensar as suas relações com o setor, pois os jogos móveis vão desempenhar um papel muito importante no mercado. 5. Conclusão Tendo como objetivo criar um jogo de RPG para celulares com o sistema operacional Android um framework para auxiliar no desenvolvimento dos jogos será desenvolvido. A Unity foi escolhida para ser usada no desenvolvimento dos jogos pela sua versatilidade em exportar para plataformas mobile diferentes, como Android e IOS, e poder exportar o mesmo jogo para a Web ou Desktop. Ela é uma ferramenta muito rápida e intuitiva de se usar, é muito usada na criação de jogos 3D por ter muitas classes para a manipulação de objetos 3D, como a parte de física, controles de personagem, partículas, mas também pode ser usada para a criação de jogos em 2D. Um meio de se aumentar a velocidade de desenvolvimento de jogos é a criação de um framework contendo funcionalidades que sempre são necessárias ter em um jogo como menu, ranking com dados salvos localmente, seleção de personagens, telas de créditos e game over, o que agiliza em muito o desenvolvimento de outros jogos. Por fim, antes de começar a criar jogos, é muito interessante se criar e desenvolver um framework genérico para telas, comandos, funções que possam ser reaproveitados em vários jogos para que se aumente a velocidade de desenvolvimento, a produtividade e facilite para os desenvolvedores. Referências ABRAGAMES. A indústria brasileira de jogos eletrônicos Um mapeamento do crescimento do setor nos últmos 4 anos. 2008. Disponível em. http://www.abragames.org/docs/AbragamesPesquisa2008.pdf Acesso em 26 maio 2012. AMAZONAS, D. S. Desenvolvimento de Jogos 3D em Java com a Utilização do Motor Gráfico Irrlicht. 2007. 51f. Dissertação (Bacharel em Ciências da Computação) - Faculdade Lourenço Filho, Fortaleza, 2007. AQUINO, J. F. S. PLATAFORMAS DE DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. 2007. Monografia (Pós Graduação em Informática INF2541 - Introdução á Computação Móvel) - Pontifícia Universidade Católica do Rio de Janeiro, Pontifícia Universidade Católica, Rio de Janeiro, 2007. BBC. Mercado de jogos online chegou a US$ 1 bi em 2006, diz estudo. 2006. Disponível em. <http://www.bbc.co.uk/portuguese/reporterbbc/story/2007/03/070321_mundovirtualmercado fn.shtml> Acesso em 26 maio 2012. CURA, H. A História do Android.... Disponível em. <http://pplware.sapo.pt/google/a-historiado-android/>. Acesso em 08 jun 2012. DEVELOPER ANDROID. Platform Versions. Disponível em.<http://developer.android.com/resources/dashboard/platform-versions.html>. Acesso em 07 jun 2012. DEVELOPER ANDROID. What is Android?. Disponivel em. <http://developer.android.com/guide/basics/what-is-android.html>. Acesso em 08 jun 2012. FAYAD, M. E.; JOHNSON, R. E.; SCHMIDT, D. C. Building Application Frameworks : Object-Oriented Foundations of Framework Design. 1.ed. Nova Jersey : Wiley, 1999. p. 688. Gartner. Gartner Says Companies Will Generate 50 Percent of Web Sales Via Their Social Presence and Mobile Applications by 2015. 2011. Disponível em. <http://www.gartner.com/it/page.jsp?id=1826814> Acesso em 04 mar 2012. HERMANN, R. Android Market agora é Google Play. Disponível em. <http://www.tecmundo.com.br/android/20266-android-market-agora-e-google-play.htm>. Acesso em 08 jun 2012. IDC Latin. Estudo da IDC revela que foram vendidos aproximadamente 9 milhões de smartphones no Brasil em 2011. 2012. Disponível em. <http://www.idclatin.com/news.asp?ctr=bra&id_release=2213> Acesso em 04 mar 2012. LEITE, L. C. JOGOS ELETRÔNICOS MULTI-PLATAFORMA COMPREENDENDO AS PLATAFORMAS DE JOGO E SEUS JOGOS ATRAVÉS DE UMA ANÁLISE EM DESIGN. 2006. Tese (Mestrado em Artes) - Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2006. PAUL, I. Android Market Tops 400.000 Apps. Disponível em. <http://www.pcworld.com/article/247247/android_market_tops_400000_apps.html>. Acesso em 08 jun 2012. PINHEIRO, A. da C. et al. Jogos Eletrônicos. 2008. Disponível em. <http://gmf.ufcg.edu.br/~leandro/arquivos/jogoseletronicossociedade.pdf> Acesso em 26 maio 2012. RASMUSSEN, B.; SMAAL, B. Android: o sistema operacional móvel que conquistou o mundo. Disponível em. < http://www.tecmundo.com.br/infografico/9010-android-o-sistemaoperacional-movel-que-conquistou-o-mundo.htm>. Acesso em 07 jun 2012. RODRIGUES, L. C. et al. Impactos sócio-culturais da evolução dos jogos eletrônicos e ferramentas comunicacionais: um estudo sobre o desenvolvimento de comunidades virtuais de jogadores. 2007. Disponível em. <http://www.sbgames.org/papers/sbgames07/gameandculture/full/gc2.pdf> Acesso em 26 maio 2012. SOURCE ANDROID. About the Android Open Source Project. Disponível em. <http://source.android.com/about/index.html>. Acesso em 07 jun 2012. THE ESA. Games: Improving the Economy. 2010. Disponível em. <http://www.theesa.com/games-improving-what-matters/economy.asp> Acesso em 26 maio 2012. THE ESA. Industry Facts. 2010. Disponível em. <http://www.theesa.com/facts/index.asp> Acesso em 26 maio 2012. THE ESA. The Evolution of Mobile Games. 2010. Disponível em. <http://www.theesa.com/games-improving-what-matters/mobile-games.asp> Acesso em 26 maio 2012. TSUHARESU. Dossiê Android: 3 anos de vida, e muitas datas para serem lembradas (História do Android). Disponível em. <http://www.euandroid.com.br/geral/2010/11/historia-doandroid/>. Acesso em 07 jun 2012.