Tag Archives: flex

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

Por que eu gosto de jogos em Flash?

Muitos não entendem porque eu gosto tanto de Flash, mas vou tentar mostrar aqui.

flash Jogos em flash dominam o mercado de jogos casuais na internet, primeiro porque segundo a Adobe, cerca de 99% dos computadores com acesso à internet possuem o Flash Player instalado. Depois porque é relativamente fácil criar um jogo com o Adobe Flash. O editor é muito bom, e a integração de desenhos (vetoriais) e animações com código é muito fácil. Ah, nem falo do ActionScript 3… linguagem muito parecida com Java e bem poderosa.

gamebig_farmvilleE há outros pontos importantes a favor do crescimento de jogos casuais em flash apresentados nesse artigo: 5 Reasons why Flash will take over Gaming, que são: o fato da Adobe e a nVidia estarem trabalhando em num flash player com aceleração por hardware, o crescimento de jogos em redes sociais como Facebook ou MySpace, o Adobe Air, que porta sua aplicação Web em flash para Desktop, a ascensão dos netbooks e o Google Chrome OS, o flash player em Smartphones e eu ainda poderia citar a recente notícia de que o Flash CS5 irá exportar diretamente para o iPhone. (Leitura recomendada: Thoughts about flash on the iPhone e Flash on the iPhone)

Mas com todas essas vantagens, por que não entendem o motivo de eu gostar de jogos em Flash? Bom, basicamente porque o Adobe Flash não é muito barato. Mas, felizmente, há muitas alternativas ao Adobe Flash (editor).

gol_total_flex_baixa O Flex, tecnologia baseada em Flash da Adobe para RIA (Rich Internet Application) é composta por um editor pago (Flex Builder), que você, estudante, pode baixá-la gratuitamente aqui, e por um SDK OpenSource. Essa SDK tem um compilador ActionScript e MXML para SWF. Você pode acessar o site do Flex SDK, baixar e começar a criar jogos gratuitamente. Se você já programa jogos em linguagens como C/C++ ou Java, por exemplo, vai gostar muito, pois o modelo de desenvolvimento aqui fica idêntico. Aqui segue alguns tutoriais interessantes sobre desenvolvimento de games com o Flex SDK:

ActionscriptIcon Também há compiladores de ActionScript OpenSource que não são da Adobe, como o MTASC e o haXe. O MTASC é um compilador de ActionScript 2. Já o haXe é uma linguagem muito parecida com ActionScript 3 que lhe dá uma gama muito grande de possibilidades, entre elas, compilar para SWF.

Para evitar que você fique aí programando em ActionScript no Notepad++ ou no VIM, existe o FlashDevelop, uma IDE para ActionScript muito bacana e OpenSource. Infelizmente essa IDE é feita em .NET, o que significa que só funciona no Windows, mas mesmo assim, há alguns plugins para Eclipse que suportam AS.

Ainda há muitas outras ferramentas e material interessantes no OSFlash, um site dedicado à atividade OpenSource para a Plataforma Flash.

Eu estou preparando um artigo aqui pro blog há algum tempo falando sobre monetização de jogos casuais, e como o Flash é uma ótima plataforma para jogos casuais, que vem crescendo muito, é uma ótima opção para desenvolvedores Indies e Hobbistas faturarem um troco para um cafezinho. Espero terminá-lo em breve. Quem sabe assim eu convenço aqueles que ainda não estão convencidos após este post…

Google Buzz