JSimple Game Engine - Engine para Jogos 2D

A JSGE é uma engine simples para desenvolvimento de jogos e simulações em Java. Ela atua como uma camada de abstração ao Java2D, tornando as operações de desenho mais transparentes e gerenciando diversas funcionalidades inerentes ao desenvolvimento de jogos. A motivação para seu desenvolvimento inicial foi prover aos meus alunos, estudantes das disciplinas introdutórias de programação orientada a objetos, uma forma mais simples de desenhar figuras geométricas em Java. Essa abstração inicial cresceu ao ponto de eu decidir implementar uma engine que tem funcionamento e filosofia iguais à excelente engine de jogos Raylib. A documentação provida no código fonte e disponibilizada via Javadoc está em português, pois meu foco são meus alunos, mas nada impede que futuramente seja traduzida para inglês.

O link do repositório é GitHub - davidbuzatto/JSGE: JSGE is a simple engine for developing games and simulations in Java. Implemented using the Raylib engine (https://www.raylib.com) as a base.

A forma mais fácil de usar é baixar um dos templates disponíveis em GitHub - davidbuzatto/Templates-JSGE: Basic project templates for JSimple Game Engine, made for Apache NetBeans and VS Code. e começar o desenvolvimento. Muitas das funcionalidades implementadas são exemplificadas nos exemplos apresentados no showcase, todos contidos no pacote br.com.davidbuzatto.jsge.examples. Aliás, todo usuário é encorajado em explorar o código fonte da engine para entender como as coisas funcionam e quais as funcionalidades disponíveis. Nas realeases também há um arquivo .zip com a documentação da engine.

Note que a engine depende de algumas bibliotecas nativas para o gerencimamento de controles/gamepads/joysticks, essas parte da JInput. No template do NetBeans esses arquivos serão copiados para o diretório de distribuição automaticamente quando se controi o projeto. No templade do VS Code é necessário fazer tal tarefa manualmente.

Qualquer IDE ou sistema de build para Java tem a capacidade de realizar essa tarefa de cópia, ficando a cargo do usuário configurá-la. Ao executar seu programa, tenha em mente que as bibliotecas nativas tem que estar visíveis para a JVM, seja deixando esses arquivos no mesmo diretório de execução do jogo, seja informando à JVM onde buscar tais arquivos (opção -Djava.library.path) ou colocando-os visíveis sob a variável PATH do sistema operacional.

Ainda, o showcase pode ser visto executando-se o arquivo JSGE-vx.x.x-bin.jar contido nos pacotes binários ou executando o projeto da engine, que também é mantido usando a IDE NetBeans.

Um vídeo de apresentação da engine pode ser visto aqui: https://youtu.be/-n80MKVra6w

Espero que gostem!

5 curtidas

Uma vez orientei um menino que queria fazer um Mario em Java. Hoje posso chama-lo de MESTRE. Vou divulgar e ver se uso nas aulas aqui também.

2 curtidas

Oi Vini! Poxa, fazem quase 20 anos hein!? Gratidão eterna! Vc que é meu mestre pô :wink:

O JMario tá aqui ó: GitHub - davidbuzatto/JMario: JMario is a side-scroll game, built in Java, based on Nintendo's Super Mario World.

E agora tenho o RayMario também: GitHub - davidbuzatto/RayMario: RayMario is a side-scroll game, built in C++ using Raylib, based on Nintendo's Super Mario World. (esse beeeem mais completo)

Fico feliz que tenha visto. Ainda estou mexendo bastante nela, mas agora para caçar as necessidades e os bugs eu tenho que implementar projetos que a usam, então tá indo um pouco mais devagar. Faço lives todo dia. Agora estou escrevendo um simulador de espirógrafos. Está ficando bem legal. Tenho que tomar cuidado também para não inflar demais a API, que já está bem grande kkk. Hoje mesmo devo faze uma rodada de melhorias, adicionar mais algumas coisinhas.

Se vc puder usar nas suas aulas para testar, seu feedback seria muito valioso para mim! Quem sabe também contribuir com o projeto :smiley:

Abraço!

2 curtidas

Pois é, a gente sim pode dizer que quando chegou aqui isso tudo era mato. Tamo ficando véio.
kkkkk

Eu me afastei bastante dos jogos (mesmo tendo trabalhado ano passado na Epic Games) - mas fiz bastante trabalho com computação gráfica para fins sérios. Hoje to mais nas aulas e em desenvolvimento backend mesmo.

2 curtidas

Kkkk vdd. Eu brinco com os meus alunos que eu sou da época que a internet era tudo mato e uma terra sem lei. Participamos da época de ouro do GUJ inclusive.

Legal! Eu me acomodei muito nos últimos anos. No final de 2023 eu dei uma super animada e voltei a me atualizar. Estava na minha zona de conforto por causa da escola. Esse ano fiquei muito ativo mesmo no desenvolvimento. Não tenho a vivência em uma empresa, mas ta bom… Eu tbm não havia mais mexido com jogos, mas nessa época da minha “animada” eu descobri a Raylib e comecei a fuçar e, de tabela, a contaminar meus alunos com esse entusiasmo kkk.

Agora tem simulação e joguinhos em quase todas as aulas. De algoritmos à linguagens formais e compiladores kkk. Tem uns que adoram, mas vira um terror para quem não gosta de programar. Como gostar de programar é requisito básico, pelo menos na minha opinião, para alunos de computação, eu forço a barra mesmo.

Bom falar com vc!

1 curtida