Interessante post, mas deixa a deseja em algumas coisas, na minha opinião, as quais irei pontuar aqui:
- 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.
- 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.
- 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.
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 :)
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.
Links
The downfall of Minecraft's performance The Problem With Minecraft: Java Edition
*Minecraft - the difference LazyDFU makes! *Optifine dev on performance problems in Minecraft 1.8 -> Minecraft Forum