Projeto Parallax – Engine de jogos 2D escrita em Java

Na ultima semana recebi por email a notificação do Cosmic Effect, onde sou inscrito, divulgando um post do desenvolvedor Michel Montenegro, descrevendo sobre o seu projeto de uma engine 2D escrita em Java, denominada Projeto Parallax.

Ao ler o post e assistir ao vídeo de apresentação da engine logo percebi que se trata de um dos projetos mais legais, inovadores e internacionais feitos por um brasileiro nos ultimos anos. Usei justamente o termo internacional pelo fato de eu já ter trabalhado em projetos internacionais, como o simulador de vôo Open Source FlightGear, adquirindo uma certa experiência que me possibilitou perceber o cuidado do autor em fazer um trabalho expansível e aberto, do mesmo nível de outros projetos internacionais.

Não posso deixar de citar que uma das maiores empolgações que tive de imediato ao assistir o vídeo, foi perceber que a engine trabalha nos moldes de muitos dos RPG‘s conhecidos pelos usuários e entusiastas da comunidade MSX, como Gouvellius, XAK, Fray, Shalom (Knightmare 3)  e com pitadas de SD-Snatcher.

Xak – The art of visual stage

De imediato tratei de entrar em contato com o autor do Projeto Parallax que me respondeu prontamente e atenciosamente de tal forma que trocamos endereços de email, GTalk e por fim nos falamos por mais de uma hora através do Skype. Foi um bate papo descontraído e  bastante proveitoso até porque conversamos sobre diversos assuntos relacionados a engine do Parallax, onde também citei o desenvolvimento do jogo pela comunidade MSX Brasil, divulgado meses atrás, nesse link aqui, sendo que o game da comunidade é no estilo Click-and-Point, próximo a RPG, porém em menor escala de complexidade.

Após muita conversa técnica, onde o autor me mostrou a estrutura da engine incluindo partes do código fonte em Java, percebi diversas coisas, algumas das quais compartilho abaixo:

  • O autor tem profundo conhecimento pois estudou a fundo o processo de desenolvimento de jogos, particularmente os RPG’s;
  • O projeto é altamente estruturado, não devendo nada aos projetos internacionais;
  • O código fonte (escrito em Java) é de excelente qualidade, muito claro e com excelente orientação a objetos e principalmente implementando com clareza os conceitos propostos pela engine;
  • O autor é muito, mas muito gente fina :);

Pedi então que o Michel fizesse um post explicando os detalhes do projeto Parallax e em pouco tempo ele me enviou um texto por email que reproduzo, na íntegra, abaixo.

Divirtam-se 🙂

Projeto Parallax – Uma engine de jogos 2D escrita em Java
por Michel Montenegro

Tudo bom pessoal, vim falar a vocês sobre o projeto Parallax, o projeto é um motor de criação de jogos 2D, ele funciona basicamente como um RPGMaker, para a criação de jogos ao estilo Dofus, Tibia e outros. Um dos focos do projeto é que o criador não programe uma única linha de código Java, somente altere valores em um “database” parecido com o do RPGMaker e edite suas imagens para o seu gosto e necessidade. Outro foco importante para o projeto é que ele vai dar suporte a jogos On-Line (MMOG). Imagine criar um jogo já com a possibilidade de ter um servidor em uma maquina e acessá-lo?.
Sou um fã de jogos em 2D e 3D, porém os jogos em 2D possuem uma mágica que atualmente vem sendo reconquistada no ambiente On-Line, tenho me deliciado com jogos online atuais que seguem aquele estilo visual, como o “épico e cômico” Dofus, o conhecido Tibia e mais recentemente o Club Penguin — este, um MMO em flash sob o selo de qualidade Disney, portanto, imaginem a qualidade da arte 2D.

Games

Uma engine em Java para RPGs em 2D
Não existem engines em Java para jogos 2D, para 3D existe o JMonkeyEngine, existem muitas bibliotecas para o apoio no desenvolvimento 2D, mas nada que ultrapasse esta barreira, não existe no Brasil um projeto similar e que esteja funcional e com este grau de amadurecimento.
Fazer jogos em Java é completamente viável por vários motivos, e algumas dessas razões me motivaram a escolher Java como linguagem, vou citar as vantagens desta engine:

  • Projeto open source – O usuário da engine poderá se assim desejar, fazer alterações personalizadas.
  • Compatibilidade – Possibilidade de rodar em qualquer sistema operacional que tenha uma JVM (Máquina Virtual Java) desde que atenda os padrões mínimos de hardware.
  • Sem programação – Não ter a necessidade de conhecer nenhuma linguagem de programação, apenas conceitos básicos de operação em qualquer sistema operacional.
  • Expansivo – Inicialmente, oferecer a capacidade de gerar jogos no mesmo estilo do RPG Maker para então expandir para outros modos. O Projeto Parallax é totalmente modular.
  • Off-line e on-line – Oferecer suporte online, possibilitando criar um MMOG ou MMORPG. Importante lembrar que o JMMORPG, protótipo do Parallax, obteve sucesso neste aspecto e suas estruturas estão sendo aproveitadas.
  • Custo zero – O Projeto Parallax somente faz uso de tecnologias 100% livres e de código aberto em sua construção.
  • Padronização no código e na criação final do produto – Utilização de técnicas modernas durante o desenvolvimento, garantindo compatibilidade com conceitos e tecnologias atuais.
  • Porta aberta para todos – Para quem deseja entrar na área de desenvolvimento de jogos, principalmente em Java, nosso projeto pode ser uma excelente escola.
  • Qualidade e simplicidade – Se for para qualquer um poder criar, não pode ser complexo. Procuro manter o código-fonte o mais objetivo, enxuto e padronizado possível.

O projeto parallaxUm relato rápido: no início, alguns profissionais da área de TI/desenvolvimento de jogos até me desmotivaram com relação a esta ideia, por conta da existência do XNA (framework de jogos para PC/X360 e Windows Phone), o GameMaker e até mesmo o próprio HTML5. Dei uma espiada nelas e pude concluir que, para o meu objetivo, Java continuou como a opção mais interessante, por quê?

  1. Existe JVM para Windows, Linux Mac, Symbian, Android, ambiente web (Applet) e outros que possuam uma JVM (aumentando a possibilidade de expansão ou adaptação do projeto, até para outra vertente, no que se refere à plataforma).
  2. Existem bibliotecas que agilizam muito o desenvolvimento em Java (Apesar do Graphic User Interface ser seu ponto fraco no quesito, ser trabalhoso e até complexo em relação a outras linguagens ou ferramentas mais especificas como o Flex, o resultado e controle que a linguagem dá por trás compensa estes detalhes).
  3. Uma rica quantidade de documentação a respeito da linguagem e de suas bibliotecas, dando suporte para um aprendizado mais veloz, além de poder usar qualquer outro conceito da área de desenvolvimento de jogos, sem o menor problema.
  4. Não ter que pegar nenhum tipo de licença, todas as tecnologias usadas são 100% gratuitas e de código aberto (Possibilitando mudanças personalizadas), dando total autonomia para o criador.
Engine em ação
Engine em ação

O Projeto Parallax já incentivou outros a pensar em fazer engines para Android e Symbian, uma outra vertente que gostaria de ver nossa engine se expandindo no futuro. Espero que gostem do trabalho e acreditem: foram dois anos e “uns quebrados” de muito estudo e pretendo levar a frente.
Peço que divulguem este artigo o máximo que puderem para seus amigos nas redes sociais e onde mais acharem relevante, quanto mais divulgação, maior a chance de ter colaboradores que ajudem o projeto a crescer mais rápido, lembrem-se “em solo fértil, um povo unido não passa fome” . Pois bem, respirei Projeto Parallax nos últimos dois anos e no site http://www.einformacao.com.br/parallax/ você pode encontrar em que pé a engine está neste momento. Sempre que possível vamos estar atualizando aqui o estado atual da engine ( ^^ ) um abraço a todos e obrigado!

Engine funcionando, com o jogo “As Crônicas Do Aventureiro”

Parallax Project – Video 2

Parallax Project – Video 3

Referência na internet

Site oficial do projeto Parallax
http://www.einformacao.com.br/parallax/

CosmicEffect – Video games ontem e hoje
http://cosmiceffect.com.br/

Project Parallax (CosmicEffect)
http://cosmiceffect.com.br/2012/02/16/projeto-parallax-engine-em-java-para-jogos-2d/

FlightGear – Open source Flight simulator
http://www.flightgear.org/

Java Home
http://www.java.com/en/

MSX, games e produções indepemntes (PopolonY2k Rulezz)
http://www.popolony2k.com.br/?p=967

MSX Brasil (Orkut)
http://www.orkut.com.br/Main#Community?cmm=98375914

RPG (Wikipedia)
http://en.wikipedia.org/wiki/Role-playing_video_game

Click-and-point adventure games (Wikipedia)
http://en.wikipedia.org/wiki/Adventure_game

Gouvellius (Wikipedia)
http://en.wikipedia.org/wiki/Golvellius

Xak (Wikipedia)
http://en.wikipedia.org/wiki/Xak

Fray (Wikipedia)
http://en.wikipedia.org/wiki/Fray_in_Magical_Adventure

SD-Snatcher (Wikipedia)
http://en.wikipedia.org/wiki/SD_Snatcher

Knightmare 3 – Shalom
http://knightmaresaga.msxblue.com/shalom/index.htm