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

Interessante post, mas deixa a deseja em algumas coisas, na minha opinião, as quais irei pontuar aqui:

  1. Como o @pedrohaveloso já falou em seu comentário, a própria Mojang refez o Minecraft em C++. Podemos argumentar quanto ao quesito bugs, já que com certeza essa versão os tem bem mais, mas definitivamente também possui mais desempenho, o que ainda é uma reclamação constante na edição original. Na sua reposta dada ao comentário, você disse que a versão Java continua sendo a queridinha de comunidade, mas isso é uma visão de dentro da sua bolha. Na realidade, a versão Bedrock é a mais jogada justamente pelo seu porte de C++ conseguir atingir várias plataformas além de PC. Por fim, a razão de parte da comunidade do PC ainda preferir a versão Java, é por ser um público mais antigo e que entende as diferenças entre os jogos, como por exemplo não precisar pagar por um mapa, skin ou mod na loja.
  2. Sua afirmação em relação à linguagem Squirrel me deixou bem intrigado, então fui dar uma olhada do que se tratava mais afundo. De fato a linguagem é usada no jogo, porém com dois detalhes importantes: (i) a engine do jogo é uma versão modificada da Source, que por sua vez é escrita em C++, o que certamente justifica melhor como um jogo daquele porte seja performático; (ii) a linguagem, apesar de ser interpretada, tem a proposta de "ser uma linguagem de script leve que se encaixe nos requerimentos de tamanho, uso de memória e requisitos de reposta em tempo real de aplicações como jogos" (Squirrel (programming language)), nesse caso ficando claro que não é uma linguagem de script qualquer, e sim uma com foco justamente para o que está sendo trata.
  3. Por favor, colocar um link de onde foi retirada tal informação quando estiver escrevendo alguma coisa.

Quanto ao resto do exemplos dados, não tenho proficiência para falar e também não tenho interesse de pesquisar, por isso não possuem comentários.

Claro, entendo seu ponto de apenas escolher uma linguagem, independente de qual, e fazer o trabalho, o que definitivamente é válido para quem programa por hobby ou é iniciante, e busco aqui somente elencar alguns pontos a serem analisados.

Por último, o que eu tenho a dizer ao que imagino que seja o público alvo do post (programador por hobby ou iniciante): se já possuem alguma visão de que carreira quer seguir na área de tecnologia, busque entender quais ferramentas e linguagens são utilizadas e as aprenda. Se você quer ir para área de embarcados, por exemplo, não ache que você conseguirá ficar muito tempo fazendo coisas em JavaScript e Python, e evitando programar tendo que gerenciar memória em C/C++/Assembly, porque não é sempre que você vai ter um hardware suficientemente poderoso para rodar um sistema operacional e interpretar seu código. Se quiser ir para a área de áudio ou gráfica, provavelmente terá que usar C ou C++. Se quiser ir para web front-end, tem que saber JS/TS e ponto. O mundo de programação é enorme e com certeza não consigo citar todas as possibilidades aqui, por isso: pesquisem, tenham foco e estudem constantemente.

Carregando publicação patrocinada...
1

Obrigado pela resposta!

Eu jogo Minecraft poucas vezes e sou um jogador mais antigo, por isso a preferência da versão Java, então concordo totalmente com o que você disse de ser minha visão na minha bolha.

Na parte dos exemplos com o Apex Legends eu dei uma resumida para o post não ficar tão grande. Eu aprendi a programar nos jogos da Source, e essa engine é uma gambiarra total. Eu não sei muita coisa dessa versão modificada usada no Apex e usei essa informação só para sustentar o meu ponto: Não tem necessidade nenhuma programar o jogo na engine em C++ se tem a possibilidade de usar o Squirrel que é uma forma mais fácil e mais rápida de se usar.

Tem alguns exemplos do uso de Squirrel no R5Reloaded (mod de Apex) no Github se você quiser dar uma olhada.

Agradeço novamente pela resposta e vou dar uma detalhada nas informações em meus futuros posts, esse foi meu primeiro :)

1

A performance do Minecraft Java poderia ser melhor...

[...] já que com certeza essa versão os tem bem mais, mas definitivamente também possui mais desempenho, o que ainda é uma reclamação constante na edição original.

Sem contar que, sejamos sinceros, o codigo do Minecraft Java é... digamos que poderia ser bem melhor.

A versão 1.20.2 em meu notebook roda a 10-15fps na média. Com optifine (que funcionava muito bem antigamente, mas hoje em dia o código está muito antigo) roda a 25-30fps na média. Entretanto, instalando alguns outros mods feitos pela comunidade, eu consigo rodar o Minecraft Java 1.20.2 a incríveis 80fps estáveis (que é uma diferença pra quem jogava a 15fps).

Muitos ainda usam o optifine por causa da sua facilidade. Você só instala e pronto, não precisa instalar outros 100. Mas ele definitivamente não é o melhor atualmente, no quesito performance.

O problema, muita das vezes, não é a linguagem, é o programador. O Minecraft Java é sim extremamente otimizado para um jogo de seu porte, mas poderia ser MUITO mais, e a comunidade prova isso. Ainda me questiono como um estúdio como a Mojang (e ainda da Microsoft), ser tão desleixado com seu público em relação a isso.

The downfall of Minecraft's performance
The Problem With Minecraft: Java Edition

Minecraft Vanilla vs Optifine

*Minecraft - the difference LazyDFU makes!
*Optifine dev on performance problems in Minecraft 1.8 -> Minecraft Forum

1

Certamente o Optifine foi deixado para trás. Sinceramente, não lembro a última vez que vi algum modpack que rodava com ele, mas também já faz mais de 1 ano que parei de olhar coisas de Minecraft com a frequência que fazia antigamente. Ainda assim, acho extremamente bizarro como uma empresa desse porte não tenha feito melhorias nesse quesito.

Eu entendo o fato de não quererem investir tanto na versão Java, já que a Bedrock claramente é o carro chefe agora, ao manter as atualizações, além de anuais, pífias. O que eu não entendo é como pode ser tão problemático, por exemplo, comprar os direitos de algum mod de performance e só colocar dentro do jogo vanilla. Talvez seja porque se melhorarem a versão Java, o público do PC perceba que essa versão é objetivamente melhor (pelo menos na minha opinião), e passem a usar ela, os fazendo perder dinheiro por vender menos na loja, mesmo que ainda os jogadores de console e portátil não possam fazer muito a respeito.

Edit: também gostaria de deixar claro que nunca joguei a versão Bedrock. Sou um ávido usuário de Linux e não consigo pensar em algum motivo grande o suficiente para me fazer trocar rodar a Java nativamente por me dar trabalho de configurar alguma maneira de rodar a Bedrock.

1

Edit: também gostaria de deixar claro que nunca joguei a versão Bedrock. Sou um ávido usuário de Linux e não consigo pensar em algum motivo grande o suficiente para me fazer trocar [...]

Eu também uso Linux e consegui uma forma de rodar o Minecraft Bedrock nele. Estou usando um launcher que consegue rodar instalando o .apk (x86 ou x86_64) ou direto da Play Store. Roda muito bem, e jogo mais nele do que na Java, por causa dos meus amigos.

https://github.com/minecraft-linux