Em que linguagem de programação foi desenvolvida a Minecraft?
Você obteve muitas respostas (corretas) de que o Minecraft original foi escrito em Java, usando uma biblioteca projetada para ajudar na renderização 3D.
Java tem alguns problemas - é difícil fazer certos tipos de otimizações, o que significa que o jogo sempre teve dificuldade de rodar bem em máquinas mais antigas. Quando a "Pocket Edition" do Minecraft foi escrita, eles realmente recomeçaram e reescreveram o jogo inteiro em C++. Esta edição é muito mais eficiente, e enfatiza menos o hardware, o que torna possível que ele rode em dispositivos de baixa potência. Infelizmente, porque eles tiveram que refazer tudo do zero, geralmente estava por trás da edição regular em features.
A "Edição Windows" do Minecraft foi um esforço concertado para pegar a versão em C++ até a versão Java, que agora geralmente tem tido sucesso. No entanto, ainda é uma base de código separada, e não são totalmente compatíveis entre si (isto é refletido pela situação multiplayer - as edições Java e C++ suportam ambos multiplayer, mas apenas com jogadores que usam a mesma edição). Aqui está um exemplo da diferença nas velocidades de renderização em um computador lento:
Então uma resposta mais completa à pergunta é que o Minecraft foi originalmente escrito em Java, mas agora é um projeto dual Java/C++ devido à melhor performance.
Existe uma grande desvantagem do Minecraft em C++: como C++ é uma linguagem totalmente compilada, é mais difícil fazer mods para ela. Os programas Java são relativamente fáceis de engenharia reversa, por isso os mods podem ser muito sofisticados, mas praticamente falando, o C++ só é moddable nas áreas onde os programadores o desenharam para ser moddable. A Microsoft tem boas intenções, e já permite certos tipos de mods, mas a edição em C++ é significativamente menos flexível. É uma vergonha. Esperamos que, com o tempo, eles adicionem mais flexibilidade para permitir que a edição C++ seja modificada das mesmas maneiras interessantes, mas por enquanto, a biblioteca mais rica de mods e funcionalidades só é encontrada na edição Java.
Artigos semelhantes
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Em que linguagem de programação o Netflix está codificado? Como eu uso essa linguagem?
- Quais são as vantagens de uma linguagem de montagem na programação sobre uma linguagem de máquina?
- A linguagem Assembly é considerada uma linguagem de programação funcional?