Executando verificação de segurança...
12

Pitch: JSimple Game Engine - Engine para Jogos 2D

Olá, tudo bem?

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 é https://github.com/davidbuzatto/JSGE

A forma mais fácil de usar é baixar um dos templates disponíveis em https://github.com/davidbuzatto/Templates-JSGE 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. Nos templades do VS Code, Eclipse e IntelliJ é necessário fazer tal tarefa manualmente ou automatizá-la de acordo com a ferramenta, visto que 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!

Carregando publicação patrocinada...
1
1
1
1
1

davidbuzatto, como um dos gurus da computação, você conhece uma ferramenta que poderia criar uma espécie de fluxograma que represente todas as relações de funções (criadas pelo usuário, claro) da lib JSGE? Não somente dessa lib, mas também poderia ser aplicado a qualquer outro código em linguagem compatível que esteja em um repositório.

Alguns cursos técnicos nos ensinavam a criar um fluxograma da ideia e somente depois desenvolver o código. Se não for minha impressão cega demais, não tenho mais visto esta representação, mas apenas os códigos em repositórios. Não é uma crítica ao seu projeto, mas noto isso em todos os repositórios que visito para copiar ou aprender uma nova ideia. A falta dessa visão gráfica e macro do projeto facilita o entendimento e até manutenção de uma aplicação. Por eu não encontrar essa informação gráfica, fico pensando se só eu sinto sua importância.

2

Guro? Eu? Não não, não quero esse título não :D

Sobre o diagrama da relação entre as funções/componentes/métodos/classes etc. Eu não acho viável, pois só serve pra ficar bonito e dar uma sensação de grandiosidade. O código dos exemplos que deve ser lido e entendido e, em paralelo a isso, começar a fazer o seu.

Fluxogramas e, na minha opinião, muitos tipos de modelos gráficos, como a UML, são válidos para a visualização da representação daquele minimundo de uma perspectiva mais "macro", ou seja, mais abstrata. Quanto mais concreta a representação, mais complicada ela fica e só gera retrabalho para ficar atualizando aquele modelo de acordo com a evolução do software ou vice-versa.

Fluxogramas no ensino acho que cairam em desuso há muito tempo. Em 2001, quando fiz técnico em informática, já não se usava mais. Eu uso, para ensinar programação, uma representação de uma máquina de estados (parecido com o fluxograma) na hora de falar de estruturas condicionais e de repetição, mas não passa disso.

A melhor forma de aprender a programar é programando e o código que se autodocumenta é muito mais rico do que uma série de diagramas.

1

Ótimo davidbuzatto! Valeu por sua resposta clara e sem floreios para dizer a verdade. Realmente sua percepção é semelhante à que tenho tido sobre os fluxogramas, ou seja, faz tempo que não aparecem mais nas literaturas mais modernas.

Já estudei os diagramas UML (Unified Modeling Language) e confesso que nunca pensei utilizá-los para substituir o fluxograma que representa uma visão macro de um programa (apesar de eu já ter explorado a UML para modelagem de banco de dados).

Quanto ao guru, é no bom sentido 8-). A definição que encontro é semelhante à que imagino, ou seja, a person that is generally recognized as a leader or teacher. b. : a person with knowledge and expertise

Edit: Minha percepção como o diagrama ajuda a entender uma aplicação a partir de uma visão macro.

Aplicação Linux DD

image

Fonte

2

Eu mencionei a UML como um todo. É super útil, até um certo nível de detalhe. Começou a detalhar demais, pra mim perde a razão de ser usada. A UML tem vários tipos de diagramas. Existe o diagrama de estados que é um fluxograma.