INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDXVinícius Barreto de Sousa Neto Libgdx é um framework multi-plataforma de visualização e desenvolvimento de jogos. Atualmente ele suporta Windows, Linux, Mac OS X, Android, iOS e HTML5 como plataformas de destino. Libgdx permite que você escreva o seu código uma única vez e o implante em múltiplas plataformas, sem modificação. Ao invés de esperar por suas últimas modificações a serem implantadas no seu dispositivo, ou para ser compilado para HTML5, você pode se beneficiar de um ciclo de iteração extremamente rápido codificando sua aplicação, principalmente em um desktop. Você pode usar todas as ferramentas do ecossistema Java para ser tão produtivo quanto você possa ser. Libgdx permite ir tão baixo nível quanto você queira, o que lhe dá acesso direto aos sistemas de arquivos, dispositivos de entrada, dispositivos de áudio e OpenGL via uma interface unificada OpenGL ES 2.0 e 3.0. Em cima dessas instalações de baixo nível foi construído um poderoso conjunto de APIs que ajudam nas tarefas comuns de desenvolvimento de jogos, como renderização de sprites e texto, a construção de interfaces com o usuário, a reprodução de efeitos sonoros e streams de música, álgebra linear e cálculos de trigonometria, análise de JSON e XML, e assim por diante. Sempre que necessário, Libgdx deixa o reino de Java e recorre ao código nativo para alcançar o melhor desempenho possível. Toda essa funcionalidade está escondida atrás de APIs Java para que você não precise se preocupar com multi-compilação do código nativo para todas as plataformas. Muitas partes do Libgdx trabalham em torno de problemas conhecidos da plataforma para que você não tenha que lidar com eles. Libgdx está mais para um framework do que para uma engine, reconhecendo que não há uma única solução para vários problemas diferentes. Ao invés disso, ele fornece abstrações poderosas que permitem que você escolha como você deseja escrever o seu jogo ou aplicação. 1 Preparando o seu ambiente de desenvolvimento Obs.: O sistema operacional utilizado será o Windows 8 (64 bits), mas o Libgdx também funciona em outras versões do Windows, e outros sistemas operacionais. Neste tutorial utilizaremos o Eclipse, mas também pode ser usado o NetBeans ou Intellij. Para desenvolver com o Eclipse você precisará de algumas ferramentas: JDK 7 (Java Development Kit 7) ou superior; Android SDK; Eclipse IDE for Java Developers; LibGDX Tiled Map Editor Para este tutorial estaremos utilizando as seguintes versões das ferramentas citadas: JDK 8 (Java Development Kit 8) Android SDK (Revision 24.1.2) Eclipse IDE for Java Developers (Luna SR 4.4.2) LibGDX 1.5.5 Tiled Map Editor 0.11.0 2 1 - Obtendo e instalando o JDK 8 (Java Development Kit 8): O JDK 8 pode ser obtido através do link: http://www.oracle.com/technetwork/java/javase/downloads/index.html 3 : Lembrando que todos os nomes dos arquivos referentes às ferramentas podem variar de acordo com versões e tempo que foram disponibilizados. Obs.Será baixado um arquivo executável de nome “jdk-8u40-windows-x64”. 4 . Execute o arquivo baixado e siga o passo-a-passo abaixo: 5 . 6 . 7 . org/downloads/packages/eclipse-ide-java-developers/lunasr2 8 .2 .Obtendo e instalando o Eclipse: Eclipse IDE for Java Developers pode ser obtido através do link: https://www.eclipse. 9 . Recomendo que seja um diretório de fácil acesso pois estará em constante uso.Será baixado um arquivo zipado de nome “eclipse-java-luna-SR2-win32-x86_64”. Antes precisamos instalar o Android SDK e mais algumas ferramentas. Neste momento ainda não utilizaremos o Eclipse. Extraia para o local desejado. Obtendo e instalando o Android SDK: Android SDK pode ser obtido através do link: http://developer.android.3 .html#Other 10 .com/sdk/index. Instalando no Windows: O seu pacote de download é um arquivo executável que inicia um instalador. 11 . O Android SDK é então salvo numa localização de diretório especificada no momento da instalação.2-windows”.Será baixado um arquivo executável de nome “installer_r24. como o Java SE Development Kit (JDK) e o instala se necessário. que você pode acessar por linha de comando ou por um plugin em alguma IDE (quando disponível). Ele inclui somente as principais ferramentas do SDK. O instalador verifica se você tem as ferramentas necessárias instaladas em sua máquina. Instalando o Android SDK O Android SDK não inclui um ambiente de desenvolvimento completo para Android.1. Anote o nome e o local aonde você salvar o SDK — Você vai precisar referenciar o diretório quando utilizar as ferramentas do SDK pela linha de comando. 3 . Caso não tenha obtido sucesso com as instruções textuais. 2 .1 .Quando a instalação terminar. o instalador inicia o Android SDK Manager. talvez queira dar uma olhada nas instruções em telas: 12 .exe) para iniciar a instalação.Duplo-clique no arquivo executável (. 13 . 14 . 15 . 16 . mas ainda há alguns pacotes que você deve adicionar para tornar o seu SDK mais completo.O Android SDK agora está pronto para começar o desenvolvimento de apps. Adicionando os pacotes necessários: 17 . 18 . 19 . vá ao diretório em que extraiu o Eclipse e o inicie. Agora que o JDK.: O download e instalação dos pacotes podem levar bastante tempo para serem concluídos. Obs. Forneça o diretório desejado (se preferir pode deixar o diretório padrão) e clique em OK. 20 .Ao terminar de baixar os pacotes. O Eclipse vai apresentar uma janela solicitando um diretório onde seus projetos serão salvos. o Eclipse e o Android SDK já estão instalados. clique no botão “Close” e feche o Android SDK Manager. 21 .Feito isso. agora precisamos informar ao Eclipse o diretório do Android SDK e adicionar o ADT Plugin e o Gradle Integration Plugin ao Eclipse. Informando ao Eclipse o diretório do Android SDK: 22 . Clique no botão OK para finalizar. e exportar pacotes app (APKs) autorizados (ou não autorizados) para distribuição. chamado Android Development Tools (ADT). 23 . Esse plugin fornece um poderoso e integrado ambiente para desenvolvimento de apps Android. Ele aumenta as capacidades do Eclipse permitindo criar e configurar projetos Android mais rapidamente. construir um app UI. depurar seu app. Adicionando o ADT Plugin ao Eclipse: O Android oferece um plugin customizado para o Eclipse. Para adicionar o ADT plugin ao Eclipse: 1. Inicie o Eclipse, selecione Help > Install New Software. 2. Clique em Add, no canto superior direito. 3. Na caixa de diálogo “Add Repository” que aparecer, digite "ADT Plugin" para o campo Name e a seguinte URL para Location: 4. https://dl-ssl.google.com/android/eclipse/ 5. Nota: O Android Developer Tools update site requer uma conexão segura. Tenha certeza de que a URL que você digitou comece com HTTPS. 6. Clique em OK. 7. Na caixa de diálogo “Available Software”, marque a caixa de seleção Developer Tools e clique em Next. 8. Na próxima janela, você verá uma lista de ferramentas para download. Clique em Next. 9. Leia e aceite os termos de licença, e então clique em Finish. 10. Se você receber um aviso de segurança dizendo que a autenticidade ou validade do software não pode ocorrer, clique em OK. 11. Quando a instalação terminar, reinicie o Eclipse. Configurando o ADT Plugin: Após reiniciar o Eclipse, você deve especificar a localização do diretório do seu Android SDK: 1. Na janela "Welcome to Android Development" que aparece, selecione Use existing SDKs. 2. Navegue e selecione a localização do diretório do Android SDK que acabou de baixar. 3. Clique em Next. Seu Eclipse IDE agora está pronto para desenvolver apps para Android, mas você deve adicionar as ferramentas de plataforma Android mais recentes e uma plataforma Android para o seu ambiente. 24 Adicionando o Gradle Integration Plugin ao Eclipse: Projetos Libgdx usam o Gradle para gerenciar dependências, o processo de construção e integração da IDE. Isso permite que você desenvolva seu app com qualquer ambiente de desenvolvimento que você preferir. O melhor de tudo: seus companheiros de equipe podem usar um ambiente de desenvolvimento diferente ao trabalhar no mesmo projeto! Só não dê “commit” em seus arquivos específicos da IDE para o seu controle de origem. O arquivo .gitignore contido em projetos Libgdx vai cuidar disso se você usar Git. Gradle update site: http://dist.springsource.com/release/TOOLS/gradle 1. No Eclipse clique em Help >> Install New Software 2. Digite o Gradle update site no campo "Work with". 3. Clique no botão Add no topo da tela. 4. Garanta que a opção "Group Items by Category" esteja ativa. 5. Selecione a primeira caixa de marcação 'Extensions / Gradle Integration'. 6. Clique em "Next". Isso pode demorar um pouco. 7. Revise a lista de software que será instalada. Clique em "Next" novamente. 8. Leia e aceite os termos de licença e clique em "Finish". 25 Obtendo o LibGDX: Acesse o site http://libgdx.badlogicgames.com/download.html e clique no botão “Download Setup App” como na imagem abaixo: Libgdx vem com um arquivo chamado “gdx-setup.jar” que é um executável com interface de usuário e ferramenta de linha de comando. Você pode simplesmente executar o arquivo JAR para que abra a janela de configuração. Para executar o arquivo JAR por linha de comando: java -jar gdx-setup.jar 26 27 . você pode selecionar extensões para serem incluídas no seu app. Alguns podem não funcionar em todas as plataformas. se quiser suportar outras plataformas terá de adicioná-las manualmente! Finalmente. Quando terminar de configurar tudo. Por enquanto não utilizaremos nenhuma extensão. e o diretório para o seu Android SDK. escolha apenas as plataformas Desktop e Android. Para este tutorial. escolha as plataformas que você deseja que a sua aplicação seja disponibilizada. depurar e disponibilizar! Após clicar em “Generate” o LibGDX começará a baixar os arquivos necessários para gerar o projeto. mas graças ao Gradle Integrated Plugin que foi instalado anteriormente poderemos importar o projeto sem dificuldades. o diretório de saída. Agora você está pronto para importar o seu projeto Gradle para a IDE Eclipse. clique em "Generate". Nota: uma vez escolhidas as plataformas desejadas. o nome da sua classe principal. executar. 28 . É importante lembrar que ele gera um projeto Gradle e não um projeto Eclipse. o nome do seu pacote Java. Depois. para as quais receberá um aviso.Especifique o nome da sua aplicação. 29 . agora podemos importá-lo no Eclipse. Para importar o projeto no Eclipse: File -> Import -> Gradle -> Gradle Project 30 .Com o projeto Gradle gerado. 31 . 32 . 33 . 34 . Clique em OK para finalizar.Caso o projeto Android seja iniciado com o erro “The import android.Bundle cannot be resolved”. Clique com o botão direito do mouse no projeto Android e vá na opção “Properties”.os. selecione “Google APIs” e clique no botão “Apply”. O erro deverá ter desaparecido e tudo estará normalizado. 35 . Na aba Android. 36 . Agora iremos executar a aplicação demo que já vem embutida no projeto criado. 37 . Executando no Windows: 38 . 39 . Na lista de opções apresentada.Executando no dispositivo Android: Pré-requisitos: Seu dispositivo Android deve estar conectado ao computador via cabo USB e com a opção “Depuração USB” ativada. busque a categoria Depuração e selecione a opção “Depuração USB”. 40 . Para ativá-la vá nas configurações do seu dispositivo e acesse as opções de desenvolvedor. 41 . 42 . 43 . O que é o Tiled? Tiled é um editor de mapa baseado em tiles de propósito geral.html Um arquivo de nome “tiled-0. tais como áreas de colisão.org/download. Ele é versátil o suficiente para permitir especificações mais abstratas. ou posições de power-up. Ele armazena todos esses dados em um formato conveniente e pradonizado chamado TMX (map.Obtendo o Tiled Map Editor: O Tiled Map Editor pode ser obtido através do link: http://www. Ele funciona como uma ferramenta gratuita para permitir a fácil criação de layouts de mapa. posições de surgimento do inimigo.tmx).11.mapeditor.0-win32-setup” será baixado. A criação de mapas no Tiled é tão simples que experiência em programação não é requerida.Adicionar quaisquer objetos adicionais para representar algo abstrato. 4 . Isto é poderoso porque ele permite que você envie o arquivo TMX a um jogador.Colocar o(s) tileset(s) no mapa. Uma vez que você é capaz de interpretar os dados TMX para o seu jogo. Por quê usar o Tiled? Ter um sistema padronizado e uma ferramenta flexível e poderosa já em mãos permite que você se concentre em coisas mais importantes em seu jogo. você pode criar seu mapa sem tamanhos rigorosos nas imagens. Outro motivo para usar o Tiled é que todas as informações de layout do mapa são armazenadas no arquivo TMX. 6 .Salvar o mapa como um arquivo TMX. 5 . Você também pode usar o Tiled para todas as entidades invisíveis. o Tiled ainda é uma excelente escolha como um editor de níveis. Com Tiled você pode especificar o tamanho de cada tile em sua imagem.Escolher o tamanho do mapa e o tamanho base do tile. e seguir em frente. Mesmo se você não quer que seu jogo tenha mapas baseados em tiles.Como funciona o Tiled? Na sua essência. e eles teriam instantaneamente o layout sem ter que baixar novamente o cliente (assumindo que o mapa TMX já utilize texturas do computador do jogador). 2 .Adicionar tilesets de imagem(s). 44 . as ferramentas do Tiled tornam-se muito rápidas para o seu pipeline de trabalho. o processo de criação de mapas usando o Tiled funciona da seguinte forma: 1 .Importar o arquivo TMX e interpretá-lo para o seu jogo. e mesmo os não-desenvolvedores podem usá-lo. Com o Tiled você vai ser capaz de pegar alguns tilesets. 3 . criar o seu nível (fase). ou objetos de surgimento (spawn) dentro do seu mapa. tais como áreas de colisão. Instalando o Tiled Map Editor: Execute o arquivo “tiled-0.11.0-win32-setup” baixado e siga o passo-a-passo: 45 . Clique no botão “Browse” para selecionar o diretório em que deseja instalar o Tiled. 46 . e em seguida clique no botão “Install”. Ao clicar no botão “Finish” com a opção “Lauch Tiled” selecionada. 47 . o Tiled será aberto. Lembre-se que há uma ordem na posição dessas camadas.Criando um mapa no Tiled: Com o Tiled já aberto após a instalação. pois talvez nem todas as abas e ferramentas estejam ativadas. Será mostrado em breve como ativar essas abas e ferramentas. já deve ter se deparado com esta funcionalidade. Pode ser que a sua tela esteja um pouco diferente. Você pode criar quantas camadas desejar. siga os passos abaixo: Conhecendo a interface do Tiled: Ao abrir o Tiled você vai se deparar com a tela acima. Fica sempre uma em cima de outra. 48 . Caso já tenha utilizado um editor de imagens como o Photoshop ou Gimp. Algumas abas: Camadas: Esta aba exibe as camadas (layers) do seu mapa. 49 .Minimapa: Aqui o seu mapa é exibido em tamanho mínimo (minimapa). não precisa selecionar. Caso alguma opção já esteja selecionada. Aqui você será capaz de pegar os tiles desejados para inserir em seu mapa utilizando algumas ferramentas que serão apresentadas em seguida. Tilesets: Esta aba exibe os tilesets carregados no seu mapa para utilização do mesmo. pois irá desativá-la. Ativando abas e ferramentas: Selecione todas as opções marcadas com pontos vermelhos. Agora com todas as abas e ferramentas em mãos. clique em Arquivo > Novo ou simplesmente pressione CTRL + N. 50 . A orientação pode ser ortogonal ou isométrica. a orientação isométrica faz isso. Tamanho do mapa: Largura: Aqui definiremos a largura do mapa em tiles. Não são necessárias para usuários comuns.: Não mexa nas outras opções. Altura: Aqui definiremos a altura do mapa em tiles. Altura: Aqui definiremos a altura do tile em pixels. mas caso queira dar uma impressão de 3D. 51 . Um jogo 2D (como o nosso) costuma usar orientação ortogonal.Orientação: Aqui escolheremos a orientação do mapa. Tamanho do tile: Largura: Aqui definiremos a largura do tile em pixels. Obs. O mapa será criado. Ambos tileset e mapa devem estar armazenados no mesmo diretório. 52 . Clique em Mapa > Novo Tileset: Obtendo o tileset: O tileset pode ser obtido através do link: http://opengameart.org/sites/default/files/snowWIP_12.png Obs. Lá também salvaremos o nosso mapa.: Salve o tileset na pasta “Assets” do seu projeto Android gerado pelo projeto LibGDX. e em seguida vamos inserir um tileset para utilizar no mapa. No campo “Nome” você pode nomear o tileset. Em seguida clique no botão “OK”.Clique no botão “Explorar” para procurar o tileset a ser inserido no mapa. ao selecionar o tileset o nome do mesmo levará o nome do próprio arquivo automaticamente. 53 . Se preferir. O tileset nada mais é que uma imagem dividida em tiles contendo todas as texturas que serão utilizadas na criação do mapa. podemos selecionar os tiles desejados e encaixá-los na grade do mapa como desejarmos.Na aba “Tilesets” indicada pela seta vermelha podemos ter acesso ao nosso tileset. Dessa forma. 54 . Ferramenta de Preenchimento: O balde pinta toda a grade com o tile selecionado. 55 . utilizando o tile selecionado do tileset. Pincel de Terreno: A ferramenta pincel de terreno permite criar pincéis mais complexos.Ferramentas: Carimbo: O carimbo pinta um tile da grade por vez. O objetivo é fazer todo o chão do nosso mapa. agora é só aplicar na grade e teremos o nosso chão. utilizaremos a ferramenta de preenchimento (balde). Queremos criar um pincéis para o terrenos “Terra” e “Neve” por exemplo. clique no ícone “Editar informações de terreno”. 56 . Perceba que você pode selecionar mais de um tile por vez apenas arrastando o mouse. Para poupar tempo e esforço. por exemplo.Navegue pelos tiles do tileset (indicado pela seta vermelha) e selecione um tile com textura de neve. Na aba Tileset. Utilizando o pincel de terreno: Vamos aprender agora a criar pincéis mais complexos tirando proveito da inteligência por trás do Tiled. Depois de selecionar o tile e a ferramenta. selecione o tile com textura de “Neve” e clique em “Adicionar Tipo de Terreno”.Com o botão direito do mouse. 57 . Procure todas as ocorrências de neve em todos os tiles e as selecione. Obs.: Nas imagens o termo “Snow-Ice” corresponde a “Neve” e o termo “Dirt” corresponde a “Terra”. 58 . Selecione tudo até que fique da seguinte forma: Agora faça o mesmo para o terreno “Terra”. Você deve marcar de azul todas as bordas que possuírem neve. Para isso basta criar uma camada superior e desenhar sobre ela. Basta pressionar o botão esquerdo do mouse na área desejada e arrastá-lo. Perceba que com o pincel de terreno você pode facilmente criar terrenos. podemos agora selecioná-los na aba “Terrenos” e aplicar em nosso mapa.Com os pincéis prontos. 59 . Algumas vezes será necessário a sobreposição de terrenos e/ou objetos. Depois de criar e editar. Clique em Arquivo > Salvar Como: 60 . vamos agora salvar o nosso mapa. criar os tilesets pode ser uma dificuldade. o ganho de produtividade é muito alto e com pouco esforço. Percebe-se que o Tiled pode ser usado por desenvolvedores e não-desenvolvedores com muita praticidade e facilidade. Muitas das vezes ele terá de obter os tilesets em repositórios que ofereçam tilesets gratuitamente (como em nosso caso) ou contratar um artista. 61 . Salve o arquivo no diretório de recursos do seu projeto. Procure pela pasta “assets” no projeto Android do seu projeto LibGDX para que possamos acessar o arquivo futuramente. Para um desenvolvedor que não tenha habilidades para desenhos/arte. Mas de forma geral.Digite o nome desejado para o mapa e perceba a extensão TMX do arquivo como dito anteriormente. a limitação é a criatividade. Conclusão: Com tais ferramentas simples e práticas. Apague todos atributos. certifique-se de atualizar o projeto. criações de objetos e chamadas de métodos utilizados anteriormente para rodar o exemplo demo.mygdx. Volte ao projeto LibGDX criado anteriormente e abra a classe “MyGdxGame.java” no pacote “com. 62 . ou pressione F5 com o projeto selecionado.Utilizando o mapa no LibGDX: Perceba o arquivo “mytiledmap. Caso não apareça.tmx” na pasta “assets” do projeto Android. Simplesmente clique com o botão direito do mouse no local indicado pela seta vermelha e selecione a opção “Refresh”.game” na pasta “src” do projeto “my-gdx-game-core”. 63 . Deixando dessa forma: 64 . Trataremos de câmeras e outros objetos futuramente. edite a sua classe para que fique assim: Agora é só executar o projeto como ensinado anteriormente e ver o resultado. Obs.0). Ela é posicionada na posição (0. Isso se dá ao fato de a câmera não ser posicionada da forma como desejamos. 65 . A origem do mapa.Em seguida.: Talvez você enxergue apenas parte do mapa. Veja o resultado: 66 .
Report "Introdução ao Desenvolvimento de Jogos com LibGDX.pdf"