Archive for the ‘Flixel’ Category

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

Notícias relacionadas ao jogo Galaxis Farm

Postado em 11 mai 2010
Categoria(s) ActionScript, Flash, Flixel, Game, PIBIC, Projetos

Através da minha bolsa de iniciação científica no TECPAR, eu pude aprender muita coisa desde o ano passado até agora. Vários novos conhecimentos foram adquiridos principalmente na área de desenvolvimento de jogos, inteligência artificial aplicada a jogos e a web.

Um dois primeiros frutos do meu trabalho foi o Jogo Galaxis Farm, onde eu fui responsável pela programação do jogo, atualmente o jogo está disponibilizado no endereço http://www.galaxisfarm.com.

Eu fico muito contente pela recupersão na mídia do jogo:

09/05/2010 – Pirataria é inimiga dos produtores de games – http://www.parana-online.com.br/canal/tecnologia/news/445889/?noticia=PIRATARIA+E+INIMIGA+DOS+PRODUTORES+DE+GAMES

29/04/2010 – Jogo para entender o funcionamento de uma fazenda leiteira – http://www.odiariomaringa.com.br/noticia/241672

28/04/2010 – Jogo eletrônico ajuda a entender funcionamento de fazenda leiteira – http://www.aen.pr.gov.br/modules/noticias/article.php?storyid=56025&tit=Jogo-eletronico-ajuda-a-entender-funcionamento-de-fazenda-leiteira&ordem=170000

Ainda não temos definido qual será o futuro do Jogo Galaxis Farm, por enquanto ele está na versão beta. Nas últimas semanas nós começamos a trabalhar no próximo jogo o Galaxis Dream, que tem o objetivo da difusão das boas práticas agropecuárias. Provavelmente no futuro irei escrever mais sobre o jogo Galaxis Dream.

Assim como o Galaxis Farm, o Galaxis Dream também tem o seu código fonte open source no endereço: http://code.google.com/p/galaxisdream/

  • Share/Bookmark

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

Postado em 21 abr 2010
Categoria(s) Flash, Flixel, Game, Inteligência Artificial, Jogo, PIBIC, Projetos

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.

  • 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