OK this is one thing about which I have a strong opinion. Bedrock is a vehicle to milk money out of children via microtransactions, and I think its entire ecosystem is manipulative, scummy and vile. Wouldn't touch it under any circumstances, and they tried pretty hard to get me to do so during the migration period. I don't think I can even get the migrator cape (not that I'd wear it) because I adamantly refused to download Win10 Minecraft even when it was free.
Java is better for one simple reason: you can use mods (I mean actual mods, directly editing the game's code, not "add-ons" or "resource/data/behavior packs") and play on whatever version you like, as I've been doing for a decade. Even better, mods can rectify many of the game's flaws, while Bedrock players just have to put up with them (I know of at least one player who has said they are quitting because of upcoming changes).
Aside from that, you posted this in the Java Edition section so the results will be biased, same for if you posted it in the "Bedrock Edition" section (or what they want you to just call "Minecraft"; the game I play is still called just that, this was before Microsoft bought Mojang and they no doubt renamed the editions to emphasize Bedrock as the preferred version)..
Java Edition is heavily modifiable. The modding scene for Minecraft Java is probably one of, if not the biggest modding scene I've seen for any game. There are thousands upon thousands of mods for you to download and play around with. And thanks to the community, it is possible to decompile and deobfuscate the .jar file for Minecraft, meaning that you can directly edit the game's code.
On top of that, you have maps, the custom worlds that players create for others to play in. While Bedrock Editions does have maps and "addons" (basically Bedrock's version of mods), you often need to pay to have access to them. Compared to Java, where, as far as I know, no paywall exists for any maps or mods (if there are any, they're very obscure)
There's also the fact that you can play on any version of the game you want with Java Edition. Alphas, betas, you name it. You're not stuck on the latest version of the game, which is nice since older versions have a totally different feel to them. Bedrock? You're stuck playing the latest version of the game, whether you like it or not.
this was before Microsoft bought Mojang and they no doubt renamed the editions to emphasize Bedrock as the preferred version)..
I just want to add on to why I think Bedrock is preferred. We all know it, it's for money. Bedrock is available on not only PC, but also consoles and mobile devices, which is most likely where children are going to be playing the game on (since most children typically don't have their own computer). Children are a very easy demographic to milk cash from. Java Edition, running off of Java (crazy, I know), is stuck to only running on PCs, so obviously Microsoft would rather market the version of the game that gets them more money over the less profitable one. Unfortunate, but that's just how we have to roll these days.
Another biased answer for Java from me, but you're asking in not only the Java forum specifically, but I would imagine the Minecraft forums as a whole (especially most of the regulars) probably leans more towards Java, given its history. Ask elsewhere and it might not be as biased, but I imagine Java still might be over-represented relative to install base regardless of where you ask for one reason; it's probably the more preferred version. Bedrock definitely has more raw players, but consoles and mobiles also outnumber consumer home PCs. And those former things either only run Bedrock (or their deprecated platform specific editions). Yes, I'm aware Java can be run on mobiles but that's a very niche thing. So it's mostly only the PC that has access to Java and Bedrock easily. And on this single platform that can do both, Java probably tends to be far preferred. Most people who have a PC and have the choice of the two probably lean towards Java unless they explicitly have a need for Bedrock, namely to play with other Bedrock players.
Now Bedrock is fine for what it is, and I have no qualms with those who enjoy it (especially if its out of necessity and it is that or nothing), but I'd never prefer it over Java it in its current state, and here's why.
1. I'm too invested in Java. I'm not even deep in mods but that still matters to me. All the little things add up. All the tools and such I've used over the years, resource packs, shaders, and so on. I have worlds going back over a decade in one case, and I've heard Bedrock doesn't handle larger worlds too gracefully.
2. I've been playing hardcore lately. Bedrock lacks this. Sure, I can try and imitate it, but...
3. I've heard Bedrock is far more buggy, and while Java has issues, it seems worse on Bedrock, like "random" damage, random death, and so on, and these put me off. In nearly a dozen years on this game, my major issues with Java have been few and far between (having some chunks reset due to the way 1.13+ initially handled a lighting value was probably the most major I can come up with).
4. Bedrock can't pause the game in single-player. This can not be overstated; it's a massive issue. It's legitimately a flaw that you can't pause single player worlds. Yes, I know why it happens. No, that doesn't excuse it. Being unable to pause your own single-player only instance is nonsense. In Java, you can't do this when open to LAN either, but you have to instruct it to be run in that state to begin with (and generally you'd only do it when wanting to turn it from single-player into multi-player, which is where there is an expectation that you can't pause).
5. Bedrock has forced version updates. This is one thing to a point with things like operating systems, but a game that you buy at a given point should be something you choose when/if it updates afterwards. The whole "better together" comes with drawbacks.
6. The different combat would not be preferred by me (I'm not a spam-click enjoying PVP player). Until/if further combat changes come, I prefer those of Java.
7. There's probably a ton of intangible small stuff (some of them possibly being Bedrock limiting what it processes to be more performant), although I don't have any big ones in my mind at the moment.
8. I presume all of the "uncanny valley" issues from playing Java since the start would detract from things for me. This one of course would work in reverse for anyone who has played Bedrock from the start, but I've only ever played Java so for me the other one would possibly feel off. Or maybe not. I don't know. But the above are reasons enough.
The main perk I see to Bedrock, the "improved performance", is largely not an issue for me a swell. That especially seems to extend to chunk generation/loading/rendering (allowing for higher render distances, smoothly), and while that is where Java probably needs performance improvements the most in my experience, this benefit is muted for me because...
A. I have a decent CPU, so while Java will always be Java and have it's snags, it generally performs smooth for me outside certain conditions (Bedrock has conditions which bring it down too though).
B. I find very high render distances off-putting visually anyway. Being able to see that many biome transitions looks bad to me. This is coming from someone who has tended to prefer very high (for Java) render distances throughout my time with the game. It's nice... to a point. I used to play on 32 way back when. But 48? 64? 90-whatever? That seems absurd. Not knocking anyone who enjoys it, but I don't see the point, to the one big benefit of Bedrock ends up muted for me as a result. It's still a benefit, mind you... but not as much of one.
Reason 1, 4, and 5 are probably the primary ones, but they all add up.
Java is better for one simple reason: you can use mods (I mean actual mods, directly editing the game's code, not "add-ons" or "resource/data/behavior packs") and play on whatever version you like, as I've been doing for a decade. Even better, mods can rectify many of the game's flaws, while Bedrock players just have to put up with them (I know of at least one player who has said they are quitting because of upcoming changes).
Bedrock has mods and they are free. I don't understand how it differs from java.
4. Bedrock can't pause the game in single-player. This can not be overstated; it's a massive issue. It's legitimately a flaw that you can't pause single player worlds. Yes, I know why it happens. No, that doesn't excuse it. Being unable to pause your own single-player only instance is nonsense. In Java, you can't do this when open to LAN either, but you have to instruct it to be run in that state to begin with (and generally you'd only do it when wanting to turn it from single-player into multi-player, which is where there is an expectation that you can't pause).
I'm agree, but it isn't very matter.
6. The different combat would not be preferred by me (I'm not a spam-click enjoying PVP player). Until/if further combat changes come, I prefer those of Java.
I'm agree, Java pvp is better.
The main perk I see to Bedrock, the "improved performance", is largely not an issue for me a swell. That especially seems to extend to chunk generation/loading/rendering (allowing for higher render distances, smoothly), and while that is where Java probably needs performance improvements the most in my experience, this benefit is muted for me because...
Java edition hasn't this(performance), but it should.
And no, not reskins of existing blocks/items/mobs/biomes but actual new content and changes to the very way the game works (say, making Mending negate the prior work penalty and making the cost to repair an item consider the enchantments (i.e. pre-1.8 anvil mechanics) and durability; or an "attack penalty" that only takes effect if you miss entirely or attack a mob while it is damage-immune from a previous player attack). Not even java's world customization (in any version that has supported it) is able to do anything at all like what I've done with world generation,- not even remotely close, nor can you do this without real mods:
I actually want to add; This performs amazingly well, even better than other versions coked up with optimization mods. What did you do!? My refresh rate is 144FPS and despite other versions often reporting that, I feel like the FPS stutters significantly at times. Not with TMCW, it's buttery smooth basically the whole time.
(this fixes the last issue you quoted, and other mods go far beyond; "In my own tests FC2 could easily outperform everything else, including the W10 edition (MCPE/Bedrock)", and with none of its "cheats" to get better performance)
An actual example of my code - that's real code, not some command-based script:
(and yes, I really have written over 7,000 lines of code to generate caves; the vanilla cave and ravine generators are only around 1/20 the size. Even then, the entire source for TMCW is over 20 times this size (7.5 MB), some 150,000 lines at the same lines/KB; all of my mods are still in a folder named "cave mods" but only a small fraction is actually involved with cave generation, at least half is optimizations and bugfixes based on the size of the mod I use with my first world (3.84 MB), which only adds a handful of actual new content).
I did find a video where somebody used some huge fancy contraption to generate a cave in what appears to be a similar manner to the actual game when making "original" caves (a method called "perlin worms") but such a thing is absolutely not conducive for Survival worlds or just "enter some random seed and an entire world will infinitely generate with every imaginable permutation", and no doubt took far longer to program the command blocks/scripts than if created with actual code, which is also far, far faster as well (people still love to call Java "slow" because it is "interpreted" but it hasn't been for decades - but the game's command interpreter certainly is, and changing blocks as shown in the video is expensive for many reasons, such as having to recalculate light levels and notify adjacent blocks of a block update, which are not factors during the cave carving stage of world generation (the game doesn't even carve actual world data but data representing the terrain that will be used to initialize a chunk; as such, my cave generator can carve about 2,000 chunks per second):
A rendering of the underground of a world I played on, covering a 3328x3328 block area:
A larger rendering of the larger variants of "special caves" only:
A chart of the different types of caves, the largest of which are on par with the largest caves in 1.18+, if not even larger - requiring many millions of block changes based on the video, which required multiple "passes" in order to create a final product:
I suppose this is also possible with commands (biome-specific underground blocks, e.g. sand/sandstone in deserts) but it would require a lot of block replacements and have to work in real-time as the player explores, and require a lot of fancy block models and textures for things like "metadata ores" (in my mod the ore texture (the colored parts) is separated into an overlay which is placed over a base texture which is derived from stone, sandstone, hardened clay, snow, etc):
Even with all that, and much more, it only takes a few seconds to create a new world - even faster than vanilla 1.6.4, which is extremely simple by comparison, even 1.18's biome generator is extremely simple compared to mine (just look at any biome map, e.g. ChunkBase - just some big splotches of a few biomes with unnaturally smooth borders over large areas, not the intricate fractal shapes and patterns the old generator produced):
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Starting integrated minecraft server version 1.6.4
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Generating keypair
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Preparing start region for level 0
[18:22:05] 2023-04-15 18:22:05 [SERVER] [INFO] Preparing spawn area: 19%
[18:22:06] 2023-04-15 18:22:06 [SERVER] [INFO] Preparing spawn area: 58%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] Preparing spawn area: 99%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver[/127.0.0.1:0] logged in with entity id 137 at (-245.5, 70.0, -253.5)
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver joined the game
For comparison, this was 1.13 (the most recent version I've run for any reason) - 5 times slower for no explainable reason (this post claims that the biome generator alone became a staggering 35 times slower in 1.13, apparently just because of some new ocean types)::
An example of biome generation in 1.18+ and examples from TMCW (note that the scale of the 1.18 map is WAY larger; the examples from TMCW are 1024x1024 blocks each, or a 2x2 area of the grid on the 1.18 map):
Some zoomed-in views showing the complexity of biome placement, some biomes have 5+ concentric rings of biomes, like the "Rocky Mountains" shades of lighter gray to white) near the lower-right of the second image (vanilla, at least up to 1.17, only supported a single "edge" biome, thus why Extreme Hills Edge was removed when they added Stone Beach as an "edge" biome, while my generator can do both, an example is near the top of the first image (the gray biome). Even rivers have an "edge" in the form of "riverbank" biomes to smoothen out height variations, at the highest possible resolution (4x4 blocks per pixel on these maps, which is then fuzzed out to 1x1 blocks in a final step):
This is the code that constructs the "GenLayer chain", a sequence of layers which each perform some step in the biome generation process, from adding landmasses to biomes to rivers to everything else (incidentally, this also reveals some upcoming features, as seen by the world types):
public static GenLayerTMCW[] initializeAllBiomeGenerators(World par1World)
{
long worldSeed = par1World.getSeed();
WorldType worldType = par1World.getWorldInfo().getTerrainType();
// getBiomeSize returns 0 for Default and Oceanic, 1 for Medium Biomes, 2 for Large Biomes
int biomeSize = worldType.getBiomeSize() + 4;
// isLargeBiomes includes both Medium and Large Biomes
boolean isLargeBiomes = (worldType == WorldType.MEDIUM_BIOMES || worldType == WorldType.LARGE_BIOMES);
boolean isOceanic = (worldType == WorldType.OCEANIC);
// Using debug_biomes for the name of a non-Superflat world lays out all biomes in a grid with a scale of 4x4 chunks per
// biome (not affected by Large Biomes)
String worldName = par1World.getWorldInfo().getWorldName();
boolean debugBiomes = (worldName != null && worldName.toLowerCase().startsWith("debug_biomes"));
// Adds initial continents and island exclusion zones to oceans
GenLayerTMCW initLand = new GenLayerLandIslands(worldSeed, 1L, isOceanic);
GenLayerTMCW fuzzyZoom = new GenLayerFunctions(worldSeed, 2000L, initLand, GenLayerFunctions.FUZZYZOOM);
GenLayerTMCW landIslands1 = new GenLayerLandIslands(worldSeed, 1L, fuzzyZoom, GenLayerLandIslands.ISLANDS);
GenLayerTMCW zoom1 = new GenLayerFunctions(worldSeed, 2001L, landIslands1, GenLayerFunctions.ZOOM);
GenLayerTMCW landIslands2 = new GenLayerLandIslands(worldSeed, 2L, zoom1, GenLayerLandIslands.ISLANDS);
// Adds small landmasses to oceans (first step)
GenLayerTMCW oceanIslands1 = new GenLayerOceanIslands(worldSeed, 13L, landIslands2, 8, 0);
GenLayerTMCW zoom2 = new GenLayerFunctions(worldSeed, 2002L, oceanIslands1, GenLayerFunctions.ZOOM);
// SPAWN_ISLANDS makes sure that there is always land within about 1000 blocks of the origin (added in two stages, Large
// Biomes reduces size of area so it isn't so large)
int mode = GenLayerLandIslands.SPAWN_ISLANDS | (isOceanic ? GenLayerLandIslands.OCEANIC1 : (isLargeBiomes ? 16 : 0));
GenLayerTMCW landIslands3 = new GenLayerLandIslands(worldSeed, 3L, zoom2, mode);
// Adds small landmasses to oceans (1/4 the size of the first step). These islands may also have climate zones. Also
// adds ocean variants.
GenLayerTMCW oceanIslands2 = new GenLayerOceanIslands(worldSeed, 31L, landIslands3, 16, isOceanic ? 3 : 2);
GenLayerTMCW zoom3 = new GenLayerFunctions(worldSeed, 2003L, oceanIslands2, GenLayerFunctions.ZOOM);
// Note that only Large Biomes changes the size of the spawn continent
mode = GenLayerLandIslands.SPAWN_ISLANDS | (isOceanic ? GenLayerLandIslands.OCEANIC2 : (worldType == WorldType.LARGE_BIOMES ? 32 : 0));
GenLayerTMCW landIslands4 = new GenLayerLandIslands(worldSeed, 4L, zoom3, mode);
// Adds Mushroom Islands as well as small islands
GenLayerTMCW mushroom = new GenLayerLandIslands(worldSeed, 5L, landIslands4, GenLayerLandIslands.SMALL_ISLANDS);
// Adds initial seeds for climate zones
GenLayerTMCW climateInit = new GenLayerClimateZones(worldSeed, 196L, mushroom, GenLayerClimateZones.INIT);
// Grows climate zones
GenLayerTMCW climateGrow1 = new GenLayerClimateZones(worldSeed, 197L, climateInit, GenLayerClimateZones.GROW1);
GenLayerTMCW climateGrow2 = new GenLayerClimateZones(worldSeed, 198L, climateGrow1, GenLayerClimateZones.GROW2);
// Separates climate zones (including those added by GenLayerOceanIslands)
GenLayerTMCW climateSeparate = new GenLayerClimateZones(worldSeed, 199L, climateGrow2, GenLayerClimateZones.SEPARATE);
// Adds biomes
GenLayerTMCW biomes = new GenLayerBiomes(worldSeed, 200L, climateSeparate, !isLargeBiomes);
GenLayerTMCW magnify = GenLayerFunctions.magnify(worldSeed, 1000L, biomes, 2);
// Adds x-hills and other sub-biomes
GenLayerTMCW subBiomes = new GenLayerSubBiome(worldSeed, 1000L, magnify, GenLayerSubBiome.HILLS);
// oasisIndex is 1 for default and 3 for large biomes, ensuring that oasis have the same size and spacing; zoom level is
// such that the coordinates (par1, par2 of getInts) correspond to 1 chunk
int oasisIndex = biomeSize - 3;
for (int i = 0; i < biomeSize; ++i)
{
subBiomes = new GenLayerFunctions(worldSeed, (long)(1000 + i), subBiomes, GenLayerFunctions.ZOOM);
switch (i)
{
case 0:
subBiomes = new GenLayerLandIslands(worldSeed, 3L, subBiomes, GenLayerLandIslands.ISLANDS);
break;
case 1:
// Four stages of edge generation, which allows things like Extreme Hills Edge + beaches. Stage 0 mainly adds
// beaches while stages 1-3 add various edge layers
for (int j = 0; j < 4; ++j)
{
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, j, isLargeBiomes);
}
// Adds in small sub-biomes (e.g. "rivers" in jungles and swamps)
subBiomes = new GenLayerSubBiome(worldSeed, 1000L, subBiomes, GenLayerSubBiome.RIVERS);
break;
case 2:
// Adds in "mini-beaches" around tropical ocean islands and other half-size edge biomes
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, 5, isLargeBiomes);
break;
default:
break;
}
// Adds features whose size is independent of biome size, such as Oasis. Also adds Rocky Mountains Summit, which
// fills in any remaining space after other layers have been added so it is not affected.
if (i == oasisIndex)
{
subBiomes = new GenLayerSubBiome(worldSeed, 47L, subBiomes, GenLayerSubBiome.SPECIAL);
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, 4, isLargeBiomes);
}
}
GenLayerTMCW biomeData = new GenLayerFunctions(worldSeed, 1000L, subBiomes, GenLayerFunctions.SMOOTH);
// Adds rivers; river size is 4 on Default and 5 on Medium and Large Biomes
GenLayerTMCW riverInit = new GenLayerRivers(worldSeed, 100L);
GenLayerTMCW magnify2 = GenLayerFunctions.magnify(worldSeed, 1000L, riverInit, Math.min(5, biomeSize) + 2);
GenLayerTMCW addRivers = new GenLayerRivers(worldSeed, 1L, magnify2, GenLayerRivers.ADDRIVERS);
GenLayerTMCW riverData = new GenLayerFunctions(worldSeed, 1000L, addRivers, GenLayerFunctions.SMOOTH);
// Combines river and biome data
GenLayerTMCW combined = new GenLayerRivers(worldSeed, 100L, biomeData, riverData);
// Adds riverbanks and also converts "virtual" biome IDs to real biome IDs (must be last stage other than voronoi zoom)
GenLayerTMCW unsmoothed = new GenLayerRivers(worldSeed, 100L, combined, debugBiomes);
GenLayerTMCW voronoi = new GenLayerFunctions(worldSeed, 10L, unsmoothed, debugBiomes);
return new GenLayerTMCW[] {unsmoothed, voronoi};
}
And no, not reskins of existing blocks/items/mobs/biomes but actual new content and changes to the very way the game works (say, making Mending negate the prior work penalty and making the cost to repair an item consider the enchantments (i.e. pre-1.8 anvil mechanics) and durability; or an "attack penalty" that only takes effect if you miss entirely or attack a mob while it is damage-immune from a previous player attack). Not even java's world customization (in any version that has supported it) is able to do anything at all like what I've done with world generation,- not even remotely close, nor can you do this without real mods:
(this fixes the last issue you quoted, and other mods go far beyond; "In my own tests FC2 could easily outperform everything else, including the W10 edition (MCPE/Bedrock)", and with none of its "cheats" to get better performance)
An actual example of my code - that's real code, not some command-based script:
(and yes, I really have written over 7,000 lines of code to generate caves; the vanilla cave and ravine generators are only around 1/20 the size. Even then, the entire source for TMCW is over 20 times this size (7.5 MB), some 150,000 lines at the same lines/KB; all of my mods are still in a folder named "cave mods" but only a small fraction is actually involved with cave generation, at least half is optimizations and bugfixes based on the size of the mod I use with my first world (3.84 MB), which only adds a handful of actual new content).
I did find a video where somebody used some huge fancy contraption to generate a cave in what appears to be a similar manner to the actual game when making "original" caves (a method called "perlin worms") but such a thing is absolutely not conducive for Survival worlds or just "enter some random seed and an entire world will infinitely generate with every imaginable permutation", and no doubt took far longer to program the command blocks/scripts than if created with actual code, which is also far, far faster as well (people still love to call Java "slow" because it is "interpreted" but it hasn't been for decades - but the game's command interpreter certainly is, and changing blocks as shown in the video is expensive for many reasons, such as having to recalculate light levels and notify adjacent blocks of a block update, which are not factors during the cave carving stage of world generation (the game doesn't even carve actual world data but data representing the terrain that will be used to initialize a chunk; as such, my cave generator can carve about 2,000 chunks per second):
A rendering of the underground of a world I played on, covering a 3328x3328 block area:
A larger rendering of the larger variants of "special caves" only:
A chart of the different types of caves, the largest of which are on par with the largest caves in 1.18+, if not even larger - requiring many millions of block changes based on the video, which required multiple "passes" in order to create a final product:
I suppose this is also possible with commands (biome-specific underground blocks, e.g. sand/sandstone in deserts) but it would require a lot of block replacements and have to work in real-time as the player explores, and require a lot of fancy block models and textures for things like "metadata ores" (in my mod the ore texture (the colored parts) is separated into an overlay which is placed over a base texture which is derived from stone, sandstone, hardened clay, snow, etc):
Even with all that, and much more, it only takes a few seconds to create a new world - even faster than vanilla 1.6.4, which is extremely simple by comparison, even 1.18's biome generator is extremely simple compared to mine (just look at any biome map, e.g. ChunkBase - just some big splotches of a few biomes with unnaturally smooth borders over large areas, not the intricate fractal shapes and patterns the old generator produced):
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Starting integrated minecraft server version 1.6.4
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Generating keypair
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Preparing start region for level 0
[18:22:05] 2023-04-15 18:22:05 [SERVER] [INFO] Preparing spawn area: 19%
[18:22:06] 2023-04-15 18:22:06 [SERVER] [INFO] Preparing spawn area: 58%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] Preparing spawn area: 99%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver[/127.0.0.1:0] logged in with entity id 137 at (-245.5, 70.0, -253.5)
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver joined the game
For comparison, this was 1.13 (the most recent version I've run for any reason) - 5 times slower for no explainable reason (this post claims that the biome generator alone became a staggering 35 times slower in 1.13, apparently just because of some new ocean types)::
An example of biome generation in 1.18+ and examples from TMCW (note that the scale of the 1.18 map is WAY larger; the examples from TMCW are 1024x1024 blocks each, or a 2x2 area of the grid on the 1.18 map):
Some zoomed-in views showing the complexity of biome placement, some biomes have 5+ concentric rings of biomes, like the "Rocky Mountains" shades of lighter gray to white) near the lower-right of the second image (vanilla, at least up to 1.17, only supported a single "edge" biome, thus why Extreme Hills Edge was removed when they added Stone Beach as an "edge" biome, while my generator can do both, an example is near the top of the first image (the gray biome). Even rivers have an "edge" in the form of "riverbank" biomes to smoothen out height variations, at the highest possible resolution (4x4 blocks per pixel on these maps, which is then fuzzed out to 1x1 blocks in a final step):
This is the code that constructs the "GenLayer chain", a sequence of layers which each perform some step in the biome generation process, from adding landmasses to biomes to rivers to everything else (incidentally, this also reveals some upcoming features, as seen by the world types):
public static GenLayerTMCW[] initializeAllBiomeGenerators(World par1World)
{
long worldSeed = par1World.getSeed();
WorldType worldType = par1World.getWorldInfo().getTerrainType();
// getBiomeSize returns 0 for Default and Oceanic, 1 for Medium Biomes, 2 for Large Biomes
int biomeSize = worldType.getBiomeSize() + 4;
// isLargeBiomes includes both Medium and Large Biomes
boolean isLargeBiomes = (worldType == WorldType.MEDIUM_BIOMES || worldType == WorldType.LARGE_BIOMES);
boolean isOceanic = (worldType == WorldType.OCEANIC);
// Using debug_biomes for the name of a non-Superflat world lays out all biomes in a grid with a scale of 4x4 chunks per
// biome (not affected by Large Biomes)
String worldName = par1World.getWorldInfo().getWorldName();
boolean debugBiomes = (worldName != null && worldName.toLowerCase().startsWith("debug_biomes"));
// Adds initial continents and island exclusion zones to oceans
GenLayerTMCW initLand = new GenLayerLandIslands(worldSeed, 1L, isOceanic);
GenLayerTMCW fuzzyZoom = new GenLayerFunctions(worldSeed, 2000L, initLand, GenLayerFunctions.FUZZYZOOM);
GenLayerTMCW landIslands1 = new GenLayerLandIslands(worldSeed, 1L, fuzzyZoom, GenLayerLandIslands.ISLANDS);
GenLayerTMCW zoom1 = new GenLayerFunctions(worldSeed, 2001L, landIslands1, GenLayerFunctions.ZOOM);
GenLayerTMCW landIslands2 = new GenLayerLandIslands(worldSeed, 2L, zoom1, GenLayerLandIslands.ISLANDS);
// Adds small landmasses to oceans (first step)
GenLayerTMCW oceanIslands1 = new GenLayerOceanIslands(worldSeed, 13L, landIslands2, 8, 0);
GenLayerTMCW zoom2 = new GenLayerFunctions(worldSeed, 2002L, oceanIslands1, GenLayerFunctions.ZOOM);
// SPAWN_ISLANDS makes sure that there is always land within about 1000 blocks of the origin (added in two stages, Large
// Biomes reduces size of area so it isn't so large)
int mode = GenLayerLandIslands.SPAWN_ISLANDS | (isOceanic ? GenLayerLandIslands.OCEANIC1 : (isLargeBiomes ? 16 : 0));
GenLayerTMCW landIslands3 = new GenLayerLandIslands(worldSeed, 3L, zoom2, mode);
// Adds small landmasses to oceans (1/4 the size of the first step). These islands may also have climate zones. Also
// adds ocean variants.
GenLayerTMCW oceanIslands2 = new GenLayerOceanIslands(worldSeed, 31L, landIslands3, 16, isOceanic ? 3 : 2);
GenLayerTMCW zoom3 = new GenLayerFunctions(worldSeed, 2003L, oceanIslands2, GenLayerFunctions.ZOOM);
// Note that only Large Biomes changes the size of the spawn continent
mode = GenLayerLandIslands.SPAWN_ISLANDS | (isOceanic ? GenLayerLandIslands.OCEANIC2 : (worldType == WorldType.LARGE_BIOMES ? 32 : 0));
GenLayerTMCW landIslands4 = new GenLayerLandIslands(worldSeed, 4L, zoom3, mode);
// Adds Mushroom Islands as well as small islands
GenLayerTMCW mushroom = new GenLayerLandIslands(worldSeed, 5L, landIslands4, GenLayerLandIslands.SMALL_ISLANDS);
// Adds initial seeds for climate zones
GenLayerTMCW climateInit = new GenLayerClimateZones(worldSeed, 196L, mushroom, GenLayerClimateZones.INIT);
// Grows climate zones
GenLayerTMCW climateGrow1 = new GenLayerClimateZones(worldSeed, 197L, climateInit, GenLayerClimateZones.GROW1);
GenLayerTMCW climateGrow2 = new GenLayerClimateZones(worldSeed, 198L, climateGrow1, GenLayerClimateZones.GROW2);
// Separates climate zones (including those added by GenLayerOceanIslands)
GenLayerTMCW climateSeparate = new GenLayerClimateZones(worldSeed, 199L, climateGrow2, GenLayerClimateZones.SEPARATE);
// Adds biomes
GenLayerTMCW biomes = new GenLayerBiomes(worldSeed, 200L, climateSeparate, !isLargeBiomes);
GenLayerTMCW magnify = GenLayerFunctions.magnify(worldSeed, 1000L, biomes, 2);
// Adds x-hills and other sub-biomes
GenLayerTMCW subBiomes = new GenLayerSubBiome(worldSeed, 1000L, magnify, GenLayerSubBiome.HILLS);
// oasisIndex is 1 for default and 3 for large biomes, ensuring that oasis have the same size and spacing; zoom level is
// such that the coordinates (par1, par2 of getInts) correspond to 1 chunk
int oasisIndex = biomeSize - 3;
for (int i = 0; i < biomeSize; ++i)
{
subBiomes = new GenLayerFunctions(worldSeed, (long)(1000 + i), subBiomes, GenLayerFunctions.ZOOM);
switch (i)
{
case 0:
subBiomes = new GenLayerLandIslands(worldSeed, 3L, subBiomes, GenLayerLandIslands.ISLANDS);
break;
case 1:
// Four stages of edge generation, which allows things like Extreme Hills Edge + beaches. Stage 0 mainly adds
// beaches while stages 1-3 add various edge layers
for (int j = 0; j < 4; ++j)
{
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, j, isLargeBiomes);
}
// Adds in small sub-biomes (e.g. "rivers" in jungles and swamps)
subBiomes = new GenLayerSubBiome(worldSeed, 1000L, subBiomes, GenLayerSubBiome.RIVERS);
break;
case 2:
// Adds in "mini-beaches" around tropical ocean islands and other half-size edge biomes
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, 5, isLargeBiomes);
break;
default:
break;
}
// Adds features whose size is independent of biome size, such as Oasis. Also adds Rocky Mountains Summit, which
// fills in any remaining space after other layers have been added so it is not affected.
if (i == oasisIndex)
{
subBiomes = new GenLayerSubBiome(worldSeed, 47L, subBiomes, GenLayerSubBiome.SPECIAL);
subBiomes = new GenLayerEdge(worldSeed, 37L, subBiomes, 4, isLargeBiomes);
}
}
GenLayerTMCW biomeData = new GenLayerFunctions(worldSeed, 1000L, subBiomes, GenLayerFunctions.SMOOTH);
// Adds rivers; river size is 4 on Default and 5 on Medium and Large Biomes
GenLayerTMCW riverInit = new GenLayerRivers(worldSeed, 100L);
GenLayerTMCW magnify2 = GenLayerFunctions.magnify(worldSeed, 1000L, riverInit, Math.min(5, biomeSize) + 2);
GenLayerTMCW addRivers = new GenLayerRivers(worldSeed, 1L, magnify2, GenLayerRivers.ADDRIVERS);
GenLayerTMCW riverData = new GenLayerFunctions(worldSeed, 1000L, addRivers, GenLayerFunctions.SMOOTH);
// Combines river and biome data
GenLayerTMCW combined = new GenLayerRivers(worldSeed, 100L, biomeData, riverData);
// Adds riverbanks and also converts "virtual" biome IDs to real biome IDs (must be last stage other than voronoi zoom)
GenLayerTMCW unsmoothed = new GenLayerRivers(worldSeed, 100L, combined, debugBiomes);
GenLayerTMCW voronoi = new GenLayerFunctions(worldSeed, 10L, unsmoothed, debugBiomes);
return new GenLayerTMCW[] {unsmoothed, voronoi};
}
I haven't played the bedrock edition for over a year, but I know there are mod sharing websites out there. Personaly, I have never played "moded" survival. I understanded diffrence in mods. Changing existing item into mod Item and adding new Item isn't the same. Ok.
This matters greatly to me. Multiplayer games are exceptions for obvious reasons, but being unable to pause in a singleplayer game is such a serious lack of a very basic feature for a modern game. A game lacking a very basic feature makes it fundamentally flawed in a major way in my eyes. There's a lot of reasons I'd never play Bedrock, even without this being an issue, but this is a major one.
Java, to its (dis)credit, is missing its own basic thing I see as a flaw to be lacking for a (PC) game, and that is lack of native anti-aliasing support. The game looks atrocious without it, especially in older versions that also lack mip-mapping (and I say that as someone who doesn't like mip-maps because while they clear up one issue, they don't entirely solve it and introduce another, but the lack of mip-maps in older versions plus no anti-aliasing has that infamous "noisy and looks bad" look that older screenshots [at least ones lacking anti-aliasing] all have). This has also been considered a rather basic feature for a PC game to have for decades, and while this is one thing many other games also don't offer, I similar see them as flawed for it. Minecraft Java joins them.
But the former is a major functionality issue that very few games lack, and the latter is a visual one, which is still very important to me personally, but at least other ways to achieve it (such as with OptiFine or shaders). It shouldn't need those things to achieve it, no (and they both have their drawbacks), but they do at least exist. On the other hand, want to momentarily stop playing Bedrock? You need to either ensure you are safe (or spend the time and effort making a temporary safe room, which I've seen are things for Bedrock players and it shows how absurd this is), or close the world and reload it. Just because it can't pause.
Java, and the people who say bedrock are either people who have a vendetta against java for one reason or another, or have never played java.
There are a plethora of reasons why java is better, but I'll just go over a few:
Microtransactions: the demographic difference between java and bedrock is as you'd expect, knowing bedrock is present on every mobile device and game console on god's green earth. Children in the 21st century own a game console or a smart device, and if they don't then they certainly don't own a computer. Microsoft knows the bedrock demographic is primarily consisting of children, and that java has a more late teenage/adult playerbase. In microsoft's eyes, it's a no brainer to add microtransactions for every little thing (including passes to play certain servers. are you kidding me microsoft? how do you allow this?) knowing these kids will steal mommy and daddy's credit cards to pay for the cool $10 dinosaur pet cosmetic that follows you around in the lobby and does absolutely nothing else. Now you may be thinking, "but java has these cosmetics too!". Yes, they do, but here's the thing: microsoft/mojang was never involved in these transactions and never made any money from it. They see that there's money to be made on bedrock, so they add their own proprietary currency and force featured servers to use it, which brings me to my second point.
Featured servers: this kind of goes hand in hand with my last point. If you want to host a successful server on bedrock, you better have a lot of time and money at your disposal. In order to run a successful bedrock server, you're gonna need to be partnered with microsoft to make it on to the feature server list, otherwise the featured servers will always have the upperhand in terms of reaching an audience who is mainly comprised of children. Seriously, why would a 10 year old go on a server list website and type in an ip and port when they have all these cash grab servers at their disposal? This especially becomes a problem because with these servers being the most popular, the only way you can run a successful minecraft server is by having microsoft take a cut of your purchases, and microsoft knows this and it's one of the reasons the featured servers list is in the game.
Modding ability: there is none. This one's pretty cut and dry, bedrock technically has some datapacks and stuff that changes how the game behaves, but let's face it: java is the definitive platform for modding and that will never change, and the funny thing is that recently I have noticed posts about how people have found aether mod ripoffs IN THE MINECRAFT MARKETPLACE FOR SALE! I haven't kept up with the story much, but I certainly hope that mod is gone because I read it was done without the original creator's permission. Mind you the original mod is free, here's the link, make sure you show the original dev some love, and don't pay a dime to the ripoff devs on the minecraft marketplace.
Game breaking glitches: this one's a pretty known one, and I feel like bedrock is known for this at this point (hence the nickname "bugrock"), but this game is beyond broken from what it seems (here's an example). Now I don't actually play the game, but the wondeful people of the minecraft subreddit sure do, and they seem to be quick with their clipping software when some unfortunate glitch manages to kill them while they are in their 3 year old hardcore world. Now I can understand games being buggy, especially in bedrock's case where the game is written in an entirely different language than java (which is actually one of the things I like better than java), but these types of gamebreaking bugs being persistent and making it through countless preview versions of the game? And even if they are patched, how is it that bedrock is the only version of the game with these types of issues? Not once have I seen a post on that sub about a guy standing in his place and dying for no reason, and have the platform he was playing on be java. Not a single time. So when you weigh it all up, you have bedrock, which performs much better but you risk losing everything in an instant to game breaking bugs, or java, runs slightly worse but it's a great experience, the only things that can kill you are intentional game design.
I've said my piece, and I think it's pretty clear where I stand. I think microsoft should completely reevaluate how bedrock is being developed, and fix atleast some of the issues outlined here. While I highly doubt they will do that because they have no reason to, I think it would be neat if they atleast thought about what's best for the player for once (who am i kidding, we're talking about microsoft here).
The sad reality is that while I and so many other think java is the best version of the game, I highly doubt microsoft thinks the same since they get that one initial purchase and nothing else, whereas with bedrock they keep getting money even after the player bought the game. This leads me to believe java will be sunset in the coming years, and there's likely nothing we can do to stop it. It's a tough pill to swallow, but from microsoft's perspective, they have no reason to keep supporting java anymore. It has a dying playerbase, and they make less money. They did notice however that java sales vastly outranked bedrock sales on pc, so what they did was increased the price of the game to $30, and bundled the games together even though they knew people were only going to play one game. An incredible business move, because they know people are still going to buy it for that upcharge because they feel like they're getting a deal (and they have no choice now).
Morale of the story, don't play bedrock. Don't give microsoft any more of a reason to discontinue java than they do already. The future looks bleak, so enjoy it while you can.
The fact that Microsoft supports bedrock is obvious. But I don't think they're going to completely remove java. Last year there was a thing where all java players got the bedrock edition for free (and vice versa). If they wanted to remove Java, they wouldn't be giving it away for free.
If they wanted to remove Java, they wouldn't be giving it away for free.
This is not why they did it at all, they were thinking about the future here for the players that don't have minecraft on pc at all. When doing this, they also raised the price to $30. Naturally, java was getting far more sales between the two versions. So why not capitalize on that and raise the price by makng it so the user *needs* to buy both games, even if they only want one? They hate java, but they're still gonna capitalize on it's popularity among pc players in one way or another.
Yeah no working pause button on bedrock is super stupid. Bedrock takes so long to load as is so I don't want to exit to menu each time I hit Esc
Does it? I figured it would be faster than Java if anything, given how much better Bedrock should be at chunk loading, so I was sort of expecting someone to say it's not a big deal to close and reload the world as a justification for why no pause was fine. As it is, doing this in Java already isn't a very long process but that's still no excuse for no pause, which is still much faster and a basic expected feature for any single player game.
I know this may sound like a shock, but neither, I prefer Console Legacy as it had alot of features that made managing a world fun and easy such as
Reset The Nether (Something Current Gen should've had due to 1.16 and 1.20)
Reset The End
Double Speed Rail Systems
Limited World Sizes (Not everybody wants a world that is Gigabytes in size) of Classic (864 X 864), Small (1000 X 1000), Medium (3000 X 3000), and Large (5000 X 5000)
Finite Overworld Resources (Which teaches players how to carefully utilize their resources)
Increased Structure Generation (You can find a Woodland Mansion without having to travel tens of thousands of blocks)
Smaller Biome Sizes
Tutorial Worlds created by 4J Studios
User friendly GUI
Controller Support by Default (No having to go through Steam, reWASD, or some other weird application)
Mini Games created by 4J Studios
Being able to Pause a Single Player Game by Default (Looking at Bedrock Edition for not having this)
Being able to disable Autosave within the options (Some may consider this being Cheating)
Nether Wart growing randomly out in the Nether Waste
Blazes dropping Glowstone Dust as well as Blaze Rods
Landscape Generation that was amazing and would grab the player's attention (Especially before Title Update 22)
Custom Superflats
Before Title Update 46, C418-Floating Trees was always the first song to play on the Title Screen
Some of these features would help the Current Gen versions of the game out alot.
I was waiting to hear the opinions and reasons of someone who played Bedrock to do more than add another reply saying "Java" and then you didn't even say Bedrock, haha.
I wonder what the increased rail speed was for.
The first two can be achieved on Java (and maybe Bedrock on PC?) but it may require some care. You just delete the associated folder in the save file holding those dimensions.
The limited world size as well as the next few you mention was because the consoles of the time were simply too limited (same reason Bedrock has a lot of "does less things than Java" these days too).
As an explorer, I'd dislike finite worlds (especially of incredibly tiny sizes like that) or finite resources. I mean they're technically finite even with the world sizes we have now but they're practically infinite given how large they are. Interestingly, a few of the things you mentioned liking (blazes dropping glowstone and nether warts being out in the nether) seem like they were specifically to counteract the limited world size and finite resources, so you say you like finite resources but then say you liked some of the things turning finite resources renewable. I'd definitely dislike markedly smaller biomes. It would also force too many things to need to be way common and close together. I've seen images of multiple woodland mansions on older console versions and that's seems silly. All in all, for someone who wants to stick to a world very long term and build it way up over time and explore a lot, that all sounds bad.
Looking up TU22 for the Xbox 360, it seems this was based on Java 1.6, so terrain generation shouldn't have changed with it (?), but I'm aware the console versions mixed and matched a bit. It doesn't mention anything about a change though. The only terrain generation change that happened around then on the Java side was the following 1.7 so I'm presuming this is what you're referring to (though it wasn't until TU25 that things were based on 1.7 so I'm not sure). In either case, that terrain generation change had mixed reception. The aggressive climate zoning led to repetitive regions (the massive amount of new biomes it brought was the good part), but beta 1.8 to release 1.6 did not have what most would call amazing generation that got your attention either. That period of time was criticized by beta and older players for having generation that ruined variety and the desire to explore. I believe the very early Xbox 360 versions would have had the beta terrain generation (despite the game already being well into release versions by the time).
The limited world size as well as the next few you mention was because the consoles of the time were simply too limited (same reason Bedrock has a lot of "does less things than Java" these days too).
There were other weird restrictions like a global limit on the number of various mobs/entities in the world (not to be confused with the current mob caps which only limit natural spawning in loaded chunks; you couldn't even breed more passive mobs once the limit was reached), which I believe came down to the fact that the entire world was always loaded, as otherwise the disk storage space (which is the only other reason for a limited world size) required to store entities is negligible (e.g. the region file that contains my main base hasn't increased in size in many years despite the addition of and filling of vast numbers of chests, each of which contains a lot more data than a mob entity; the lack of any change is because chunks are aligned to 4 KB "sectors" within a region file, much like an actual file system, and none have grown past a 4 KB boundary. The data is also compressed and many instances of the same mob (or in my case, chest tile entity, many of which have the same content), usually only differing in position, will compress well):
Also, these limits were removed when consoles got updated to Bedrock Edition so it isn't really the consoles themselves but how the game was structured (I believe I did read somewhere that they kept the entire world loaded, although it may have been more complicated than that since you could update and previously unexplored areas would have new features).
In any case, the size of a world depends on how much you explore; my largest world is about 715 MB (Overworld only; the Nether is only 4.53 MB and the End doesn't exist as I deleted it (and the original Nether) years ago and never returned, but it is only 1.73 MB on another world) and averages about 5 KB per chunk; to get "gigabytes" you'd need to explore at least 200,000 chunks, or a 7155x7155 area (I know, playstyles matter but it would take me on the order of 2,000 sessions or 7,000 hours to explore that much. I also blame the world generation in newer versions that makes you have to travel so far to find anything, elytra also make it possible to travel thousands of blocks in minutes, and a higher render distance greatly increases the area loaded (this has to be quite significant on Bedrock; 64 chunks loads an entire level 4 map; in this regard the game could benefit from a level of detail style renderer which renders "fake chunks" past a much smaller loaded area).
to get "gigabytes" you'd need to explore at least 200,000 chunks, or a 7155x7155 area
Not quite a gigabyte because I haven't filled in the big continent yet. But most of my worlds get to a gigabyte pretty quickly.GigabyteS, plural? I've had two, although one was for the "To the Edge of the World" journal, which was obviously a special case.
I actually started playing Minecraft on Pocket Edition, with its pocket dimension sized worlds (and in those long ago days it did stretch the resources of a lot of phones). I'd go nuts on one now, though.
Rollback Post to RevisionRollBack
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!
Do you think Minecraft Java version is better or bedrock ?
Please share your opinion
One sec.
(puts on Fire Prot IV boots)
(puts on Fire Prot IV leggings)
(puts on Fire Prot IV chestplate)
(puts on Fire Prot IV helm)
(drinks 8-minute fire resistance potion)
OK this is one thing about which I have a strong opinion. Bedrock is a vehicle to milk money out of children via microtransactions, and I think its entire ecosystem is manipulative, scummy and vile. Wouldn't touch it under any circumstances, and they tried pretty hard to get me to do so during the migration period. I don't think I can even get the migrator cape (not that I'd wear it) because I adamantly refused to download Win10 Minecraft even when it was free.
Journals - Gregtech New Horizons | Tree Spirit Challenge [current]
Java is better for one simple reason: you can use mods (I mean actual mods, directly editing the game's code, not "add-ons" or "resource/data/behavior packs") and play on whatever version you like, as I've been doing for a decade. Even better, mods can rectify many of the game's flaws, while Bedrock players just have to put up with them (I know of at least one player who has said they are quitting because of upcoming changes).
Aside from that, you posted this in the Java Edition section so the results will be biased, same for if you posted it in the "Bedrock Edition" section (or what they want you to just call "Minecraft"; the game I play is still called just that, this was before Microsoft bought Mojang and they no doubt renamed the editions to emphasize Bedrock as the preferred version)..
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Java 100%
Java Edition is heavily modifiable. The modding scene for Minecraft Java is probably one of, if not the biggest modding scene I've seen for any game. There are thousands upon thousands of mods for you to download and play around with. And thanks to the community, it is possible to decompile and deobfuscate the .jar file for Minecraft, meaning that you can directly edit the game's code.
On top of that, you have maps, the custom worlds that players create for others to play in. While Bedrock Editions does have maps and "addons" (basically Bedrock's version of mods), you often need to pay to have access to them. Compared to Java, where, as far as I know, no paywall exists for any maps or mods (if there are any, they're very obscure)
There's also the fact that you can play on any version of the game you want with Java Edition. Alphas, betas, you name it. You're not stuck on the latest version of the game, which is nice since older versions have a totally different feel to them. Bedrock? You're stuck playing the latest version of the game, whether you like it or not.
I just want to add on to why I think Bedrock is preferred. We all know it, it's for money. Bedrock is available on not only PC, but also consoles and mobile devices, which is most likely where children are going to be playing the game on (since most children typically don't have their own computer). Children are a very easy demographic to milk cash from. Java Edition, running off of Java (crazy, I know), is stuck to only running on PCs, so obviously Microsoft would rather market the version of the game that gets them more money over the less profitable one. Unfortunate, but that's just how we have to roll these days.
Another biased answer for Java from me, but you're asking in not only the Java forum specifically, but I would imagine the Minecraft forums as a whole (especially most of the regulars) probably leans more towards Java, given its history. Ask elsewhere and it might not be as biased, but I imagine Java still might be over-represented relative to install base regardless of where you ask for one reason; it's probably the more preferred version. Bedrock definitely has more raw players, but consoles and mobiles also outnumber consumer home PCs. And those former things either only run Bedrock (or their deprecated platform specific editions). Yes, I'm aware Java can be run on mobiles but that's a very niche thing. So it's mostly only the PC that has access to Java and Bedrock easily. And on this single platform that can do both, Java probably tends to be far preferred. Most people who have a PC and have the choice of the two probably lean towards Java unless they explicitly have a need for Bedrock, namely to play with other Bedrock players.
Now Bedrock is fine for what it is, and I have no qualms with those who enjoy it (especially if its out of necessity and it is that or nothing), but I'd never prefer it over Java it in its current state, and here's why.
1. I'm too invested in Java. I'm not even deep in mods but that still matters to me. All the little things add up. All the tools and such I've used over the years, resource packs, shaders, and so on. I have worlds going back over a decade in one case, and I've heard Bedrock doesn't handle larger worlds too gracefully.
2. I've been playing hardcore lately. Bedrock lacks this. Sure, I can try and imitate it, but...
3. I've heard Bedrock is far more buggy, and while Java has issues, it seems worse on Bedrock, like "random" damage, random death, and so on, and these put me off. In nearly a dozen years on this game, my major issues with Java have been few and far between (having some chunks reset due to the way 1.13+ initially handled a lighting value was probably the most major I can come up with).
4. Bedrock can't pause the game in single-player. This can not be overstated; it's a massive issue. It's legitimately a flaw that you can't pause single player worlds. Yes, I know why it happens. No, that doesn't excuse it. Being unable to pause your own single-player only instance is nonsense. In Java, you can't do this when open to LAN either, but you have to instruct it to be run in that state to begin with (and generally you'd only do it when wanting to turn it from single-player into multi-player, which is where there is an expectation that you can't pause).
5. Bedrock has forced version updates. This is one thing to a point with things like operating systems, but a game that you buy at a given point should be something you choose when/if it updates afterwards. The whole "better together" comes with drawbacks.
6. The different combat would not be preferred by me (I'm not a spam-click enjoying PVP player). Until/if further combat changes come, I prefer those of Java.
7. There's probably a ton of intangible small stuff (some of them possibly being Bedrock limiting what it processes to be more performant), although I don't have any big ones in my mind at the moment.
8. I presume all of the "uncanny valley" issues from playing Java since the start would detract from things for me. This one of course would work in reverse for anyone who has played Bedrock from the start, but I've only ever played Java so for me the other one would possibly feel off. Or maybe not. I don't know. But the above are reasons enough.
The main perk I see to Bedrock, the "improved performance", is largely not an issue for me a swell. That especially seems to extend to chunk generation/loading/rendering (allowing for higher render distances, smoothly), and while that is where Java probably needs performance improvements the most in my experience, this benefit is muted for me because...
A. I have a decent CPU, so while Java will always be Java and have it's snags, it generally performs smooth for me outside certain conditions (Bedrock has conditions which bring it down too though).
B. I find very high render distances off-putting visually anyway. Being able to see that many biome transitions looks bad to me. This is coming from someone who has tended to prefer very high (for Java) render distances throughout my time with the game. It's nice... to a point. I used to play on 32 way back when. But 48? 64? 90-whatever? That seems absurd. Not knocking anyone who enjoys it, but I don't see the point, to the one big benefit of Bedrock ends up muted for me as a result. It's still a benefit, mind you... but not as much of one.
Reason 1, 4, and 5 are probably the primary ones, but they all add up.
I agree with you
Java is better. That's for sure. But I disagree with the people above on some of the arguments.
Bedrock has mods and they are free. I don't understand how it differs from java.
I'm agree, but it isn't very matter.
I'm agree, Java pvp is better.
Java edition hasn't this(performance), but it should.
Sure, show me a mod that can do all of what this mod does:
TheMasterCaver's World
And no, not reskins of existing blocks/items/mobs/biomes but actual new content and changes to the very way the game works (say, making Mending negate the prior work penalty and making the cost to repair an item consider the enchantments (i.e. pre-1.8 anvil mechanics) and durability; or an "attack penalty" that only takes effect if you miss entirely or attack a mob while it is damage-immune from a previous player attack). Not even java's world customization (in any version that has supported it) is able to do anything at all like what I've done with world generation,- not even remotely close, nor can you do this without real mods:
(this fixes the last issue you quoted, and other mods go far beyond; "In my own tests FC2 could easily outperform everything else, including the W10 edition (MCPE/Bedrock)", and with none of its "cheats" to get better performance)
An actual example of my code - that's real code, not some command-based script:
https://www.dropbox.com/s/ruednq7arb48wbw/MapGenCavesRavines.java?dl=0
(and yes, I really have written over 7,000 lines of code to generate caves; the vanilla cave and ravine generators are only around 1/20 the size. Even then, the entire source for TMCW is over 20 times this size (7.5 MB), some 150,000 lines at the same lines/KB; all of my mods are still in a folder named "cave mods" but only a small fraction is actually involved with cave generation, at least half is optimizations and bugfixes based on the size of the mod I use with my first world (3.84 MB), which only adds a handful of actual new content).
I did find a video where somebody used some huge fancy contraption to generate a cave in what appears to be a similar manner to the actual game when making "original" caves (a method called "perlin worms") but such a thing is absolutely not conducive for Survival worlds or just "enter some random seed and an entire world will infinitely generate with every imaginable permutation", and no doubt took far longer to program the command blocks/scripts than if created with actual code, which is also far, far faster as well (people still love to call Java "slow" because it is "interpreted" but it hasn't been for decades - but the game's command interpreter certainly is, and changing blocks as shown in the video is expensive for many reasons, such as having to recalculate light levels and notify adjacent blocks of a block update, which are not factors during the cave carving stage of world generation (the game doesn't even carve actual world data but data representing the terrain that will be used to initialize a chunk; as such, my cave generator can carve about 2,000 chunks per second):
https://www.reddit.com/r/MinecraftCommands/comments/ty3od4/how_make_custom_cave_generation_in_minecraft/
A rendering of the underground of a world I played on, covering a 3328x3328 block area:
A larger rendering of the larger variants of "special caves" only:
A chart of the different types of caves, the largest of which are on par with the largest caves in 1.18+, if not even larger - requiring many millions of block changes based on the video, which required multiple "passes" in order to create a final product:
I suppose this is also possible with commands (biome-specific underground blocks, e.g. sand/sandstone in deserts) but it would require a lot of block replacements and have to work in real-time as the player explores, and require a lot of fancy block models and textures for things like "metadata ores" (in my mod the ore texture (the colored parts) is separated into an overlay which is placed over a base texture which is derived from stone, sandstone, hardened clay, snow, etc):
Even with all that, and much more, it only takes a few seconds to create a new world - even faster than vanilla 1.6.4, which is extremely simple by comparison, even 1.18's biome generator is extremely simple compared to mine (just look at any biome map, e.g. ChunkBase - just some big splotches of a few biomes with unnaturally smooth borders over large areas, not the intricate fractal shapes and patterns the old generator produced):
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Generating keypair
[18:22:04] 2023-04-15 18:22:04 [SERVER] [INFO] Preparing start region for level 0
[18:22:05] 2023-04-15 18:22:05 [SERVER] [INFO] Preparing spawn area: 19%
[18:22:06] 2023-04-15 18:22:06 [SERVER] [INFO] Preparing spawn area: 58%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] Preparing spawn area: 99%
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver[/127.0.0.1:0] logged in with entity id 137 at (-245.5, 70.0, -253.5)
[18:22:07] 2023-04-15 18:22:07 [SERVER] [INFO] TheMasterCaver joined the game
For comparison, this was 1.13 (the most recent version I've run for any reason) - 5 times slower for no explainable reason (this post claims that the biome generator alone became a staggering 35 times slower in 1.13, apparently just because of some new ocean types)::
[17:55:31] [Server thread/INFO]: Generating keypair
[17:55:31] [Server thread/INFO]: Found new data pack vanilla, loading it automatically
[17:55:31] [Server thread/INFO]: Reloading ResourceManager: Default
[17:55:32] [Server thread/INFO]: Loaded 524 recipes
[17:55:33] [Server thread/INFO]: Loaded 571 advancements
[17:55:36] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[17:55:37] [Server thread/INFO]: Preparing spawn area: 0%
[17:55:37] [Server thread/INFO]: Preparing spawn area: 4%
[17:55:38] [Server thread/INFO]: Preparing spawn area: 8%
[17:55:38] [Server thread/INFO]: Preparing spawn area: 12%
[17:55:38] [Server thread/INFO]: Preparing spawn area: 16%
[17:55:39] [Server thread/INFO]: Preparing spawn area: 20%
[17:55:39] [Server thread/INFO]: Preparing spawn area: 24%
[17:55:39] [Server thread/INFO]: Preparing spawn area: 28%
[17:55:40] [Server thread/INFO]: Preparing spawn area: 32%
[17:55:40] [Server thread/INFO]: Preparing spawn area: 36%
[17:55:40] [Server thread/INFO]: Preparing spawn area: 40%
[17:55:40] [Server thread/INFO]: Preparing spawn area: 44%
[17:55:41] [Server thread/INFO]: Preparing spawn area: 48%
[17:55:41] [Server thread/INFO]: Preparing spawn area: 52%
[17:55:41] [Server thread/INFO]: Preparing spawn area: 56%
[17:55:41] [Server thread/INFO]: Preparing spawn area: 60%
[17:55:42] [Server thread/INFO]: Preparing spawn area: 64%
[17:55:42] [Server thread/INFO]: Preparing spawn area: 68%
[17:55:42] [Server thread/INFO]: Preparing spawn area: 72%
[17:55:43] [Server thread/INFO]: Preparing spawn area: 76%
[17:55:43] [Server thread/INFO]: Preparing spawn area: 80%
[17:55:43] [Server thread/INFO]: Preparing spawn area: 84%
[17:55:43] [Server thread/INFO]: Preparing spawn area: 88%
[17:55:44] [Server thread/INFO]: Preparing spawn area: 92%
[17:55:44] [Server thread/INFO]: Preparing spawn area: 96%
[17:55:44] [Server thread/INFO]: Preparing spawn area: 100%
[17:55:44] [Server thread/INFO]: Time elapsed: 8520 ms
[17:55:45] [Server thread/INFO]: Changing view distance to 12, from 10
[17:55:46] [Server thread/INFO]: TheMasterCaver[local:E:c0336e00] logged in with entity id 754 at (58.5, 71.0, -104.5)
[17:55:46] [Server thread/INFO]: TheMasterCaver joined the game
An example of biome generation in 1.18+ and examples from TMCW (note that the scale of the 1.18 map is WAY larger; the examples from TMCW are 1024x1024 blocks each, or a 2x2 area of the grid on the 1.18 map):
Some zoomed-in views showing the complexity of biome placement, some biomes have 5+ concentric rings of biomes, like the "Rocky Mountains" shades of lighter gray to white) near the lower-right of the second image (vanilla, at least up to 1.17, only supported a single "edge" biome, thus why Extreme Hills Edge was removed when they added Stone Beach as an "edge" biome, while my generator can do both, an example is near the top of the first image (the gray biome). Even rivers have an "edge" in the form of "riverbank" biomes to smoothen out height variations, at the highest possible resolution (4x4 blocks per pixel on these maps, which is then fuzzed out to 1x1 blocks in a final step):
This is the code that constructs the "GenLayer chain", a sequence of layers which each perform some step in the biome generation process, from adding landmasses to biomes to rivers to everything else (incidentally, this also reveals some upcoming features, as seen by the world types):
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
I haven't played the bedrock edition for over a year, but I know there are mod sharing websites out there. Personaly, I have never played "moded" survival. I understanded diffrence in mods. Changing existing item into mod Item and adding new Item isn't the same. Ok.
This matters greatly to me. Multiplayer games are exceptions for obvious reasons, but being unable to pause in a singleplayer game is such a serious lack of a very basic feature for a modern game. A game lacking a very basic feature makes it fundamentally flawed in a major way in my eyes. There's a lot of reasons I'd never play Bedrock, even without this being an issue, but this is a major one.
Java, to its (dis)credit, is missing its own basic thing I see as a flaw to be lacking for a (PC) game, and that is lack of native anti-aliasing support. The game looks atrocious without it, especially in older versions that also lack mip-mapping (and I say that as someone who doesn't like mip-maps because while they clear up one issue, they don't entirely solve it and introduce another, but the lack of mip-maps in older versions plus no anti-aliasing has that infamous "noisy and looks bad" look that older screenshots [at least ones lacking anti-aliasing] all have). This has also been considered a rather basic feature for a PC game to have for decades, and while this is one thing many other games also don't offer, I similar see them as flawed for it. Minecraft Java joins them.
But the former is a major functionality issue that very few games lack, and the latter is a visual one, which is still very important to me personally, but at least other ways to achieve it (such as with OptiFine or shaders). It shouldn't need those things to achieve it, no (and they both have their drawbacks), but they do at least exist. On the other hand, want to momentarily stop playing Bedrock? You need to either ensure you are safe (or spend the time and effort making a temporary safe room, which I've seen are things for Bedrock players and it shows how absurd this is), or close the world and reload it. Just because it can't pause.
Java, and the people who say bedrock are either people who have a vendetta against java for one reason or another, or have never played java.
There are a plethora of reasons why java is better, but I'll just go over a few:
I've said my piece, and I think it's pretty clear where I stand. I think microsoft should completely reevaluate how bedrock is being developed, and fix atleast some of the issues outlined here. While I highly doubt they will do that because they have no reason to, I think it would be neat if they atleast thought about what's best for the player for once (who am i kidding, we're talking about microsoft here).
The sad reality is that while I and so many other think java is the best version of the game, I highly doubt microsoft thinks the same since they get that one initial purchase and nothing else, whereas with bedrock they keep getting money even after the player bought the game. This leads me to believe java will be sunset in the coming years, and there's likely nothing we can do to stop it. It's a tough pill to swallow, but from microsoft's perspective, they have no reason to keep supporting java anymore. It has a dying playerbase, and they make less money. They did notice however that java sales vastly outranked bedrock sales on pc, so what they did was increased the price of the game to $30, and bundled the games together even though they knew people were only going to play one game. An incredible business move, because they know people are still going to buy it for that upcharge because they feel like they're getting a deal (and they have no choice now).
Morale of the story, don't play bedrock. Don't give microsoft any more of a reason to discontinue java than they do already. The future looks bleak, so enjoy it while you can.
Java > bedrock
The fact that Microsoft supports bedrock is obvious. But I don't think they're going to completely remove java. Last year there was a thing where all java players got the bedrock edition for free (and vice versa). If they wanted to remove Java, they wouldn't be giving it away for free.
This is not why they did it at all, they were thinking about the future here for the players that don't have minecraft on pc at all. When doing this, they also raised the price to $30. Naturally, java was getting far more sales between the two versions. So why not capitalize on that and raise the price by makng it so the user *needs* to buy both games, even if they only want one? They hate java, but they're still gonna capitalize on it's popularity among pc players in one way or another.
Yeah no working pause button on bedrock is super stupid. Bedrock takes so long to load as is so I don't want to exit to menu each time I hit Esc
Does it? I figured it would be faster than Java if anything, given how much better Bedrock should be at chunk loading, so I was sort of expecting someone to say it's not a big deal to close and reload the world as a justification for why no pause was fine. As it is, doing this in Java already isn't a very long process but that's still no excuse for no pause, which is still much faster and a basic expected feature for any single player game.
I know this may sound like a shock, but neither, I prefer Console Legacy as it had alot of features that made managing a world fun and easy such as
Some of these features would help the Current Gen versions of the game out alot.
I was waiting to hear the opinions and reasons of someone who played Bedrock to do more than add another reply saying "Java" and then you didn't even say Bedrock, haha.
I wonder what the increased rail speed was for.
The first two can be achieved on Java (and maybe Bedrock on PC?) but it may require some care. You just delete the associated folder in the save file holding those dimensions.
The limited world size as well as the next few you mention was because the consoles of the time were simply too limited (same reason Bedrock has a lot of "does less things than Java" these days too).
As an explorer, I'd dislike finite worlds (especially of incredibly tiny sizes like that) or finite resources. I mean they're technically finite even with the world sizes we have now but they're practically infinite given how large they are. Interestingly, a few of the things you mentioned liking (blazes dropping glowstone and nether warts being out in the nether) seem like they were specifically to counteract the limited world size and finite resources, so you say you like finite resources but then say you liked some of the things turning finite resources renewable. I'd definitely dislike markedly smaller biomes. It would also force too many things to need to be way common and close together. I've seen images of multiple woodland mansions on older console versions and that's seems silly. All in all, for someone who wants to stick to a world very long term and build it way up over time and explore a lot, that all sounds bad.
Looking up TU22 for the Xbox 360, it seems this was based on Java 1.6, so terrain generation shouldn't have changed with it (?), but I'm aware the console versions mixed and matched a bit. It doesn't mention anything about a change though. The only terrain generation change that happened around then on the Java side was the following 1.7 so I'm presuming this is what you're referring to (though it wasn't until TU25 that things were based on 1.7 so I'm not sure). In either case, that terrain generation change had mixed reception. The aggressive climate zoning led to repetitive regions (the massive amount of new biomes it brought was the good part), but beta 1.8 to release 1.6 did not have what most would call amazing generation that got your attention either. That period of time was criticized by beta and older players for having generation that ruined variety and the desire to explore. I believe the very early Xbox 360 versions would have had the beta terrain generation (despite the game already being well into release versions by the time).
There were other weird restrictions like a global limit on the number of various mobs/entities in the world (not to be confused with the current mob caps which only limit natural spawning in loaded chunks; you couldn't even breed more passive mobs once the limit was reached), which I believe came down to the fact that the entire world was always loaded, as otherwise the disk storage space (which is the only other reason for a limited world size) required to store entities is negligible (e.g. the region file that contains my main base hasn't increased in size in many years despite the addition of and filling of vast numbers of chests, each of which contains a lot more data than a mob entity; the lack of any change is because chunks are aligned to 4 KB "sectors" within a region file, much like an actual file system, and none have grown past a 4 KB boundary. The data is also compressed and many instances of the same mob (or in my case, chest tile entity, many of which have the same content), usually only differing in position, will compress well):
Also, these limits were removed when consoles got updated to Bedrock Edition so it isn't really the consoles themselves but how the game was structured (I believe I did read somewhere that they kept the entire world loaded, although it may have been more complicated than that since you could update and previously unexplored areas would have new features).
In any case, the size of a world depends on how much you explore; my largest world is about 715 MB (Overworld only; the Nether is only 4.53 MB and the End doesn't exist as I deleted it (and the original Nether) years ago and never returned, but it is only 1.73 MB on another world) and averages about 5 KB per chunk; to get "gigabytes" you'd need to explore at least 200,000 chunks, or a 7155x7155 area (I know, playstyles matter but it would take me on the order of 2,000 sessions or 7,000 hours to explore that much. I also blame the world generation in newer versions that makes you have to travel so far to find anything, elytra also make it possible to travel thousands of blocks in minutes, and a higher render distance greatly increases the area loaded (this has to be quite significant on Bedrock; 64 chunks loads an entire level 4 map; in this regard the game could benefit from a level of detail style renderer which renders "fake chunks" past a much smaller loaded area).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Always Java because of mods.
Not quite a gigabyte because I haven't filled in the big continent yet. But most of my worlds get to a gigabyte pretty quickly.GigabyteS, plural? I've had two, although one was for the "To the Edge of the World" journal, which was obviously a special case.
I actually started playing Minecraft on Pocket Edition, with its pocket dimension sized worlds (and in those long ago days it did stretch the resources of a lot of phones). I'd go nuts on one now, though.
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!