Posts Tagged ‘Flixel’

Criando um Hello World usando a Game Engine Flixel

Postado em 09 jun 2010
Categoria(s) Flixel, Jogo

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.

  • Share/Bookmark

Jogo Galaxis Farm Versão Beta

Postado em 03 mar 2010
Categoria(s) Flixel, Game, PIBIC

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.

  • Share/Bookmark

Flixel Game Engine – ActionScript 3

Postado em 05 nov 2009
Categoria(s) ActionScript, Flash, Flixel, Game, Jogo, Lab

É 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.

Facilidade de uso

É bem simples de ser usada, já possui com um conjunto de classes com vários métodos que facilitam bastante o trabalho com sprites, tilemaps, colisões e sons.

Licença envolvida

Está disponível através da licença MIT.

Linguagem

Actionscript 3.

Plataformas

Roda em cima do Flash Player, dessa forma funciona em qualquer plataforma Windows, Linux, Mac OS e Web.

Performance em 2D

Possui um ótima performance para ambientes em 2D, segundo testes do autor da game engine ela consegue trabalhar com mais 5000+ objetos na tela do jogo.

Performance em 3D

Não consegue trabalhar com o ambiente 3D.

Carregamento de modelos 2D e 3D

Consegue trabalhar com imagens em 2D e fazer o seu carregamento de forma muito simples. Não trabalha com carregamento de modelos 3D.

Facilidade de instalação

Para construir os jogos em Flixel é recomendado usar a IDE FlashDevelop, para realizar a instalação e configurar o ambiente siga os passos abaixo:

Contribuição para a comunidade

Flixel possui uma comunidade bastante ativa, com vários jogos já desenvolvidos, é possível fazer parte e interagir com a comunidade no endereço: http://flixel.org/forums/.

Testes

Para realizar o teste foi seguido um tutorial de jogo disponível em: http://flixel.org/forums/index.php?topic=226.0 e o código fonte está disponível no Github no endereço: http://github.com/patrickespake/Flixel-Ninja.

Basta efetuar dois cliques no arquivo Ninja.as3proj e ele já será carregado no Flash Develop, no diretório bin do projeto existe o arquivo chamado index.html, basta abrir esse arquivo no navegador e ver o jogo rodando.

A tecla X pula, a tecla C atira estrela e os direcionais movimentam para esquerda e direita.

  • Share/Bookmark

Meu primeiro jogo de plataforma usando Flixel Game Engine

Postado em 18 set 2009
Categoria(s) ActionScript, Flash, Flixel, Game, Inteligência Artificial, Jogo, Lab, PIBIC

tecpar-fachadaEu sou bolsista de iniciação cientifíca no TECPAR (Instituto de Tecnologia do Paraná), lá eu estou desenvolvendo pesquisa cientifíca na área de inteligência artificial para jogos. A bolsa tem duração de 1 ano e ontem completou um mês que eu estou lá, está sendo muito proveitosa a experiência, a quantidade de conhecimento que está sendo repassada é imensa, sem contar que eu estou cercado de doutores e mestres.

Uma das primeiras atividades foi pesquisar as games engines existentes e analisar os seus prós e contras no desenvolvimento de jogos, eu analisei uma série de tecnologias em diferentes linguagens e plataformas. Essa semana eu desenvolvi uma pesquisa sobre a game engine Flixel (www.flixel.org) voltada para o Flash.

Sobre a 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.

Game: Green ninja don’t like the blue ninja

flixel-ninjaPara testar os recursos do Flixel eu desenvolvi um jogo de plataforma chamado “Green ninja don’t like the blue ninja”. É um jogo plataforma, onde você é o ninja azul e o seu objetivo é escapar dos ninjas verdes que querem matar você, para isso você tem estrelas que pode atirar nos ninjas verdes eliminando eles, por consequência você obtém uma pontuação por cada ninja verde morto. Os direcionais movimentam o ninja azul, a tecla X pula e a tecla C atira estrela.

Foi muito interessante desenvolver esse game no decorrer dessa semana, muitos conceitos no desenvolvimento de jogos que eram bem obscuros para mim, depois da construção desse game as coisas foram esclarecidas, e eu percebi que construir um game não é uma tarefa tão complexa como eu pensava, a análise mais difícil é você raciocionar para criar ilusão na programação, acredito que essa seja uma das tarefas mais complicadas.

Para dar o ponta pé inicial no desenvolvimento eu fui seguindo esse tutorial da comunidade do Flixel: http://flixel.org/forums/index.php?topic=226.0 e depois fui adicionando minhas customizações, melhorias no comportamento do inimigo, mais estados para o jogo, efeitos especiais e sons.

Se você seguir os mesmos passos vai ver que não é nenhum bicho de 7 cabeças.

Flixel é uma game engine bastante nova, surgiu no meio desse ano, mas eu recomendo ela fortemente, tudo que eu vi, usei e programei até agora fui muito satisfatório.

Se você quiser jogar o game visite: http://lab.patrickespake.com/flixel-ninja.

O código fonte está disponível no github: http://github.com/patrickespake/Flixel-Ninja sinta-se livre para modificar, reutilizar e distribuir.

  • Share/Bookmark