Tag Archives: Ubuntu

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