Minecraft shows how bedroom programmers can create global hits (2013)
technologyreview.com
technologyreview.com
I stumbled a bit while reading that. There is a comment to be made about notch's use of java, both good and bad, but I don't think speed and lightness when I think java, especially in the realm of 3D games.
I do think it was a good choice for cross platform play and modding though.
I don't think he chose Java so much as that was simply what he knew at the time.
Is C a more powerful tool? Absolutely not. It's powerful but not that expressive.
Both languages are relatively low level and uses application memory management. I think it's only the latter that really matters when writing 3d games and other low-latency programs to be honest.
But I think the slow part of minecraft is the terrain generation, and I think it's mainly because the world is rather large and the algorithm is complex, not because java is slow or that the gc is a bad idea.
I don't think that the Windows 10 version run noticably faster, but I'm not completely sure that it's C++ and not C# and gc:d.
Unfortunately the W10 version is very cut down, lacking lots of things. It's possible the main difference is OpenGL v DirectX on the Intel integrated cards. But the graphics are basic enough that there should be some way to render them quickly regardless.
I am not sure that the graphics are "basic" in the technological sense - Yes, the graphics have a retro-pixel look and no fancy shader-tricks, but there are a lot of large views and a lot of surfaces, and no cheating with a world box.
How is garbage collection for arrays of value objects solved? Is the whole array gc:d, or what? If an individual element is referenced somewhere the array stays in memory?
I think the point here is that a lightweight game engine was used (written in LWJGL which is a wrapper for native graphics APIs), rather than something full blown like Unity/Cry/Unreal.
The key to minecraft is that it stylistically embraced a really blocky rendering style with low resolution textures. That made a game that could be very open vistas, be malleable and run on any modern device.
I think he was a rather creative developer that managed to create the game that he wanted himself as a kid.
Maybe we can just sort this article under "slighly uninformed opinons" and carry on with our lives...