[EN]*
*Text translated by Google Translator, we aren't responsible for translation errors.
Some time ago I announced that we would stop using Java 8 (1.8) and migrate to newer versions (Java 11 had been chosen at the time), the intention was to make my life easier and add new functions to the game, but things didn't they went as well as I would like. Anyway, if you want to know more details keep reading (full article only in portuguese), if you don't want to, just know that we will still be using Java 8, at least for now.
[PT]
Algum tempo atrás anunciei que estaríamos deixando de usar o Java 8 (1.8) e migraríamos para umas versão mais recente (na ocasião o Java 11 havia sido escolhido), a intenção era facilitar minha vida e adicionar novas funções ao jogo, mas as coisas não correram tão bem quanto eu gostaria. Enfim, se quiser saber mais detalhes continue lendo, caso não queira, apenas saiba que ainda estaremos usando Java 8, ao menos por enquanto.
O fato é, o Car The Game foi pensado e desenvolvido para funcionar com Windows e Ubuntu (suas derivações também, considere-as toda vez que eu falar sobre o Ubuntu), o GameJolt considera o mundo Linux de forma mais "genérica" e oferece o Car The Game pra todo e qualquer Linux (e teoricamente sua distribuição favorita vai rodar desde que você tenha o Java 8 ou superior instalado), mas eu só garanto que ele funciona em Ubuntu e Windows (testes em ArchLinux estão sendo feitos), nesse momento você já está se perguntando, "do que esse cara tá falando?", mas calma a gente chega lá, eu disse tudo isso pra poder dar uma dimensão sobre os "problemas" que me fizeram pensar no Java 11 como alternativa.
Como todos que já jogaram o Car The Game devem ter visto, o som do Jogo está sempre no máximo, e não é o que eu quero a muito tempo, eu venho tentando implementar um controle de volumes há algum tempo, mas a biblioteca de som principal que eu uso (jlayer), não oferece essa opção por padrão, sendo assim depois de ler muito sobre o assunto resolvi adicionar tais capacidades por conta própria, criando assim uma versão da jlayer modificada por mim, mas os artigos que li estavam muito desatualizados, o código que implementei não tinha resultado algum no Java 8, foi quando pensei "eu deveria tentar o JavaFX!", pra quem não sabe JavaFX é como se fosse uma extensão do Java que oferece muitos recursos de áudio e interface. A ideia de migrar todo o som do jogo para o JavaFX parecia boa, mas não foi tão simples. O JavaFX não estava disponível para Java 8 nos repositórios do Ubuntu, apenas para o Java 11, já no Windows o JavaFX só vinha instalado por padrão no Java 8. Instalar e configurar manualmente o JavaFX é muito chato pra quem só quer testar um jogo em fase de desenvolvimento, no caso os jogadores (eu mesmo tive dificuldade).
A ideia era a seguinte: migrar para o Java11 (parte fácil é só mudar as propriedades do projeto), no Ubuntu o JavaFX11 estava no repositório, só colocar como dependência no pacote e o Ubuntu faz todo trabalho sozinho, no Windows o instalador iria se virar pra configurar o JavaFX11 caso o usuário não tivesse (pro GameJolt eu ainda não tinha uma solução). O plano parecia perfeito, até eu começar a fazer a mudança pra JavaFX. No Windows o processo de instalação era trabalhoso, e teria que ser implementado no instalador do jogo. No Ubuntu as coisas iam de mal a pior, mesmo o JavaFX11 sendo disponibilizado no repositório oficial do Ubuntu, uma das biblioteca de som que o JavaFX11 usava foi atualizada e ao tentar reproduzir algum som ele simplesmente exibia um erro, pois a biblioteca em questão já não era a mesma que o JavaFX11 costumava usar, tentei de diversas maneira contornar o problema, mas não obtive bons resultados.
Foi assim que desgostoso permaneci no Java8, enquanto busco formas de fazer funcionar (no dia de hoje, pode ser que a galera do Ubuntu tenha percebido o problema e corrigido, apesar de achar improvável já que o problema é relatado há algum tempo nos fóruns de desenvolvimento e nada foi feito até então). Enquanto não encontro uma alternativa viável para o som do jogo, vou manter a jlayer enquanto foco em outras coisas no desenvolvimento do jogo. Caso tenha algum conhecimento em bibliotecas de som Java eu estou aceitando sua ajuda.
0 comments