Hacker News new | past | comments | ask | show | jobs | submit login

While I agree that this should be downvoted, just be aware that there is some truth to this: Minecraft makes my current generation (well, technically last, but the 13" model barely changed) MacBook Pro run hot enough that I cannot leave it on my lap. The only other thing that makes it do this is encoding video; I'm not really sure why, exactly. There is a decent amount of background processing going on, but it's limited to a 300x300x128 (I think? in Z? 300x300 XY for sure) block area, so...

You wouldn't be able to guess this from the graphics style.

EDIT: Upvotes for both responses. My love of command line is showing; I know next to nothing about graphics and what it takes to make them perform well.




It's pretty difficult to do language performance comparisons based on a single game. Dwarf fortress, another great indie game involving mining and crafting, is written in C++, has no 3D (it's simply a 2D grid), and uses up a lot of CPU.

That doesn't mean that C++ is slow. It means we have no idea how much these custom indie game engines have been performance tuned, and how much logic is being performed in the background (DF is a hugely deep game). They are both written by a single programmer, not a team of game engine developers.

Edit: I don't doubt that performance tuned C++ is faster than Java. But for a small development team, who aren't building a graphically taxing game, performance optimisation is well down the list of priorities. They are usually better off spending the time expanding their game.


Dwarf Fortress simulates a 3D environment just like Minecraft, though it has much more advanced fluid flows, amongst other things. Most of the CPU use appears to be down to pathfinding, which ends up recalculating a lot when the environment changes.


On the contrary — it's enterely because of the graphics style and atomically destructible environment. Voxels are hard.


Caveat - I've not played minecraft - but I suspect that the graphics are not the problem, but the simulation (the atomically destructible environment and also AI).

Modern 3d games involve using both the CPU and GPU, and most intensive graphic computation is done on the GPU.

Graphical elements like having complex models, shader effects, filter passes etc. all put strain on the GPU, but don't touch the CPU too much.

Game logic elements like destructible terrain, AI, pathfinding, physics, and generally extensive game rules all put strain on the CPU.

Different games have a different balance between the two (but eventual framerate and performance is determined by the slowest side), a highly detailed FPS (say, Halo) is likely to be GPU-bound, whilst a complex strategy or simulation (eg. Minecraft) is more likely to be CPU-bound.


From http://www.reddit.com/r/Minecraft/comments/djlsz/notchs_answ...

4. Shock-value asks- How do you like Java as a language? In what ways is it a positive and in what ways is it a negative compared to a lower level language like C/C++, especially as related to the development of Minecraft? Alphakamp asked a wonderful followup question- Do you think you will stay with java or will you ever restructure the code base with a different language?

I love java! I'm a bit worried now that Oracle owns it, and they haven't exactly shown any great interest in the client side of it. Sun used to speak to me all the time, even way back when me and Rolf made Wurm Online, but Oracle hasn't said a word to any game developer as far as I've seen. The biggest technical advantages with java is that the development speed is extremely fast with almost no compilation times and an excellent code hot-swapping in debug mode. The disadvantages is a slightly lower speed than C/C++, and less than perfect support for OpenGL. The LWJGL guys have done a great job with the binding, but java still suffers from rather large per-call overhead in JNI. Or in English; OpenGL calls are slow in java.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: