Minecraft Java Edition has been around for nearly 13 years now and has grown from a small inding game back in the day to the number one best cealing game in all of history so you would think that a large game raking in all this money from people across the globe would use it in a way to make their game better than it already is right well not really a Mojang’s case it seems it seems today that with every passing update Mojang puts out we see less and less actual content and an even bigger increase in performance issues it’s no secret that our Hardware today is better than the hardware of 10 years ago but the ratio of content the performance lag is too large to ignore Minecraft since the days of old has always had issues with its performance whether it’s FPS drops server issues or a multitude of other problems that have happened over the years and I’m making this video today to analyze how this game works on the lowest level in order to fully understand the extent of these issues very popular mods for this game can increase Minecraft’s performance by large amounts why can’t Mojang incorporate these mods into their current system to make the game more accessible to people who don’t have decent computers first we’ll start with the client side of things more specifically how Minecraft utilizes your Hardware when you play it Minecraft as we all know was created by notch in 2011 as a small side project of his as we all know through the years more and more updates were pushed out and more and more people picked up the game but back in that time when the game was so simple and without some of the features we see today there was not any need to really optimize the game basically all the optimization that was done was just to hide the faces of blocks that could not be seen for example if you have four blocks in a square since we can’t see the inside faces of the blocks since they all touch each other they were not submitted to rendering this is one of the most used optimization techniques in any game he will ever play but as the years progressed with more features being added quickly there was a need to begin making more optimization changes to the game now that Notch Had a larger team around him one way to optimize the game would be to allow the game engine to utilize more cores and threads on your CPU like many modern games but first let’s take a quick detour and talk about CPUs for those who don’t know a whole lot about them a CPU or a processing unit is the main chip inside your computer that makes it run think of it as the brain that connects all of the other parts of your machine together to make it run correctly it takes an input from anything you could think of doing with your computer and makes an output to do what you want it to do obviously this is more complicated than this brief explanation and a professor who teaches a modern operating systems class I’m sure could tell you more for hours typically a modern CPU will have multiple cores to it and then further inside of those threads can be generated to allow to run even more programs inside of the course this comes at the expense of operating system scheduling but I’ll leave that to the operating systems professors to teach you or Google so back on Minecraft all the main game functions would often work off of One Core everything from chunk generation lighting mobs game ticks and anything you could think of so obviously the solution would be to separate these out onto their own respective threads to run on right well no multi-threading some of these core game functions often bring up more issues too complicated to explain in detail essentially how the game runs now is the main game Loop typically will stay on One Core while chunk loing lighting and whatever else Mojang thinks is handled by the other cores the game does not utilize extra threads inside of the cor which makes the game single-threaded in fact if Minecraft were to use multiple threads the overhead of communication to the game from the processes would more than likely make performance worse now I’m going to show you this in action in game on my right is my task manager showing all my 12 logical processors but we will be focusing on mostly the first couple of boxes here that will represent our core usage firstly when we play on a good render distance with chunks loading in we quickly find out that Minecraft does a good job on utilizing the entire CPU to do its work but as we begin to stand still when chunks AR being loaded and unloaded we see that the core game Loop running on its own core begins to stick out more specifically you can find it on these boxes here it is safe to assume that these boxes are po of the same core inside of my machine it is also worth noting that when I loaded in the chunks all cores were being used including the core game Loop this causes the lag spikes for lower end machines this is even more emphasized by playing on a lower render distance When the boxes stay at a similar usage rate while the others that load chunks do not do as much since there is not as much to load granted this is not the best example since I’m also recording which is taking up CPU usage as well but it gets the point across in a perfect scenario we should see that all these cores have similar utilization if you lack updated Hardware as this game progresses in life you will find that the game performs worse but for for a game that as simple as blocks it should be able to run fine on most machines for example Minecraft Bedrock Edition sees much better performance than Java does this is due to a couple of factors Bedrock uses C++ which is a somewhat faster language than Java and C++ is better at handling threads in the Java is Minecraft Bedrock Edition is also multi-threaded but as I said that comes with its costs Bedrock Edition is the buggiest version of Minecraft ever for example there are some redstone things that are completely random due to this factor of multi-threading the the communication between the threads on what is happening in the game is still a factor on how the game behaves so Bedrock has the better performance but lacks on the reliability of game mechanics moving on to servers one of the largest factors preventing servers from updating to newer versions of the game is for this very performance reason Minecraft is not built to utilize the entirety of the resources available to it on a server side Minecraft still utilizes One Core and one thread so imagine you have a couple hundred players on one server all loading their own areas in the world and sending all their changes to the server to up to other players that is a lot of operations to do for one core on the CPU no matter how fast it is this is why you see many large servers coming up with their own solutions to this problem miname servers typically are not just one server instead they are a cluster of servers all connected to one another virtually each mini game has run on a server that was created for it and so on however for the large single World servers such as 2b2 T you will often find player limits and cues that will limit the amount of stress the server can handle along with that you will find that these servers are often not updated to the latest version as I said since those newer versions perform much worse on a server than previous versions so well what could be done to mitigate some of these problems mods mods have been able to make these changes to the game for many years now which has allowed many more people to access the game and make it a more enjoyable experience Mojang several years ago expressed interest in hiring the developer of optify to make some changes to the game to implement some of these performance enhancing features but the deal fell through I remember reading something from the OptiFine developer in question that in order for Minecraft to be better performant it would take a nearly entire rewrite of the game’s render engine to implement his changes so unfortunately you won’t be seeing any large optimization changes in the near future for you vanilla fans this then leads me to my last point which is more of a conspiracy theory more than anything but I think that once this game becomes too bloated with his new features that moing ads I believe that Microsoft may pull the plug on Java development one day forcing people that want new updates to play them on their microtransaction riddled Bedrock edition of the game I mean think about it they make more they make most of their money off of creators making mods for Bedrock through the purchase of mine coins but on Java Edition mod creators make them for free it’s just something to think about well if you made it this far be sure to subscribe I don’t do these types of videos too often but as a software engineering student it’s sometimes fun to look into the inner workings of some of the games that I commonly play I hope you learned something and if something didn’t quite make sense be sure to ask your question in the comments I’m not a very big YouTuber so you can expect a response back pretty quickly once again I thank you all for watching subscribe and I will see you all next [Music] time Video Information
This video, titled ‘Why Minecraft’s Performance SUCKS’, was uploaded by MobsterYT on 2024-04-04 22:00:27. It has garnered 64075 views and 4272 likes. The duration of the video is 00:07:46 or 466 seconds.
In this video we are taking an in-depth look at the game to learn about how it runs on your machine. If something does not make sense, be sure to comment under the video or ask in my discord. My Socials: Twitter: @Themobster21 Discord: https://discord.gg/4Y2jFEzzgf