this post was submitted on 01 Apr 2024
672 points (96.2% liked)
Gaming
20052 readers
63 users here now
Sub for any gaming related content!
Rules:
- 1: No spam or advertising. This basically means no linking to your own content on blogs, YouTube, Twitch, etc.
- 2: No bigotry or gatekeeping. This should be obvious, but neither of those things will be tolerated. This goes for linked content too; if the site has some heavy "anti-woke" energy, you probably shouldn't be posting it here.
- 3: No untagged game spoilers. If the game was recently released or not released at all yet, use the Spoiler tag (the little ⚠️ button) in the body text, and avoid typing spoilers in the title. It should also be avoided to openly talk about major story spoilers, even in old games.
founded 5 years ago
MODERATORS
Genuine question: why does bedrock exist? What does it bring? Why is there the choice between java, bedrock and "Minecraft for windows"?
How do you fuck up this badly?
I tried using the launcher to move a java install from C: to another drive and it just points there and doesn't do anything? Steam had this stuff figured years ago
Minecraft rewritten for better performance with platform interoperability in mind and so on. Essentially what could've or should've been a replacement to Minecraft if done right. It was not done right. Quite the opposite.
In what world is c++ better for cross platform than Java?
In a world with consoles. Java needs a JVM, and those aren't typical with things like the Switch (2 soon), PS5, and Xbox Series (half the alphabet).
Oh ok that's fair enough. I forget those exist sometimes.
You forget consoles exist?
I think they meant JVMs.
Yeah, except retro consoles.
C++ is generally more performant than Java.
https://programming-language-benchmarks.vercel.app/java-vs-cpp
What's that got to do with making things cross platform? Java programs only need to run in a Java runtime environment of which there's one for basically everything. If you make something that runs in a JRE, it'll be able to run on any device with a JRE that's up to date for it.
given how many targets are supported by llvm there's really little difference in cross platform support asides from building artifacts for the specific target platform. wrapping package delivery in a package manager removes the additional complexity to the end user.
Minecraft Java runs like dog shit. Making a faster port of it was worth it. They just botched it because Microsoft got its hands on it.
Oh yeah that totally explains why it's always been perfectly fine for me as long as I'm not looking at a giant wall of those shelves that display their contents from whatever modpack that was.
Bedrock routinely outperforms java.
https://piped.video/watch?v=qLjOIulsNcM
https://piped.video/watch?v=Z4GrbD2MA5o
https://piped.video/watch?v=p_mCekWWW_8
Just because you're perfectly fine doesn't mean all other machines are.
So? What's that got to do with making it cross platform?
I could ask what makes food hot and you would come in here telling me your refrigerator brand uses less electricity.
I wasn't strictly talking about cross platform. I was talking about performance, which is tangential to the cross platform thing.
If you're planning on making a game cross platform, you should choose a language that performs well for gaming on all platforms. Java ain't that. Which answers your question:
C++ is better for this application.
Good thing we have Minetest and Vintage Story!