Entities also cannot be rendered properly for similar reasons.
The team is currently working on new features for Focal that will eliminate or minimize all of these issues in future updates. As such it has a fair bit of unfinished features, limitations and bugs. If I split up the datastructure like the following it would be much faster, as the CPU won't load the as into its cache.As mentioned on the RT info page, RT is currently Early Alpha. This will perform very slowly because the xs are not next to each other, they have a huge block of as in the way. Say I want to find the sum of all the xs in the array. If less can't be used it should be laid out so that relevant memory should be closer together. Accessing memory is very very slow, the less that is used the better. Java doesn't support dropping down into an unsafe mode to perform potentially faster operations Java doesn't support user defined stack data types (have to go through the heap) I'd recommend reading this, its about javascript, but the conclusions about the virtual machine and the language being designed to be safe (not necessarily fast) apply to java as well.Īlso I can think of a few points that may also be an issue: However, surely SWIV was a superior game to Silkworm? Although like others have stated, I do think it's programmers could have done a better job - I've played many 3D games based on SDL/DirectX that run perfectly on a 10 year old computer, and whose graphics are on par or better than Minecraft's. I presume the Minecraft developers chose Java mainly because of it portability and ease of use. portability across platforms) and cons (it's quite a high level language, although over the years, it has become more efficient). Java, like any programming language has pros (ie. Minecraft on the other hand is Java based. My favorite Amiga game is Silkworm - it runs amazingly smoothly considering it's size (fits on an 800KB disk) and the system resources available: Assembly language just isn't an option today due to how complex modern games have become (which I find stunning also). I should mention that back then, there weren't teams of people working on a game - it would have only been a few individuals. Also note that was nothing like DirectX APIs - they had to write everything from scratch. Most developers were forced to write in assembly and came up with some very smart routines to make a game as efficient as possible. The Amiga 500 only had a Motorola 68000 running at 7.16MHz (NTSC), or 7.09MHz (PAL), and 512KB (9 MB maximum) of RAM! Game developers couldn't take advantage of computing power like they can today. However, as poorly as it performs, it is such a fun game that I am willing to put up with it.Īmiga programmers (amazingly) did things in assembly language.
It pegs one core of my processor most of the time when I play it, and I occasionally get lag when playing on my server. Personally, I would love it if Minecraft performed better. Ultimately, however, Notch is probably the only person who can answer this question with a high degree of certainty.
While the development team has probably had enough time to refactor the original code by now, it is possible that some of the original design choices have constrained its performance to some extent. It is also possible that the hobbyist beginnings of Minecraft lead to sloppy code in core classes and an inefficient design that didn't foresee the extensive expansion the game has undergone. Therefore he originally chose Java as the programming language because it was easy. From what I understand, Notch originally wrote this game for his own amusement, and several of his friends said they liked it so much that he decided to sell it. I think that statm1 is right to some extent the extensive chunk loading and processing done by the game likely makes it more resource intensive. While it is true that Java is not favored for most games because it is notoriously slow for large applications (particularly due to its garbage collection), it is unlikely that it is the sole cause.
No one outside of Mojang knows exactly why Minecraft's system requirements are so high, but the most oft-fingered reason is Java.