Category Archives: Tutoriais

Tutoriais sobre qualquer assunto.

Criando Flash Games no Linux

Flash no LinuxConheço muita gente que não gosta de jogos em Flash. Mas muitos deles dizem que não gostam porque não podem programar jogos para ele. Ou porque não podem pagar pelo Adobe Flash, e outros porque usam Linux. Eu já citei algo sobre isso no post Por que eu gosto de jogos em Flash?

Como muitos sabem, a Adobe tem o Flex SDK, que são o compilador e as bibliotecas do Flex Builder, só que OpenSource. Com ele você já tem o suficiente para desenvolver qualquer jogo em Flash utilizando ActionScript 3 e as bibliotecas do Flash.

Então resolvi criar um pequeno guia para iniciar na programação de jogos em Flash no Linux. Eu aqui estou usando o Ubuntu Karmic Koala, mas acredito que não vai mudar muita coisa para outras distribuições.

Instalando o Flex SDK

Primeiro de tudo você tem que instalar o Sun JDK. Se você estiver usando qualquer distro debian-based, você pode instalar direto pelo apt-get assim:

$ sudo apt-get install sun-java6-jdk

Caso esteja usando outra distro, você pode baixar a JDK diretamente pelo site do Java. Agora baixe a SDK do Flex no site da Adobe. É um pouquinho grande, tem cerca de 120MB. Agora extraia o conteúdo do arquivo no diretório /opt/flex, que você deve criar. Supondo que você baixou o arquivo flex_sdk_3.5.zip na pasta Downloads:

$ sudo mkdir /opt/flex
$ cd ~/Downloads
$ unzip flex_sdk_3.5.zip -d tmpflex
$ sudo mv tmpflex/* /opt/flex/
$ rm -rf tmpflex

Pronto, você já extraiu a SDK do flex para a pasta /opt/flex, se quiser ter certeza disso, pode dar um:

$ cd /opt/flex
$ ls

Se você ver um monte de arquivos e pastas é porque deu tudo certo. Entretanto, você precisa adicionar a pasta bin ao PATH, para que você possa chamar o compilador pelo shell. Então faça o seguinte:

$ sudo echo "export PATH=/opt/flex/bin:$PATH" >> ~/.bashrc

Isso vai adicionar  a linha export PATH=/opt/flex/bin:$PATH ao arquivo .bashrc, o que dizer que a pasta de binários do Flex SDK vai poder ser acessada pelo shell. Agora feche todas as suas janelas de terminal, abra uma e teste se tudo está ok:

$ mxmlc --version

Se ele mostrar a versão é porque está tudo funcionando perfeitamente.

Instalando o FlashPlayer Standalone

Depois de instalar o SDK do Flex, você já pode programar normalmente e testar seus SWF’s em um navegador. Mas isso não é aconselhável porque dessa forma você não pode ver os erros de runtime que acontecerem no seu jogo. Então vamos instalar o FlashPlayer Standalone. Primeiro de tudo, baixe o pacote com o player normal e o player com debugger aqui no site da Adobe. Mais uma vez vamos extrair e instalar:

$ cd ~/Downloads
$ tar xzvf flash_player_10_linux_dev.tar.gz
$ cd flash_player_10_linux_dev/standalone/debugger
$ tar xzvf flashplayer.tar.gz
$ sudo mv flashplayer /usr/bin/
$ cd ~/Downloads
$ rm -rf flash_player_10_linux_dev

Pronto, teste agora para ver se o flashplayer foi instalado:

$ flashplayer

Onde programar?

Aqui é a parte onde a programação para Flash no Linux me decepciona um pouco. No Windows nós temos o FlashDevelop, que é uma ótima IDE OpenSource. Para Linux eu testei vários plugins para Eclipse e para NetBeans e, infelizmente, não consegui fazer nenhum deles funcionar. São, em sua maioria, muito antigos e sem suporte para as novas versões dessas maravilhosas IDE’s.

Mas há plugins de colorização de código para editores como o VIM, ou o gedit. Para instalar o plugin de colorização ActionScript 3 no gedit, baixe esse arquivo actionscript3.lang e então coloque na pasta /usr/share/gtksourceview-2.0/language-specs/.

Criando um joguinho em ActionScript 3

Depois de tudo isso, vamos criar algo bem básico só para mostrar como é a programação em ActionScript no Linux. Primeiro de tudo, crie uma pasta para o seu projeto:

$ mkdir asgame
$ cd asgame

Agora então crie uma classe bem básica em AS3:

package {

   import flash.display.Sprite;

   // Define algumas características do SWF
   [SWF(width="640", height="480", frameRate="60", backgroundColor="#00CC00")]

   public class Game extends Sprite {
      public function Game()
      {
         trace ("Jogo iniciado!");
      }
   }
}

Essa é a classe mais simples possível, ele apenas vai ter o fundo verde e vai exibir um texto no console. Salve como Game.as. Para compilar, basta chamar o mxmlc:

$ mxmlc Game.as

Depois para testar, você chama o flashplayer passando o Game.swf (que acabou de ser compilado):

$ flashplayer Game.swf

Você também pode testar isso no seu navegador.

Eu costumo criar um script, ou um alias para fazer isso pra mim. Veja como ficaria um script run.sh:

#!/bin/sh

mxmlc Game.as && flashplayer Game.swf

Então fica facinho compilar e testar a cada alteração no código:

$ ./run.sh

Ou simplesmente criar o alias run para compilar de uma vez:

$ alias run="mxmlc Game.as && flashplayer Game.swf"

E chamar usando:

$ run

Frameworks

Não poderia de citar alguns frameworks para o desenvolvimento de jogos em ActionScript 3.0 (com o Flex SDK):

Não testei a fundo nenhuma das três. Instalei e fiz alguns testes bem básicos com a flixel e com a PushButton, mas nada de interessante que eu possa postar aqui. Por isso vou deixar essa parte para um futuro post.

Conclusão

Eu comecei a criar meu primeiro joguinho em ActionScript 3 com a Flex SDK no Linux há pouco tempo. Já deveria tê-lo terminado, mas não consegui por outros fatores. Entretanto, você pode acessar o código-fonte do BallCanoide em desenvolvimento no GitHub.

No começo eu procurei usar alguns frameworks que eu citei acima, mas percebi que para esse caso eu não precisaria, pois só as bibliotecas do Flash mesmo seriam suficiente. Ainda mais que eu já tinha algum conhecimento delas.

Espero que esse pequeno guia ajude pessoas que não sabem como programar jogos em flash no Linux a começar nessa área. Ainda essa semana eu pretendo escrever um post sobre como utilizar o InkScape para criação de recursos gráficos para jogos em ActionScript com Flex SDK. Já que o Flash trabalha com imagens vetoriais nativamente, nada mais natural que usar SVG. Aguardem. =D

Google Buzz

Estudando Game Design

Algo que eu devo fazer o quanto antes. Apesar da minha área ser programação de jogos, tenho que ter uma boa idéia de game design para criar meus joguinhos para competições. Se você gosta de criação de jogos, demorou para aprender um pouquinho sobre Game Design.

Como em todas as outras áreas do conhecimento, há várias formas de aprender sem fazer um curso específico. Aqui vai algumas dicas simples.

Na internet

Minha melhor recomendação é o recente curso gratuito de Game Design dado por Ian Schreiber – profissional da área de games há algum tempo que já escreveu alguns livros que serão citados adiante. O curso foi dado entre Julho e Setembro, com um fórum para tirar dúvidas e uma wiki com dicas e traduções do curso. Infelizmente a tradução para o português parou logo no primeiro capítulo do curso.

O Ian também tem um blog sobre Game Design, que é o Teaching Game Design, além de escrever no blog Applied Game Design.

Não podemos de citar sites como Gamasutra e GameCareerGuide, que têm muito texto sobre desenvolvimento, não só na área de Game Design como em outras áreas também. O Gamasutra é considerado como um dos melhores sites quando o assunto é desenvolvimento de games.

Também temos blogs brasileiros sobre o assunto, o Loodo, por exemplo, é um ótimo blog sobre game design. GameDevBR, Desvaneios Digitais Interativos  e o Blog do Tupinihon são outros que você não pode deixar de dar uma olhada, sempre têm dicas sobre o assunto.

Livros

Livros são indispensáveis, há vários livros sobre o assunto que são ótimos. A maioria é em inglês, então se você não sabe inglês, esse é o primeiro passo.

ArtOfGameDesign Em português eu poderia citar o Design de Games e o Design de Jogos. Não li nennhum dos dois ainda, porém assim que eu o fizer, com certeza postarei aqui um review.

Já em inglês há vários. Como pré-requisito do curso do Ian, há dois livros interessantíssimos, que é o A Theory of Fun e o Challanges for Game Designers. E um dos mais falados por aí é o The Art of Game Design: A book of lenses. O livro parece realmente muito bom, e você pode constatar isso em vários reviews desse livro.

Agora basta  você se empenhar. Material não falta.

Google Buzz

Git, GitHub e Windows

Eu já tive muito problema para configurar o Git com o GitHub aqui no Windows, na verdade, para fazer a autenticação SSH funcionar, então resolvi compartilhar o que eu fiz com vocês, caso mais alguém teve problemas também. Aproveitando, vou mostrar como criar um repositório no GitHub e falar sobre outros sites do tipo que usam Git.

Fazendo funcionar

Primeiro de tudo, instale o Git com o msys, que é um “emulador” de Bash para Windows, aqui. Na instalação, só tenha certeza que a opção “Use OpenSSH” está ativa.

Pronto, agora nós precisamos criar uma chave SSH, para isso, abra o Git Bash, e digite:

$ cd ~/.ssh/

Caso a pasta .ssh não exista, então crie:

$ mkdir .ssh

Agora então entre nela. Vamos definir os seus dados no Git:

$ git config --global user.name "Bruno Croci"
$ git config --global user.email email@seila.com

Agora criamos a chave SSH:

$ ssh-keygen -t rsa -C "email@seila.com"

É interessante que você use o mesmo email que usou para cadastrar no GitHub. Ele vai fazer uma série de perguntas, como onde você quer salvar, apenas dê enter, vai perguntar também se você quer colocar uma senha de acesso, é bom colocar, mas não necessário.

Agora você vai na sua conta no GitHub, e em account. Na parte de SSH Public Keys, você vai clicar em add another public key, então você vai agora lá na pasta .ssh que você criou na home – se você tiver no Windows XP é C:\Documents and Seetings\Usuario\.ssh\, caso esteja no Windows Vista ou superior, é C:\Users\Usuario\.ssh\ – e vai abrir o arquivo id_rsa.pub, vai copiar o seu conteúdo exatamente igual, sem nenhuma quebra de linha a mais nem a menos e vai colar no campo Key da página, o título você pode colocar qualquer coisa. Então adicione essa chave.

Lembrando que essa chave é criada de acordo com o computador, então em cada computador que você quiser acessar sua conta, vai ter que criar uma chave nova e então adicioná-la à sua conta no site.

Agora volte para o console aberto e teste com:

$ ssh git@github.com

(esse passo provavelmente não vai funcionar no codaset, caso esteja configurando ele, pule este teste)

Caso você tenha setado uma senha na criação da chave, ele irá perguntar, coloque-a e veja o que ele diz. Se você fez tudo exatamente como mostrado, ele vai mostrar uma mensagem dizendo que conseguiu conectar.

E agora?

Se o SSH conseguiu conectar, agora tudo já funcioina perfeitamente, mas e agora? Que tal criarmos um repositório? Primeiro de tudo, vá na pasta do seu projeto e crie o repositório assim:

$ git init

Lembre-se de ter um arquivo README nessa pasta com a descrição do repositório. Agora adicione todos os arquivos dando um:

$ git add .

Comite tudo isso:

$ git commit -m "Primeiro Commit. =D"

Agora vá no GitHub, crie um repositório novo. Precisamos avisar este repositório local, que ele deve sincronizar com o do site, então faça assim:

$ git remote add origin git@github:SeuLogin/NomeDoRepositorio.git

Agora vamos sincronizar este repositório com o remoto:

$ git push origin master

Pronto, você já sincronizou todo o projeto.

Além do GitHub?

Você pode usar outros serviços do tipo, além do GitHub, como por exemplo o Gitorious, ou o Codaset. O Codaset é um serviço que está em Beta ainda, mas achei bem legal. Apesar de não ter muitas coisas diferente dos outros.

Todos os passos que eu dei aqui são iguais para qualquer serviço, basta que você cadastre sua chave ssh no serviço que você for usar.

Se você quiser conferir alguns projetos meus, você pode acessar minhas contas no Codaset e no GitHub.

Não sei NADA de Git…

Sem problemas, eu também só sei comitar, e sincronizar os repositórios. Por isso você pode dar uma lida no livro Magia Git, que é muito bom.

Só para constar, esse pequeno tutorial foi baseado no tutorial do GitHub sobre geração de chaves SSH.

Google Buzz