The PC version is still Java, but the rest of the platforms run under various different code bases. They keep them the same but sometimes the non-PC platforms have actually gotten features before PC has.
The pocket edition was already pretty far along before the Microsoft aquisition. It seems they invested in improving that rather than the original codebase.
Saying "Minecraft was rewritten" is a little misleading. The Pocket Edition was ported to Windows 10. It wasn't rewritten. Also, the main edition that one can purchase for Mac, Windows, or Linux is still in Java. The Pocket Edition, which was built long before Microsoft's acquisition, was not written in Java.
GC doesn't kill constraints for games. Unity3D games have been dealing with the GC for ages now, it's not that bad. Cautious use of memory allocations and calling the GC at convenient times go a long way. But on the other hand Java doesn't have value types, which is pretty terrible.
That's actually exactly my point, "kills real time constraints" is very strong language, you end up having to look at AAA games the size of Battlefield to see where it falls short. Minecraft-like games with similar voxel rendering can, and have been, done in Unity. In fact on the internal Nintendo Wii U dev forums I recall a Minecraft-clone was deep in development in Unity, but I think a lack of demand on the platform killed it
I can only speak for Kerbal Space Program, but Unity 5's GC causes stutters on many people's systems, regardless how much RAM is available. There is a wonderful plugin called MemGraph[0] which lets you view GC events and more importantly, to change the time and frequency of GC activation, which has almost completely alleviated stuttering on many systems (my own included).
Working with the GC is definitely tricky, but I think it's a feature that works well for the majority of the games made with Unity and really only rears it's head in specific types of games of a specific size. Saying it kills realtime constraints for gaming is definitely a stretch. Open world games with no transitions for example, leave little room for natural GC calls, where as level based games can do things like call the GC at the start of each level and carefully budget allocations through out the level.
It's great that works for you, and there's plenty of ways to take that approach outside of Unity. Like anything technology there are trade offs, having a GC while minimizing allocations can save a lot of time and effort upfront. I see it as Python vs Java, or NoSQL vs SQL, or a host of other similar comparisons that rage on in programming.
I personally never checked the fps when playing Minecraft but Minecraft was not extremely computationally intensive. Despite that they still needed to port it to a non GC language to get it running on phones
On my Mac back when I used to play a couple years ago, I saw random slowdowns. I tried various voodoo Java VM parameter tweaking and it didn't entirely fix it. Based on my searches I'm not alone.
Maybe it worked perfectly on your boxes, but there's something rather fragile and machine-dependent about Minecraft performance.
It certainly didn't work perfectly in 2009. I had to turn off transparent blocks and greatly reduce the draw distance to get decent framerates on my laptop at the time. Maybe you had a better PC then I did. Java Minecraft still requires at least 10x more processing power than it would in a more suitable language.
Java Minecraft definitely used to have lots of issues with large worlds on my 2009 laptop. Low framerates with freezes every time a new region was loaded, even with draw distance on the lowest setting.
Did you ever look at the framerate graph and see the stutter caused by GC? Every time the "allocated memory" counter jumps down, you've got a few frames worth of pause in the graphics, and a big red latency line in the graph.
What memory management paradigm would you recommend, for an application like this? Let's say, a 1 hour game session generates ~100 GB of transient data, but only 100 MB is needed for what is currently within the camera's view at any one time. How do you keep track of which data is still important, and when do you release memory?
Java is a horribly inefficient language for gaming. Every console and mobile port of Minecraft has been written in C++, and Microsoft is working on getting their Windows C++ version up to speed. It has nothing to do with Nintendo.
This is almost certainly not the PC version of the game, which does run Java. The Switch would probably not be capable of running 4 instances of the at 720p 60fps.
There's a Windows 10 edition of the game, written in C++, a from-scratch rewrite of the original Java. There's Minecraft Pocket for Android/iOS. And there's Console Edition, which runs on XBox 360 and WiiU, and now Switch Edition.
They are aiming for feature parity between the various versions. The Pocket/10/Console versions are all intercompatible - you can log in on a server with one platform simultaneously playing with someone on another platform. I don't know how much code they share.
But the original Java edition is still where all the YouTubers, mod authors, wiki activity, and really the core user base is at. Pocket and console are more used by the younger and more casual users. Feature parity like world generation is possible, but it won't be possible to make various Redstone (programmable machine) contraptions, build aesthetics, and farms compatible.
If they can put out a stable mod API and reach feature parity (but not necessarily compatibility) the C++ version will quickly replace the Java IMO.
The biggest things holding back the game today are poor performance and lack of a mod API and the Windows 10 version already does great things for performance.
> This is almost certainly not the PC version of the game, which does run Java. The Switch would probably not be capable of running 4 instances of the at 720p 60fps.
Though I might just be misreading you, the PC version probably isn't slow because it's Java, it's just poorly written.
Only a little. I was going to write that it was a different version because the updated versions have been frequently ported to new platforms, but that's not proof, they might have changed their pattern. And while the new codebase seems more portable and flexible, there's no reason the Switch couldn't be made to run Java.
The proof is that while the Java version runs acceptably on a modern PC - which is all it needs to do - a PC with the performance of the Switch would not be capable of this performance level. Instead, the Pocket edition running on phones would be closer to this performance.
(Also, you might be misreading me because I forgot "PC version" between "the" and "at 720p".)
It has been acquired for 2 billion dollars, it has had 8 years in which to clean up and optimize that code. Either the all the people working in it are very incompetent or it's actually Java to blame :^)
2 billion dollars and 8 years hasn't even gone into such an effort though. The complete rewrite which serves as the codebase for the xbox, iOS, etc.. version is where the majority of that time, money, and effort has been spent. The mobile and console markets were apparently seen as as a much more lucrative use of time and effort vs optimizing the legacy desktop-only Java version which the author himself agrees was poorly written.
I've got a slow-ish machine running Windows 10 (4GB RAM, Intel GPU, Atom-descended quad-core Celeron). The Java version of Minecraft runs at maybe 2-5 FPS. I wouldn't call the Windows Store version "smooth", but it's probably closer to 10-20 FPS, with the same distance settings. For the sake of argument, I'd be willing to assume that Java code is slower than (say) the equivalent natively-compiled code, but probably not anything close to 5x slower.
Maybe there are some different features that make one slower than the other? I don't know. I just know that the Java version is slower, and that the difference in language probably isn't enough to account for it. Difference in features and difference in quality of implementation are the two possibilities that stick out in my mind as culprits for the difference in performance.
Nintendo can't stop idolizing their ancient 8-bit era franchises for preschool kids like Mario and Zelda. Now they're even forcing to add them to all ported games. This silly plumber with extra chromosome and acid colours will jump even in scariest horror games.
Port of Skyrim will surely have kid-knight from Zelda as major NPC in main quest.
I'm afraid that his name is simply Mario, or "Mario Mario" if you want to be really precise.
Source: https://www.mariowiki.com/Mario
Alternatively, just play any Mario game with voice acting. e.g. Super Mario Sunshine, where he is universally called Mario.
I was able to find one at Wal Mart and two at Target using iStockNow.com. The only store it seemeed to have issue with properly tracking was GameStop. (For the record, I only bought one of those three, I'm not interested in scalping.)
I just picked it up last night, its pretty weird to think that this game I bought way back in 2010 is still relevant. Indie hits like super meat boy and limbo came out in 2010,
Triple As like God of War 3 and Fallout NV. But this java applet somehow has outlived them all. There arn't many 8 year old+ games that still have this much traction.
I wonder how it holds onto it's user base, or was it just dumb blind luck that it hit big with the youtube boom
Almost all the Lego my parents bought 30-20 years ago is viable and relevant when my kids are old enough.
I wonder what the story is around LEGO and not having to make their product obsolete over time. Could you imagine if they changed the scale just a little bit every 5 or so years?
The wonderful thing about construction toys is this: however cool an action figure is, you'll eventually get bored of it, and then it essentially becomes clutter. But Legos never stop being useful. The more of them you have, the more you can build.
LEGO has been on the ropes before. Generic blocks became a race to the bottom. LEGO pulled a Hail Mary and saved itself mostly by associating with popular kids' brands (and leveraging that association to create their own popular brands, like Lego Friends, Legends of Chima, and The LEGO Movie).
The irony of that is that most LEGO brick sets are now pre-cut and specially made so that they're hard to use beyond their specific design. Kids don't really buy giant sets of generic, inter-compatible LEGO anymore. They buy licensed LEGO that allow them to rebuild a single figure (potentially with minor customizations), and it seems completely powered by imitating the characters and properties they enjoy, and not the joy of construction.
First row of results on Offical LEGO Google Shopping page is 6 pre-cuts: Mercedes AMG GT3, "Expert Assembly Square", Cinderella Castle, VW Bug, Ferrari SF16-H, and "Winter Toy Shop". Screenshot at https://i.imgur.com/c0tP7b4.jpg . Notice all of these are pre-cuts, and only two are non-licensed (Toy Shop/Assembly Square).
Minecraft is different in that to this point, licensing has made only minimal excursions (the Mario packs probably being the most prominent example).
I see this complaint a lot when it comes to legos, but it couldn't be more wrong. I can't say for sure on the Disney castle, but those other ones are all using fairly standard parts. Plus, any new pieces are still compatible with the legos you had years ago.
fwiw as a kid my parents bought me mostly sets with things like pirate ships and castles and stuff, a specific goal. They were no less fun than the big boxes--in fact, sometimes they were more fun because I had all the pieces I needed to make whatever it was, rather than trying to make something out of the generic boxes and running out of a certain unit.
I'm not really sure where this complaint comes from, Legos today interlock exactly as they did 30 years ago, so what if they come with a cute guidebook that shows you how to make an X-wing?
I grew up absolutely proud of my complete Ice Planet Lego set. I built it all once and then through years of imagination the ships and vehicles all slowly mutated into things that don't resemble the original designs at all.
I would say that the original designs primed my imagination.
In most games, you are consuming an experience created by the developers. In Minecraft, you are creating your own experience in an environment created by the developers. There's no end to what you can do in the game.
Minecraft isn't just a game anymore. It is a cultural touchstone. An entire generation has been introduced to video games through Minecraft.
Furthermore, the gameplay effectively can go on forever. Especially with mods on PC, there are very few limits to what can be done. Entire separate games (e.g. Hunger Games mod) have been implemented.
Also, it's one of the best-selling games of all time. That helps. No one bats an eye when, say, Puyo Puyo Tetris gets released and ported. (Yes, I just compared Minecraft to Tetris.)
> An entire generation has been introduced to video games through Minecraft.
Absolutely, but I would take it one step farther. Minecraft has introduced them to concepts beyond only video games: architecture, circuit design, and people management, to name a few.
> Entire separate games (e.g. Hunger Games mod) have been implemented.
Reminds me of why I was hooked to Star Craft / SC Brood War in my youth, same thing with Counter-Strike. Video game modding is probably the best part of any video game, at least for me. There's a group of people redoing the Morrowind engine so they can allow the game to live on in other OS' for those who have the disk.
I have to wonder if GTA had never had online PC game mods if Rockstar would of ever made it an online game as soon as they did.
Well, I still play Super Meat Boy. I just bought a new Alienware laptop and I plan to play this weekend (via Steam). I haven't ever played any of the console versions, except XBox 360. If I bought a new console now, I'm not sure what else I would play. Perhaps a Switch would be my best choice since I like the Mario games and older Zelda games.
Edit: I own Fez, Braid, etc also, but I don't play them much.
You compared games that have a definitive start and end to a sandbox experience that doesn't have an end. It's like asking why people still playing with Legos but aren't watching Annie Hall every week.
I’ve stopped playing Zelda on my TV completely. The handheld mode is just so good. I can’t believe that I have no complaints! This is going to be big for Minecraft.
68 comments
[ 2.8 ms ] story [ 109 ms ] threadI didn't even expect that, honestly.
Also I wonder if minecraft still runs java underneath - probably yes, but you never know.
I believe you're arguing against a GC there.
[0]http://forum.kerbalspaceprogram.com/index.php?/topic/139128-...
Maybe it worked perfectly on your boxes, but there's something rather fragile and machine-dependent about Minecraft performance.
There's a Windows 10 edition of the game, written in C++, a from-scratch rewrite of the original Java. There's Minecraft Pocket for Android/iOS. And there's Console Edition, which runs on XBox 360 and WiiU, and now Switch Edition.
They are aiming for feature parity between the various versions. The Pocket/10/Console versions are all intercompatible - you can log in on a server with one platform simultaneously playing with someone on another platform. I don't know how much code they share.
But the original Java edition is still where all the YouTubers, mod authors, wiki activity, and really the core user base is at. Pocket and console are more used by the younger and more casual users. Feature parity like world generation is possible, but it won't be possible to make various Redstone (programmable machine) contraptions, build aesthetics, and farms compatible.
It will be interesting to see how it plays out.
The biggest things holding back the game today are poor performance and lack of a mod API and the Windows 10 version already does great things for performance.
Though I might just be misreading you, the PC version probably isn't slow because it's Java, it's just poorly written.
The proof is that while the Java version runs acceptably on a modern PC - which is all it needs to do - a PC with the performance of the Switch would not be capable of this performance level. Instead, the Pocket edition running on phones would be closer to this performance.
(Also, you might be misreading me because I forgot "PC version" between "the" and "at 720p".)
Maybe the initial java code base, but like someone said they had 8 years and enough resources to rectify the issue.
Do you have any recent info to back your claim?
Maybe there are some different features that make one slower than the other? I don't know. I just know that the Java version is slower, and that the difference in language probably isn't enough to account for it. Difference in features and difference in quality of implementation are the two possibilities that stick out in my mind as culprits for the difference in performance.
Port of Skyrim will surely have kid-knight from Zelda as major NPC in main quest.
Source: https://www.mariowiki.com/Mario Alternatively, just play any Mario game with voice acting. e.g. Super Mario Sunshine, where he is universally called Mario.
I wonder how it holds onto it's user base, or was it just dumb blind luck that it hit big with the youtube boom
The game doesn't follow any real story so it doesn't have that limiting factor.
I wonder what the story is around LEGO and not having to make their product obsolete over time. Could you imagine if they changed the scale just a little bit every 5 or so years?
The irony of that is that most LEGO brick sets are now pre-cut and specially made so that they're hard to use beyond their specific design. Kids don't really buy giant sets of generic, inter-compatible LEGO anymore. They buy licensed LEGO that allow them to rebuild a single figure (potentially with minor customizations), and it seems completely powered by imitating the characters and properties they enjoy, and not the joy of construction.
First row of results on Offical LEGO Google Shopping page is 6 pre-cuts: Mercedes AMG GT3, "Expert Assembly Square", Cinderella Castle, VW Bug, Ferrari SF16-H, and "Winter Toy Shop". Screenshot at https://i.imgur.com/c0tP7b4.jpg . Notice all of these are pre-cuts, and only two are non-licensed (Toy Shop/Assembly Square).
Minecraft is different in that to this point, licensing has made only minimal excursions (the Mario packs probably being the most prominent example).
fwiw as a kid my parents bought me mostly sets with things like pirate ships and castles and stuff, a specific goal. They were no less fun than the big boxes--in fact, sometimes they were more fun because I had all the pieces I needed to make whatever it was, rather than trying to make something out of the generic boxes and running out of a certain unit.
I'm not really sure where this complaint comes from, Legos today interlock exactly as they did 30 years ago, so what if they come with a cute guidebook that shows you how to make an X-wing?
I would say that the original designs primed my imagination.
In most games, you are consuming an experience created by the developers. In Minecraft, you are creating your own experience in an environment created by the developers. There's no end to what you can do in the game.
Furthermore, the gameplay effectively can go on forever. Especially with mods on PC, there are very few limits to what can be done. Entire separate games (e.g. Hunger Games mod) have been implemented.
Also, it's one of the best-selling games of all time. That helps. No one bats an eye when, say, Puyo Puyo Tetris gets released and ported. (Yes, I just compared Minecraft to Tetris.)
Absolutely, but I would take it one step farther. Minecraft has introduced them to concepts beyond only video games: architecture, circuit design, and people management, to name a few.
Reminds me of why I was hooked to Star Craft / SC Brood War in my youth, same thing with Counter-Strike. Video game modding is probably the best part of any video game, at least for me. There's a group of people redoing the Morrowind engine so they can allow the game to live on in other OS' for those who have the disk.
I have to wonder if GTA had never had online PC game mods if Rockstar would of ever made it an online game as soon as they did.
Edit: I own Fez, Braid, etc also, but I don't play them much.
You compared games that have a definitive start and end to a sandbox experience that doesn't have an end. It's like asking why people still playing with Legos but aren't watching Annie Hall every week.
Funny that other games with this traction is also *craft.
The Switch has real gaming inputs, and I think that's going to make a huge difference in the basic comfort and playability of the game.