Projeto Parallax – Engine Em Java Para Jogos 2D

Por Michel Montenegro

Olá turma do Cosmic Effect! Mais um fanático pelos jogos em 2D por aqui desejando compartilhar um pequeno projeto com vocês. Bom, uma rápida apresentação: sou daqueles que não deixa passar nenhum Final Fantasy, Pokémon e Chrono Trigger, tornando-me mais um enfeitiçado por estes títulos clássicos — mas não somente pelos jogos em si.

Sem conseguir desgrudar da estética dos retrogames em duas dimensões, 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.

Somando a paixão pelos velhos sprites com a mecânica do RPG old-school, comecei a ter um sonho recorrente: fazer o meu próprio MMORPG. Bom, já cheguei a administrar servidores com até 1000 pessoas online, através da utilização de um projeto de servidor open source em Java, o L2J. Tudo isso me motivou a uma pergunta: “será que é possível um MMORPG em 2D, recuperando o estilo de jogo clássico”?

Daí nasceu um pequeno projeto que havia batizado de “JMMORPG”. Após algum tempo aprendendo com este primeiro modelo que havia desenvolvido, caindo e levantando muito… nasceu o Projeto Parallax, que supera de longe seu antecessor e que gostaria de lhes apresentar neste pequeno artigo.

Uma engine em Java para RPGs em 2D

Percebi que não existem engines em java para desenvolver jogos: há somente o JMonkeyEngine, porém direcionado à confecção de jogos 3D. Existem muitas bibliotecas, mas nada que possa ser descrito como uma engine totalmente funcional. Então, por que não me ajudar e, no processo, ajudar também outras pessoas? Será que é possível conseguir contribuições e, como um projeto mútuo, ter seu desenvolvimento acelerado? Como diz o ditado, “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.

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

Enfim, o objetivo do projeto é criar uma engine que possibilite a criação de jogos 2D sem que haja a necessidade de digitar uma única linha de código por parte do desenvolvedor, assim como acontece com o RPG Maker, porém com as seguintes vantagens:

  • Projeto open source. O usúario 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.
  • Offline e online. Oferecer suporte online, possibilitando 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.

Que tipo de apoio o Projeto Parallax precisa

  1. Designer/artista gráfico. Para desenhar as telas do jogo, personagens, etc.  Sei que podem ficar mais bonitas visualmente. Do ponto de vista operacional, é bem fácil, pois as telas funcionam no conceito de skin/template. A tela é composta por painéis, um dentro do outro. Os painéis têm uma imagem de fundo. Os botões carregam a imagem pré-estabelecida, se mudar a skin da imagem, muda no projeto. Fazer arte/design na engine é bem fácil, pode acreditar. Há um vídeo planejado para ser feito somente para desmistificar qualquer possível complexidade que por ventura o projeto possa passar no que se refere aos gráficos.
    .
  2. Desenvolvedor (para o database do projeto). Por exemplo, estou usando XML para os dados e isto deve se manter assim para os dados estáticos e de baixo volume baixo que fiquem no cliente (Um desenvolvedor só para fazer a tela de “cadastro e edição destes dados”). Como o projeto tem vários “flancos” a serem projetados e estou focado no código da engine, um outro desenvolvedor que possa cuidar dessa parte seria de grande ajuda. Futuramente, certamente haverá a necessidade para um banco de dados em um formato “X” (MySql, DBD ou outro…).
    .
  3. Desenvolvedor (Java): Ajudaria bastante para dividir as tarefas comigo, acelerando a parte da engine mesmo.
    .
  4. Music Composer: Alguém para compor músicas e sons, seria de grande ajuda. [Nota: o Eric Fraga “Cosmonal” já estará contribuindo conosco com game music e efeitos sonoros!]
    .
  5. Map Designer: Seria ótimo ter alguém para desenhar os mapas.

Para quem tiver curiosidade, dá uma olhadinha no vídeo que apresenta a engine funcionando, com o jogo “As Crônicas Do Aventureiro”.

O Projeto Parallax já incentivou outros a pensarem 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 2 anos e “uns quebrados” de muito estudo e pretendo levar a frente, de verdade.

Peço que divulguem este artigo o máximo que puderem para seus amigos nas redes sociais e onde mais acharem relevante. Estarei contando o progresso da engine aqui no Cosmic Effect para vocês ( ^^ ) um abraço a todos e obrigado!

* * *

20 Respostas

  1. Você realmente tem tudp para expandir, parabéns!
    Conhece muito sobre game.

    Curtir

  2. Obrigao, espero que outras pessoas quem sabe até empresas reconhecem isso também ( rsrsr… ). Pois não é fácil não, é um trabalho sério e prazeroso, o bonito do projeto que se eu quiser quiser apoiar outra outra plataforma a fazer o mesmo, não teria problema pois o que interessa ali é o conceito e estrategias.

    Estou trabalhando para ter um produto final com qualidade e espero que acomunidade apoie e se possivel contribua, para que nos tenhamos uma outra alternativa para ciração de games (dentro do raio de alcance do projeto).

    Pensei em fazer uma vertente dele para Android. ^^

    Curtir

  3. Muito bem….

    …excelente engine, muito parecido com engines de jogos de MSX como Gouvelious, Shalom (Knightmare 3), SD Snatcher, Fray, Xak, dentre outros.

    Relamente um trabalho excelente, muito bem pensado, muito bem projetado, o utor tem muito conhecimento sobre o que se propôs a fazer.

    Parabéns.

    Perguntas…

    O engine tem possibilidades de multiplayer ?

    Posso fazer uma entrevista com vc para o meu blog e ajudar na divulgação do seu trabalho caso queira responder segue meu email (popolony2k [arroba] g m a i l [ponto] com) ?

    []’s
    PopolonY2k

    Curtir

    • Sim, esta nos planos adicionar o modo multiplayer, na verdade é um dos objetivos primarios do projeto. Só não adicionei isso agora, porque quero terminar umas tarefas que o projeto precisa executar antes disto.

      E tenho que analisar também a questão da carga de dados, se o projeto so criar jogo online, ele vai trabalhar de X forma, se ele for misto, gerar ON ou OFF ( isso vai mudar a forma como ele trabalha com os dados, de onde vai pegar, seria tipo um chaveador, falando de forma grotesca).

      Aceitaria fazer a entrevista sim, vou te mandar um email.

      Curtir

    • Mandei um email, caso não apareça o meu email é
      “michel . montenegro @ gmail . com”

      Curtir

  4. […] ultima semana recebi por email a notificação do CosmiccEffect, onde sou inscrito, divulgando um post do desenvolvedor Michel Montenegro, descrevendo sobre o seu projeto de um engine 2D escrito em […]

    Curtir

  5. Projeto fantástico Michel! Vc está de parabéns!

    Vc poderia explicar melhor os motivos de sua escolha pelo JAVA ao invés do uso do XNA? Vc está usando OpenGL para a parte gráfica de sua engine?

    De resto, trabalho brilhante!

    Curtir

  6. Sim uso OpenGL!

    A pergunta certa não é sobre as desvantagens do XNA e sim, qual o alcance dele, XNA é um ótimo motor.

    XNA funciona em:
    – Microsoft .NET
    – Xbox 360
    – Zune
    – Windows Phone 7

    Porém preciso que o jogo funcione em:
    – Windows (Todas as versões que comportem uma JVM)
    – Linux (Todas as versões que comportem uma JVM)
    – Mac OS (Todas as versões que comportem uma JVM)
    – Outros sistemas operacionais que comportem uma JVM (Para PC )
    – Facilita-se uma possível migração para versões mobile (exemplo: Symbian, Android, etc.) e acredite não seria tão chocante, como pode achar, pelo contrario.
    – Facilita-se uma possível migração para Applet (Incorporação web), apesar deste basicamente não ser necessário, pelo modelo Multiplayer que vai ser adotado.

    Porque isso? Um dos objetivos do projeto é que ele possa alcançar desenvolvedores e jogadores em o máximo de sistemas operacionais possíveis (em especial para PCs), uma das razões vai ser o suporte multiplayer e o desejo de que o projeto tenha facilidade de multiplicação social.

    Toda linguagem tem seu limite, no caso Java alcança os locais é público alvo, que o projeto objetiva.

    Curtir

  7. Bacana seu projeto, pena que eu não entendo de lhufas pra te ajudar. De qualquer maneira, te desejo toda sorte do mundo, até porque desenvolver jogos no Brasil é tarefa pra quem tem muita raça e é apaixonado pelo que faz.

    Curtir

    • Se todos que olharem o projeto e gostarem divulgarem em suas listas e grupos, já estão rão ajudando, pois a divulgação pode trazer pessoas para ajudar.
      ps: Eu não preciso de ajuda só com programação, tem muito mais coisas que preciso de ajuda que não envolvem programação hehehe…

      Curtir

  8. Parabéns pelo projeto Michel.O trocadilho com o estado do Pará e o efeito ou método paralaxe,ficaram ótimas também :)
    Espero que você consiga recrutar capital humano para que o Parallax decole de uma vez,parabéns!

    OBS:
    Acho que 75% de tudo que amo nos games vive em ambiente 2D.Ha ha ha!

    Curtir

  9. Parabéns pelo projeto, estou divulgando no @2axys: twitter.com/2axys

    Curtir

  10. Obrigado, no SVN ele já esta na versão 2.0, só nao fiz um video demonstrativo ainda (Estou de ferias este mês de julho). ^^

    Agradeço qualquer divulgação. :)

    Curtir

  11. Ola prazer me chamo Jefferson, Sou estudande de CG (Computação Grafica) tenho um grupo de amigos e atualmente temos projetos utilzando Unity Engine, objetivo é desenvolver para plataforma Movel, temos modelagens e etc. Mas atualmente estou focado no estudo de Programação, estou utilizando os cursos do professor (Neri), estudando a liguagem Java e Desenvolvimendo para Android utilizando a Eclipse IDE. Vendi isso relembrei a anos atras quando utilizava (Rpg Maker 2000, XP, VX). Gostaria de entrar de cabeça utilizando esta engine, nao so na engine como tbm na linguagem.

    Deixo meu msn para contato para conversamos sobre o assunto
    jna234@hotmail.com, ou caso mei aceite.
    Bom como nosso meu amigo disse, 75% de tudo que amo nos games vive em ambiente 2D somos amantes dos grandes classicos, Final Fantasy, Pokémon e Chrono Trigger etc.
    vlw.. Obrigado pela ateção!!

    NeTriX – Amante da Arte e da Informatica !!

    Curtir

  12. Jefferson desculpe a demora em responder, mês de ferias e praticamente não toquei no PC, to voltando parao centro esses dias, pode me adicionar no msn, enquanto isso?

    MSN: michel.montenegro@gmail.com
    E-mail: michel.montenegro@gmail.com
    Skype: michel.montenegro

    O projeto evoluiu muito desde seu começo e vem servindo como modelo ou para estudos em outros projetos de terceiros, principalmente por conter algumas coisas (conceituais e praticas) que não encontramos em projetos atuais disponiveis para estudo.

    Curtir

  13. É isso aí meu amigo! Tem meu apoio, não tenho tido tempo pra lhe ajudar em suas tarefas, o que me frusta um pouco, mas espero em breve poder te ajudar com o que puder!

    Curtir

    • Obrigado Eduardo para quem vem acompanhando o projeto, vai ver que a ultima versão disponível para download esta muito mais encorpada e profissional, lembrando que o projeto funciona até de um pendrive, atualmente. ;)

      Curtir

Deixe um comentário