Palestra Flixel – Aquecimento Global Game Jam

Posted in ActionScript, Flash, Flixel, Game, Jogo at janeiro 22nd, 2011. 1 Comment.

Criando um Hello World usando a Game Engine Flixel

Flixel é uma game engine escrita em ActionScript 3, facilita bastante a construção de alguns tipos e formatos de jogos, especialmente jogos de plataforma. Já possuí classes e métodos para lidar com:

  • Texto;
  • Colisão;
  • Imagens
  • Efeitos
  • Mapa;
  • Pontos;
  • Estados;
  • Fases;
  • Inimigos;
  • Vidas;
  • Câmera
  • e muitas outras coisas.

Esse post tem o objetivo de construir um Hello World, esse exemplo será o passo inicial para a construção de jogos mais complexos no futuro.

Em primeiro lugar você precisa conhecer o site do Flixel: http://www.flixel.org lá você encontra a game engine para download, fórum, wiki e outros games já desenvolvidos pela comunidade.

Primeiro passo: Instalação do FlashDevelop

Faça o download do FlashDevelop, nós vamos usar ele como IDE de desenvolvimento. Para fazer o download: http://www.flashdevelop.org/downloads/releases/FlashDevelop-3.2.1-RTM.exe.
Faça a instalação seguindo o padrão next next finish be happy! :)

Segundo passo: Flex SDK

Para construir o jogo nós precisamos do Flex SDK, que são as bibliotecas padrões do ActionScript 3, a game engine Flixel utiliza essas bibliotecas internamente e você provavelmente vai precisar de alguma delas para as customizações ou necessidades do seu jogo.
Faça o download: http://opensource.adobe.com/wiki/display/flexsdk/download?build=4.1.0.16248&pkgtype=1 e descompacte em algum diretório da sua preferência, daqui a pouco nós vamos usar ele.

Terceiro passo: Download do Flixel

Vamos precisar dele para a construção do jogo, ele na verdade é um framework de desenvolvimento de jogos. Já possui muitas bibliotecas prontas que facilitam e aceleram o desenvolvimento. Faça o download em: http://github.com/AdamAtomic/flixel/archives/master e descompacte também em algum diretório da sua preferência.

Criando um Novo Projeto

  • Abra o FlashDevelop;
  • Clique no menu “Project”;
  • Clique na opção “New Project”;
  • Em “Installed Templates” selecione “AS3 Project”;
  • Em “Name:” digite HelloWorld;
  • Marque o checkbox na opção “Create directory for project”;
  • Clique no botão “Ok”.

Configurando o Flex SDK e Flixel no Projeto

  • Clique no menu “Project”;
  • Clique na opção “Properties…”;
  • Clique na aba “Compiler Options”;
  • No campo “Custom Path to Flex SDK” clique no botão “…” e selecione o diretório onde você descompactou o Flex SDK;
  • Clique na aba “Classpaths”;
  • Clique no botão “Add Classpaths…” e selecione o diretório onde você descompactou o Flixel, mas você precisa entrar na pasta e selecionar a pasta “org”;
  • Clique no botão “Ok”.

Programando o HelloWorld

HelloWorld.as

  • No diretório src do projeto existe o arquivo Main.as, apague esse arquivo;
  • Clique com o botão direito do mouse na pasta “src” depois “add” e “New Class…“;
  • Digite para o campo “Name:” o valor: HelloWorld.

Será gerando um código inicial como esse:

package  
{
	/**
	 * ...
	 * @author Patrick Espake
	 */
	public class HelloWorld
	{
 
		public function HelloWorld() 
		{
 
		}
 
	}
 
}

Vamos alterar para ficar dessa forma:

package  
{
	// Importa a game engine Flixel
	import org.flixel.*;
 
	// Tamanho da tela e cor de fundo
	[SWF(width = "640", height = "480", backgroundColor = "#000000")]
 
	// Classe HelloWorld
	// herda a classe FlxGame para incorporar as funcionalidades do Flixel
	public class HelloWorld extends FlxGame
	{
		// Método construtor
		public function HelloWorld() 
		{
			// Tamanho da área útil
			// classe inicial a ser chamada depois do jogo carregar
			// e nível de zoom
			super(640, 480, PlayState, 1);
		}	
	}
}

Através dos comentários acima você deve ser capaz de entender a maioria do código, basicamente nós definimos a dimensões do swf que será gerado, a cor de fundo, e qual classe de estado deve ser chamada após o jogo terminar de carregar, nesse exemplo PlayState que não criamos ainda.

E importante notar que nós herdamos no código a classe FlxGame, através desse herança podemos adquirir métodos e atributos da game engine Flixel.

Agora precisamos dizer para o FlashDevelop sempre compilar essa classe que acabamos de criar, clique com o botão direito do mouse sobre a classe “HelloWorld.as” e clique na opção “Always Compile“.

PlayState.as

Crie uma nova classe no diretório src chamada PlayState.

Altere o seu código para ficar da seguinte forma:

package  
{
	// Importa a game engine Flixel
	import org.flixel.*;
 
	// Classe inicial do jogo
	// herda de FlxState
	public class PlayState extends FlxState
	{
		// Método do Flixel
		// usado para criar os elementos do jogo
		override public function create():void
		{
			// Criação do texto com o Hello World!
			var t1:FlxText = new FlxText(0, 0, FlxG.width, "Hello World!");
			t1.alignment = "center";
			t1.size = 48;
 
			// Adiciona o texto na tela
			add(t1);
		}
	}
}

A classe PlayState representa o estado de jogo do Flixel, a game engine possui uma máquina de estados, você pode ter vários estados, por exemplo: menu, créditos, primeira fase, segunda fase, game over e vitória. O Flixel já possui alguns métodos para realizar facilmente essa transição de estados.

Nessa classe nós herdamos de FlxState que possui vários métodos e atributos para lidar com estados do jogo, através do método create é criado os elementos do jogo, nesse exemplo simples apenas um texto com “Hello World!”.

Você pode pressionar a tecla F5 para testar, caso você tenha o Flash Debugger instalado ele já vai abrir a tela com o jogo, caso contrário você terá que ir na pasta bin e abrir o arquinvo index.html no navegador.

Posted in Flash, Flixel, Game at junho 9th, 2010. No Comments.

Jogo Galaxis Farm será apresentando VI Seminario Jogos Eletrônicos, Educação e Comunicação

banner galaxisfarm

Durante aproxidamente três meses eu estive trabalhando como programador do jogo Galaxis Farm, ele está disponível no endereço: http://www.galaxisfarm.com.

Esse foi o meu primeiro grande jogo, essa consideração é porque diversas pessoas estiveram presentes no processo:

  • Eu – Programação;
  • Diego Cabral – Ilustrações e design de personagens;
  • Bruno Campagnolo de Paula – Coordenação e game design;
  • Roberta Zuge – Consultoria veterinária.

Até o presente momento eu obtive um grande aprendizado em todo o processo de desenvolvimento, além dos fatores tecnológicos, os fatores científicos, de pesquisa, colaboração e concepção foram fortemente abordados.

Agora recebi a boa notícia que o jogo foi selecionado para participar da mostra de jogos eletrônicos que acontecerá no VI Seminário Jogos Eletrônicos, Educação e Comunicação – construindo novas trilhas, na Universidade do Estado da Bahia (UNEB). A apresentação do jogo será realizada no dia 06/05, com início às 12h e término às 12h20.

Mais informações: http://realidadesintetica.com/seminario/

Parabéns a todos os envolvidos.

Posted in Flash, Flixel, Game at abril 21st, 2010. No Comments.

Jogo Galaxis Farm Versão Beta

Sobre o Jogo

Galaxis Farm é um jogo de gerenciamento de tempo para plataforma Adobe Flash. Está sendo desenvolvido com a engine Flixel (http://www.flixel.org) e pode ser modificado via scripting em linguagem Lua (http://www.lua.org).

O objetivo principal deste jogo é administrar uma fazenda. É um jogo ecológico. Desta forma, o jogador também deve ser preocupar com os requisitos ambientais, atendendo, por exemplo, às legislações pertinentes de: reserva legal, mata ciliar, destinação de carcaças e tratamento de dejetos.

Lançado, inicialmente, para o “Concurso de Jogos em Software Livre” da Latinoware 2009 (http://www.latinoware.org/node/76), este jogo também serve como teste de conceito para a criação de jogos em software livre voltados para a plataforma Web.

Desenvolvido, portanto, com ferramentas livres, não é necessária a utilização de compiladores ou ferramentas de edição proprietárias do Adobe Flash. Pode ser compilado e modificado utilizando-se o editor aberto FlashDevelop e o framework OpenSource Flex SDK.

Equipe envolvida, Divisão de Inteligência Artificial do TECPAR:

  • Patrick Espake – Programação;
  • Diego Cabral – Ilustrações e design de personagens;
  • Bruno Campagnolo de Paula – Coordenação e game design;
  • Roberta Zuge – Consultoria veterinária.

Como Jogar

Para jogar uma versão beta (preliminar) acesse: http://www.galaxisfarm.com/beta/ ou faça o download da versão executável: http://galaxisfarm.com/wp-content/uploads/beta_galaxisfarm.exe

Código Fonte

O código fonte do jogo está disponível no Google Code em: http://code.google.com/p/galaxisfarm/

Versão Beta

Atualmente o jogo está disponível na versão beta, essa versão possui as seguintes limitações:

  • Colisão imperfeita do personagem com as construções;
  • Imagens de botões simples;
  • Efeitos visuais simples;
  • Não possui ranking;
  • Problemas nos descartes de vacas mortas.

Próxima Versão

Estamos trabalhando na nova versão do jogo, nessa versão pretendemos usar a última versão da game engine Flixel, que aparentemente trabalha melhor com colisões, também vamos melhorar as imagens e efeitos visuais.

Sobre a Game Engine Flixel

É uma biblioteca Actionscript (Flash) livre, destinada para uma grande variedade de jogos em Flash. Inclui ganchos para gravidade e profundidade. Já possui métodos prontos para trabalhar com:

  • Rápida renderização (+5000 sprites em computadores modernos);
  • Tilemaps;
  • Sistema de partículas;
  • Controle de volume, com teclas de atalho;
  • Parallax scrolling (multi-direcional);
  • Colisão de sprites;
  • Renderização de textos;
  • Renderização retro com opções de 2x pixels, 3x pixels, etc;
  • Não precisa da IDE do Flash, trabalha melhor com ferramentas livres como FlashDevelop;
  • Organização das classes por estados do jogo;
  • Botões simples;
  • Utilitários para loop de música e tocar som;
  • Efeitos especiais simples.

Sugestões e Críticas

Ficamos no aguardo das suas sugestões e críticas a respeito do jogo.

Apoio Financeiro Fundação Araucária.

Posted in Flash, Flixel, Jogo at março 3rd, 2010. No Comments.

 Assinar RSS Feed