Hacker News new | ask | show | jobs
by St_Alfonzo 2054 days ago
Minecraft is a good example where people talk about the programming language. The portability of Java was a benefit for both Server and Client. But it was also critized because of the inefficiency of Java.

I dont know if all this would have been better in Rust or other languages.

4 comments

Microsoft now has a second parallel implementation of Minecraft in C++. They've ported this to numerous platforms, but notably not MacOS or Linux desktops.

(It's also substantially faster, but comparing it to Java edition is sort of unfair because there are a myriad of differences between the two in game mechanics, with many of the differences probably being relevant to performance.)

Java was the language that Notch felt comfortable in.

If he had started to second guess the programming language, Minecraft probably wouldn't exist as we know it.

I don't know for certain, but Java might be one of the reasons for Minecraft being as good as it is as a game. The comparatively minimalistic high level nature of that language leaves few possibilities to get lost in system level optimizations. And iterating in Java is a lot quicker than in C++ or Rust. It is an environment that helps focussing on game logic.
Eventually Microsoft rewrote it in C++ so they could run it effectively on things like iOS and Android. It took them a while to reach feature parity and some level of compatibility between them.

The C++ one didn't have all the same features as the Java one for a while, but it ran fine on weaker hardware than the Java version needed.

IIUC the C++ Bedrock Edition evolved from the Pocket Edition, which was announced in 2011, ~3 years before the MS acquisition in 2014 https://en.wikipedia.org/wiki/Minecraft#Bedrock_Edition.