Blocky 8-bit style? Those graphics would have been cutting edge in 1993, almost a decade after the heyday of 8-bit systems.
Blocky 8-bit style? Those graphics would have been cutting edge in 1993, almost a decade after the heyday of 8-bit systems.
There's no reason that graphics of Minecraft's quality shouldn't be blazingly fast on current hardware.
Also, I suspect the Java and GPU points are moot, as I cannot image it doesn't use OpenGL. Now the Jave OpenGL implementation or intermediary or whatever may not be as fast as 'native' calls but I think it's not going to make a magnitude difference.
TL/DR: IMO it's not about the graphics quality but about the sheer amount of it.
What? It's been awhile but ~ 5 yrs ago I remember implementing a quadtree LOD algorithm that pretty much allowed me to make the world as big as I wanted considering only the area nearby would be rendered. If its out of view, its a flat world.
Well yeah if you make the area around you small enough, then sure.
Taking WoW as an example again (because it's what I'm familiar with), decreasing the view distance is the single most influential parameter to improve performance. When you fly across a landscape and mountains pop up out of nowhere as you approach them, in triangles, it very much takes away from the realism.
Of course this is not just about rendering triangles any more, LOD is constrained by the CPU and memory, but more raw poly pushing power would lessen the burden on the CPU...
(experience drawn on a NVidia 9800 video card, not top of the line but a rather average casual gamer card I'd say)
I just fired it up with the ATI Catalyst panel open, and it said a maximum of 53% GPU utilization. Which isn't bad, since Minecraft wouldn't be using any of the shader units.
Well, presumably, since I know as little as you do about how Minecraft is designed.
It could benefit from significant optimizations in terms of algorithm and these would probably make it perform an order of magnitude even faster than porting the same code to C++ would ever do.
The OpenGL layer is not being utilized effectively. I think the game is currently CPU/VM bound and simply can't keep up with the GPU.
More aggressive use of the GPU, like through OpenGL or OpenCL calls, would improve performance considerably. I'm not sure how viable the OpenCL angle is on Java, though.