this post was submitted on 01 Apr 2024
672 points (96.2% liked)

Gaming

19991 readers
54 users here now

Sub for any gaming related content!

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Psaldorn@lemmy.world 81 points 7 months ago (6 children)

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

[–] Opisek@lemmy.world 146 points 7 months ago (2 children)

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.

[–] Mango@lemmy.world 10 points 7 months ago (2 children)

In what world is c++ better for cross platform than Java?

[–] Xatolos@reddthat.com 55 points 7 months ago (1 children)

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).

[–] Mango@lemmy.world 5 points 7 months ago (1 children)

Oh ok that's fair enough. I forget those exist sometimes.

[–] EatATaco@lemm.ee 9 points 7 months ago (2 children)
[–] Xatolos@reddthat.com 4 points 7 months ago

I think they meant JVMs.

[–] Mango@lemmy.world 0 points 7 months ago

Yeah, except retro consoles.

[–] Olgratin_Magmatoe@lemmy.world 5 points 7 months ago (1 children)
[–] Mango@lemmy.world 1 points 7 months ago (2 children)

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.

[–] kewjo@lemmy.world 4 points 7 months ago

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.

[–] Olgratin_Magmatoe@lemmy.world -2 points 7 months ago (1 children)

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.

[–] Mango@lemmy.world 0 points 7 months ago (1 children)

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.

[–] Olgratin_Magmatoe@lemmy.world 1 points 7 months ago* (last edited 7 months ago) (1 children)
[–] Mango@lemmy.world 0 points 7 months ago (1 children)

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.

[–] Olgratin_Magmatoe@lemmy.world 1 points 7 months ago* (last edited 7 months ago)

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:

In what world is c++ better for cross platform than Java?

C++ is better for this application.

[–] supersquirrel@sopuli.xyz 9 points 7 months ago

Good thing we have Minetest and Vintage Story!

[–] fhqwgads@possumpat.io 59 points 7 months ago (4 children)

Because Bedrock runs on phones, tablets, consoles, and a host of other random crap, and does so relatively well. Because of that the install base and playtime especially among younger players is actually massively skewed toward Bedrock being the more used. Add to that rumors that the Java codebase at least was a terrible mess, and the performance issues Java edition still has to this day and it's no wonder they wanted to do a full rewrite, especially after having to make things like the console editions and even one for the 3DS.

The windows launcher is annoying though.

[–] UnityDevice@startrek.website 44 points 7 months ago (2 children)

Because Bedrock runs on phones, tablets, consoles, and a host of other random crap

And it also removes Linux support. Typical Microsoft.

[–] fhqwgads@possumpat.io 19 points 7 months ago (1 children)

To be fair there's a Linux version of the bedrock server. But yeah not having it on the steam deck is pretty annoying.

[–] 0ops@lemm.ee 4 points 7 months ago (1 children)

Go into desktop mode, there's a bedrock launcher in the package manager store thing, I forgot the names of both of those things, but search "Minecraft" and you should find it. Anyway, it basically loads the Android version of the game. It works pretty well. I play bedrock because everyone I play with is on Xbox

[–] nrezcm@lemmy.world 2 points 7 months ago

Fairly certain I've had both versions working on our steam deck. It's pretty straight forward like you're saying.

[–] accideath@lemmy.world 12 points 7 months ago (1 children)

Linux and mac and any other x86 compatible platform that runs java…

[–] MonkderDritte@feddit.de 1 points 7 months ago (1 children)
[–] accideath@lemmy.world 10 points 7 months ago (1 children)

Yes exactly. Java runs on Windows, macOS, Linux and any x86 compatible operating system that supports the Java runtime environment. Minecraft bedrock removes support for all of those but Windows.

[–] Jakeroxs@sh.itjust.works -1 points 7 months ago (1 children)

And adds support for Playstation, Xbox, Switch, Android, iOS....

[–] accideath@lemmy.world 3 points 7 months ago

They all had minecraft before bedrock was a thing yet. That legacy minecraft without crossplay just got replaced by bedrock.

[–] kadu@lemmy.world 15 points 7 months ago* (last edited 7 months ago) (1 children)

There's also the fact that Bedrock patches bugs that the Java community freaks out about patching. Several chunk update glitches and undesirable redstone behavior are exploited by the Java players, and they go nuts over the idea of fixing the issues. Bedrock, being a new codebase, obviously didn't port over old crusty bugs and therefore doesn't have to carry over those expectations.

[–] fhqwgads@possumpat.io 20 points 7 months ago (1 children)

To be fair I'd call it a wash. Bedrock fixes a lot of weird stuff like quasi connectivity and being able to push things like chests with pistons but also introduces it's own bugs like weird timing things and randomly taking fall damage. There's also weird differences like being able to do things with cauldrons or just like minor texture differences that they are slowly bringing into sync.

[–] derpgon@programming.dev 12 points 7 months ago* (last edited 7 months ago)

Also swapped performance issues with more bugs that were there years ago and still persist because they are almost impossible to fix.

In the end, we all know it was done either because they wanted to shove microtransactions down our throat and/or had some kind of deal to maintain the Java edition without microtransactions.

Or, maybe, just maybe, they though "it's just a block game, what could be so hard to rewrite it?" and absolutely failed what a single person got right almost immediately back in the day (like not falling through the floor all the time).

[–] jyte@lemmy.world 4 points 7 months ago

rumors

You can remove that word, rly.

[–] endhits@lemmy.world 17 points 7 months ago (2 children)

Java is a hilariously bad platform for games.

[–] joe_cool@lemmy.ml 6 points 7 months ago

Only if you're incompetent. Otherwise just not optimal.

Starsector, Rise to Ruins and Project Zomboid run well and are made in Java for example. It's harder to pull off but it can be done. (still needs native libraries though)

[–] kaffiene@lemmy.world 2 points 7 months ago (1 children)
[–] NiPfi@lemmy.world 5 points 7 months ago (2 children)

What makes you say that? I'm genuinely curious

[–] kaffiene@lemmy.world 4 points 7 months ago

Minecraft. Runescape. Mindustry. Slay the Spire. Project Zomboid. Doodle Jump. Shattered Pixel Dungeon. Delver. Lots of mobile games. Also It's rediculous to say Java is inappropriate for games when C# is used for games via Unity (unity is the value proposition there - c# is very similar to Java)

[–] Honytawk@lemmy.zip 3 points 7 months ago (1 children)

Java is (or at least used to be) one of the first languages new programmers started with.

Making it very accessible to create new mods.

[–] NiPfi@lemmy.world 1 points 7 months ago

I haven't modded as of yet but I started off with Java and am now a C# Dev and the transition wasn't too hard since most of the same principles apply to both languages. Unity games, that are often written in C# to me are the most moddable ones, especially considering that there's a ecosystem for Unity mods out of the box

[–] Crashumbc@lemmy.world 5 points 7 months ago

Honestly? Most large companies are more like high school. It's all, friend groups, people rubbing each other's backs, and in-fighting between departments.

A lot of VERY LARGE decisions get made for the stupidest reason.

[–] RandomVideos@programming.dev 3 points 7 months ago (1 children)

Is there even a choice? You now get both games when you buy one(and you get the other game for free if you already own one) and you can play on bedrock on java servers with geysermc

[–] Psaldorn@lemmy.world 3 points 7 months ago

I accidentally bought Minecraft for windows for someone when I wanted java.. so that was fun.

The launcher just says "here are the options" it doesn't say why you might want to choose one over another. Ive played since day 0 so I've always gone with java.

Just felt like if bedrock was meant to replace java they should have just done it and dealt with it instead of having so many choices.

[–] vox@sopuli.xyz 3 points 7 months ago* (last edited 7 months ago)

Minecraft for windows is the old name for bedrock.
it was based on the same MCPE codebase