| ▲ | somat a day ago | |||||||
Consoles hate having a jit vm so java is a non-starter for them. The real reason is you want to run your game on the latest greatest WiiStation(tm). if it is written in C/C++ you sit down with a copy of their development library and change your code to fit. If it is written in java you port the jvm to the device. And I don't really know how hard that is(having never ported the jvm) but most people sort of balk at that step. Microsoft thought it was easier/better to rewrite minecraft in C++ than port the jvm to the xbox. There was a big enough customer base attached to the original java version they did not want to discard it(backlash would be too huge and messy). | ||||||||
| ▲ | 0x3444ac53 a day ago | parent | next [-] | |||||||
In Microsoft's defense at the time the java code base had a ton of technical debt and overtime they've essentially done a full rewrite of everything. That said, I'm convinced that 90% of the reason that the current mess exists is because Microsoft was convinced that most users would be migrating from Java to bedrock. And they probably would have (modding and other things aside), had the Microsoft team not decided to "fix" many aspects of redstone. Since then there's been the constant issue of parity between the two versions, which will likely never be achieved. And 90% of the time it's because the Microsoft developers working on bedrock edition decide they know better than mojang does, so they can implement a feature in a different way, or just implement a new feature entirely. Ugh it's a mess, and I've spent way too long thinking about it. | ||||||||
| ||||||||
| ▲ | vintermann 20 hours ago | parent | prev | next [-] | |||||||
Unless I've got the product genealogy wrong, the rewrite predated Microsoft. The mobile version was also C++ based, and I think it is the distant ancestor to bedrock/windows/console editions. | ||||||||
| ▲ | kergonath 16 hours ago | parent | prev | next [-] | |||||||
> Microsoft thought it was easier/better to rewrite minecraft in C++ than port the jvm to the xbox. I don’t think that’s quite right. IIRC, the mobile iOS version was released before the Xbox one and neither were developed by Microsoft. I think eventually it’s the mobile version that became Bedrock and replaced the older console version, which became a dead end. The mobile version (released in 2011) could not be in Java, otherwise it could not have been sold on iOS. So at least initially it was more a business decision about which platforms to target than a technical decision to do away with Java. All this happened years before Microsoft bought Mojang. | ||||||||
| ▲ | mghackerlady 12 hours ago | parent | prev [-] | |||||||
I know this is probably not as easy as it is in my head, but doesn't xbox have a .net runtime? It would completely take away the portability aspect, but if the original 360 port was handled in house I could totally see them using that weird Java on .net thing in at least some capacity | ||||||||