I Remade Minecraft But It's Optimized

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 2K

  • @suluntulu
    @suluntulu ปีที่แล้ว +6924

    i would love to see what an optimized minecraft would look like, pair it with awesome terrain generation and the game could look beautiful since you could see so far

    • @oes2546
      @oes2546 ปีที่แล้ว +364

      It's called Bedrock*. Multicore rendering and C++ written engine. *Or, it's far from perfectly optimized really though. But it's the closest you'd get and a completely different league from Java performance wise, as is to be expected.

    • @GOAT_GOATERSON
      @GOAT_GOATERSON ปีที่แล้ว +470

      ​@@oes2546yeah, but I want the Java feel

    • @xatanias
      @xatanias ปีที่แล้ว +140

      @@oes2546 bedrock lmao

    • @andrewlalis
      @andrewlalis ปีที่แล้ว +381

      ​@@oes2546bugrock*

    • @kamilwiesak2404
      @kamilwiesak2404 ปีที่แล้ว +8

      @@andrewlalis ok

  • @TomahawkUnleashed
    @TomahawkUnleashed ปีที่แล้ว +1644

    i remember back in early minecraft, each block was an id from 0-255, 0 was air, 1 was grass, 42 was iron blocks etc... when you mentioned the byte array only having 256 blocks it reminded me. of that so maybe Notch used something like that originally? or maybe the block id was just a byte

    • @Mempler
      @Mempler ปีที่แล้ว +127

      BlockID 46 ftw

    • @DanielFildan
      @DanielFildan ปีที่แล้ว +105

      The McRegion format which was used thru most of Beta until release 1.1 does indeed store blockids as byte.

    • @Keanine
      @Keanine ปีที่แล้ว +186

      @@Mempler /give Honeydew 46 64

    • @tinyturtle1898
      @tinyturtle1898 ปีที่แล้ว +97

      I think this system was used until 1.13
      I still play on some 1.12 servers and its nice to know each block ID while using world edit. some blocks used a "data value" to add a variant without adding a new ID eg. 1 is stone, 1:1 is Granite, 1:3 is Dorite, 1:5 is Andesite. Each variant has the same mining sound, hardness and behavior. other blocks used the data value differently, like fences used it to store which sides were extended

    • @abysswalker2403
      @abysswalker2403 ปีที่แล้ว +89

      i miss using numbers or single letters for gamemodes lol. gamemode c was so easy to type but now we have to type the entire stupid word

  • @musikSkool
    @musikSkool ปีที่แล้ว +1629

    It was originally optimized for computers made in 2010. My single core Athlon 3800+ was giving me 85 fps, back in 2011 Minecraft Java Edition. Since then it has gotten bloated. Today my 6 core, much faster computer, struggles to even give me 60 fps most of the time. Edit: Looking through all the tests done with the PassMark benchmark, I would estimate that each core in my new computer is around 6 times as fast as my single core Athlon 3800+, which gives it somewhere between 30 to 40 times the raw power of my older computer. But Minecraft Java lost quite a lot of performance as the years went by so I can't even maintain the same framerate I had before. Software optimization people, we need more of it.

    • @conscripthornet4430
      @conscripthornet4430 ปีที่แล้ว +187

      I can literally run League of Legends on 80 fps but minecraft runs at 10.

    • @Onaterdem
      @Onaterdem ปีที่แล้ว +15

      @@conscripthornet4430 X to doubt

    • @conscripthornet4430
      @conscripthornet4430 ปีที่แล้ว +219

      @@Onaterdem AMD A9-9410 Radeon R5 2900 Mhz + 8 gb ram if you want to check for yourself.
      I literally gain nothing from lying to you, so I don't understand the mistrust here.

    • @Onaterdem
      @Onaterdem ปีที่แล้ว +80

      @@conscripthornet4430 It's not that I inherently believe you're lying, but League running at 80fps and Minecraft running at 10fps should definitely sound some alarms. Quite potentially a PC-related issue. Faulty hard drive sectors, maybe? Mods you've forgotten about? Etc.?

    • @Nightstick24
      @Nightstick24 ปีที่แล้ว +79

      It’s not so much that they aren’t optimizing, it’s the VAST number of very expensive things they’ve added. They added an enormous amount of lighting and particle related stuff now, which is super taxing. It’s certainly not even remotely close to “perfectly” optimized, and there’s PLENTY they could and should do, but it’s not a simple black and white issue!

  • @warfox
    @warfox ปีที่แล้ว +420

    I wish you did a series “Minecraft recreation but better” you seem like a great teacher I would love to see it from start to end

  • @ernestdominguez9320
    @ernestdominguez9320 ปีที่แล้ว +277

    Sodium, Lithium, Phosphor and Ferrite Core, all Fabric mods, greatly optimize Minecraft, but what you did here is crazy! Good job!

    • @atiedebee1020
      @atiedebee1020 10 หลายเดือนก่อน +32

      Nah, these optimizations are already in the base game. What sodium etc. do is an order of magnitude more complex

    • @Nukestarmaster
      @Nukestarmaster 7 หลายเดือนก่อน +5

      @@atiedebee1020 If these optimizations were in Minecraft, this video wouldn't exist, nor would there be so many performance enhancing mods for Minecraft.

    • @atiedebee1020
      @atiedebee1020 7 หลายเดือนก่อน +11

      @@Nukestarmaster what was shown in this video is a game orders of magnitude simpler than the real Minecraft. There is only blocks, and a maximum of 256 different types. There is no entities and no world that's being simulated.
      It's the equivalent of creating a blocky shooter without animations and call it "Call of Duty but optimized"

  • @asfissiato6097
    @asfissiato6097 ปีที่แล้ว +1535

    opening this video I expected milions of wiews... Then i noticed, you deserve more buddy

    • @finalforeach
      @finalforeach  ปีที่แล้ว +209

      I appreciate it! But I'm just getting started, and I have a lot to improve on!

    • @kennyalwaysdies1
      @kennyalwaysdies1 ปีที่แล้ว +19

      This is a really great first video

    • @austinwantland3974
      @austinwantland3974 ปีที่แล้ว +3

      Indeed! I hope to see more of what you have to offer!

    • @Sinsmoke_
      @Sinsmoke_ ปีที่แล้ว +3

      Its been only 3 days

    • @cocoslangos
      @cocoslangos ปีที่แล้ว

      Nah, it will blow up

  • @chewico3d133
    @chewico3d133 ปีที่แล้ว +700

    I think minecraft could have added a system to make far chunks render in lower datail, or voxel sizes bigger. It is dificult but could have added larger render distances.

    • @darkbeetlebot
      @darkbeetlebot ปีที่แล้ว +182

      There's actually a mod that does this called Distant Horizons.

    • @nataly_171
      @nataly_171 ปีที่แล้ว +85

      The problem with this is the chunks still need to be generated in order for the game to know what they look like. I can't run the Distant Horizons mod on my low-end PC because generating all those chunks at once just takes so much processing power.

    • @real.spotify
      @real.spotify ปีที่แล้ว +6

      @@darkbeetlebot its limited to a few minecraft versions tho

    • @firstNamelastName-ho6lv
      @firstNamelastName-ho6lv ปีที่แล้ว +43

      @@nataly_171 you don't generate all the chunks at once, you can turn down the settings and explore your world a couple chunks at a time. The chunks will still be visible but not "loaded".

    • @lavion6191
      @lavion6191 ปีที่แล้ว +17

      you mean LODs?

  • @Jake28
    @Jake28 ปีที่แล้ว +691

    1:58 - In minecraft, chunks are generally stored as flat arrays like described, but rather than storing block ids directly, they store indexes into a 'palette' of blocks which is stored per chunk. This means that the limit for how many unique blocks you can store in a chunk isn't tied to the amount of blocks in the game, but rather the amount of unique block types in that chunk. The length of each index is the amount of bits required to store the largest index in the palette, with a minimum of four bits. That means that chunks with small amounts of unique blocks only have to use four bits per index, but it's also still possible to have every block in a chunk as a unique block if needed. You should check the minecraft wiki's article on the 'Chunk Format' for more details.
    5:10 - The palette system also handles blockstates!

    • @onebigsnowball
      @onebigsnowball ปีที่แล้ว +75

      Yes, lack of optimization is not the entire reason for minecraft being slow. Neither is the language being used

    • @chainingsolid
      @chainingsolid ปีที่แล้ว +15

      I would be surprised if he game used that palette system for actually running the game(to much memory indirection and added logic to a lot of code) it makes perfect scene for saving tho as you want the file format to compress decently but not be a pain to decompress.

    • @Daniel-ij3ks
      @Daniel-ij3ks ปีที่แล้ว +29

      Prior to 1.13 they used plain 16-bit arrays to represent up to 4096:16 block states (of which only 256:16 were used in vanilla), but then switched to paletted and bit-packed chunks which are used even at runtime. It's not a great choice imo because accessing bits is a considerably slower than plain memory accesses (plus all the indirection/abstraction they have in their implementation), they even had to switch to a slightly different approach for performance somewhere between 1.16.

    • @Jake28
      @Jake28 ปีที่แล้ว +2

      @@Daniel-ij3ks Oh, yeah.. I didn't even think how the complications in the format would affect the speed of reading the data. I wonder if it would be worth it to do something similar but instead of using bit packed data, you just use multiple of whole bytes, since most of the speed loss would be in accessing the bits?

    • @Daniel-ij3ks
      @Daniel-ij3ks ปีที่แล้ว +1

      @@Jake28 I think so, but probably not as much. Their new sparse bit storage only needs a single memory load and a few bitwise ops per access, so it isn't that bad.
      I still think that 16-bits per block would be good enough for runtime, it allows for like 64K distinct block states, and they aren't using even half of that in 1.20. Although of course it's nicer to have a compact and future proof format.

  • @lopsidedpolygon
    @lopsidedpolygon ปีที่แล้ว +84

    Reminds me of minetest, guy wanted to play around with voxel rendering and a couple years later realizes they accidentally made a whole game. Thanks for sharing your project with us! 😊

    • @swinoob616
      @swinoob616 ปีที่แล้ว +2

      people want to remake Minecraft from scratch, but minetest is here for 14 years now...wake up people, play Minetest!

    • @Rub-A-Duck
      @Rub-A-Duck ปีที่แล้ว +3

      @@swinoob616 because no one talks about it? I never even heard of it... also the name... is not the best to choose for a "real" game 😅

    • @swinoob616
      @swinoob616 ปีที่แล้ว +13

      @@Rub-A-Duck Minetest it's not a game, it's a game engine, please consider reading before posting.

    • @wgnd1614
      @wgnd1614 9 หลายเดือนก่อน

      @@swinoob616 he said ''Reminds me of minetest, guy wanted to play around with voxel rendering and a couple years later realizes they accidentally made a whole GAME'' you said ''but minetest is here for 14 years now...wake up people, PLAY Minetest'' where is in your comment saying anything about engine??? 8 dumbasses (9 with) you think the same dumb way huh... not surprising

  • @nan0wav
    @nan0wav ปีที่แล้ว +85

    this is awesome!! one thing i wish minecraft has done is lean more into the fear of the unknown and the uneasy loneliness present in the earlier versions of the game. i would love to see some elements that play into these feelings

    • @JonMartinYXD
      @JonMartinYXD ปีที่แล้ว +22

      Agreed. Early Minecraft was better because of the isolation. Finding abandoned mines gave hints that the world used to be populated but now it is just you (and friends). It pushed the agoraphobia button well. When you set out on a trek from your base you had to bring the supplies with you to build a shelter for the night. There was no safety net. Now it is full of villages and other structures. There is a world of people going about their business and you are just a drifter/looter.

    • @DanielFerreira-ez8qd
      @DanielFerreira-ez8qd 10 หลายเดือนก่อน +7

      @@JonMartinYXD rose-tinted glasses, my friend. Safety has always stemmed from digging a hole in dirt and waiting for the night to pass. It was never a dangerous game, you were probably just younger.

    • @JonMartinYXD
      @JonMartinYXD 10 หลายเดือนก่อน +3

      @@DanielFerreira-ez8qd Well I started playing in late 2010 (Alpha), and that was 13 years ago, so I was definitely younger. I was already in my thirties by then, but you're right, time moves forward and I am older now than I was in the past.

    • @DanielFerreira-ez8qd
      @DanielFerreira-ez8qd 10 หลายเดือนก่อน +1

      @@JonMartinYXD There's a bias in us where we like something the way we were originally presented to it. I started playing back in 1.2.5 and a lot of things that took away from that sense of isolation were already present. I still have a fondness for that era of minecraft but I just can't see the past "vibe" of the game to really last as long as the game has by now.

    • @Laireso
      @Laireso 9 หลายเดือนก่อน +2

      If you want that feeling try out Project Zomboid. Because there are no NPCs and most people prefer singleplayer you will feel the literal definition of isolation. The gameplay is realistic enough to immerse you into the world, the gameplay is fun enough to keep you hooked for at least few hundreds of hours and the isolation is inherent part of the game. You're alone and everything is out to get you.

  • @SidereumGamesDevlogs
    @SidereumGamesDevlogs ปีที่แล้ว +329

    Very technical! I thought at first the mountains were glitching out and it took me a moment to realize that it's rendering everything from that far away! Liked!

    • @finalforeach
      @finalforeach  ปีที่แล้ว +146

      Thank you! Unfortunately the "glitching" is due to the Moiré effect, and it can be reduced with antialiasing, so that's something I'll have to look into in to the future.

    • @AntOnKneess
      @AntOnKneess ปีที่แล้ว +51

      ​@@finalforeachanother technique to consider is MIP mapping, it would reduce the moiré effect, with the potential to increase performance on the gpu due to using lower textures the further away it is (at the cost of increasing vram usage).

    • @yoda_8899
      @yoda_8899 ปีที่แล้ว +18

      @@finalforeach sparse voxel octree rendering could maby help with this too and also increasing performance on way higher render distances

    • @TehNoobiness
      @TehNoobiness ปีที่แล้ว +26

      @@AntOnKneess It's worth noting that Minecraft's mipmapping is kind of infamously bad for performance, but this is because they implemented animated textures in a confusingly bad way.
      Basically--you know how this video mentions that you want to minimize the amount of stuff you're sending to the GPU? This is because it takes a lot longer to send stuff from one part of the computer to another than it takes for that part of the computer to do anything with it. The time cost of loading a bunch of textures is massive compared to the time cost of actually _using_ any of those textures on a modern GPU. To deal with this, most game engines build a "texture atlas" that contains a bunch of textures, send that atlas to the GPU once during a loading screen, and then have the models look up a spot in that texture atlas when they need a texture. If a texture is animated, you could just change which spot in the atlas you're looking at each frame.
      Minecraft, for a long while, handled animated textures by _SENDING THE ENTIRE TEXTURE ATLAS AGAIN EACH FRAME._ This caused massive performance issues when mipmapping is turned up, because the way mipmapping works is by creating additional versions of each texture for use at different distances--which would be fine if you're only sending the texture atlas once when you're loading the game, since the player already expects loading to take a second or two, but if you're sending all that data _every frame..._

    • @ViciousVinnyD
      @ViciousVinnyD ปีที่แล้ว +4

      @@AntOnKneess mipmapping reduces moiré for textures but not edges, so it helps for flat lands but little for mountains. the effect seen in this video is caused almost entirely by aliasing.
      also mipmapping causes textures to look smudged and blurry without anisotropic filtering. unmodded minecraft has no anisotropic filtering and as a result having mipmaps on causes smudging which I find looks very poor on textures like rails.

  • @_m1ckey
    @_m1ckey ปีที่แล้ว +2419

    This is very impressive on its own, but Minecraft is a VERY complex game, with thousands of game mechanics. Blocks can have many different states than direction or water logging. Some like command blocks store much more information (up to 32767 chars) than provided by integers, or block entities like chests or barrels which contain tons of data. Other things like entities, collisions, physics, dynamic textures, particles, and game features drastically decrease performance. This is why the game doesn’t run very well without optimization mods like Optifine or Sodium.

    • @finalforeach
      @finalforeach  ปีที่แล้ว +1048

      Absolutely. BlockEntities cannot be expressed with a BlockState alone, and need to be stored separately, otherwise the data structure would need to store entire instances of objects for each chunk, leading to wasting memory.
      Mods like Sodium specifically say "For chunk rendering, we make use of geometry batching and draw pass consolidation, which greatly reduces the amount of CPU overhead involved in rendering the world." so in fact they use very similar principles!

    • @pitrex111
      @pitrex111 ปีที่แล้ว +236

      I'm just saying but Minecraft expierienced the worst performance drop when it moved from int id to enum based ones with 1.13. It alone should not make that much of a diffrence but somehow they ruined some parts

    • @b._.render
      @b._.render ปีที่แล้ว +20

      @@pitrex111that’s pretty neat

    • @gavinferguson2938
      @gavinferguson2938 ปีที่แล้ว +99

      ​@@pitrex111Why exactly is minecraft so unoptimized? Like I know that its optimized around single core preformance but aside from that, whats the games issue?

    • @Gandhi_Physique
      @Gandhi_Physique ปีที่แล้ว +237

      That is a developer issue though. If you can download a mod to fix the issues, the devs are part of the issue. (or at least those in charge of the devs and maybe even the foundation of the program)

  • @federicoumilio878
    @federicoumilio878 ปีที่แล้ว +72

    This has the potential of becoming a very informative and fun project! Please, keep uploading this type of content.

  • @tombnomb2938
    @tombnomb2938 ปีที่แล้ว +47

    it would be really cool to see a minecraft like game optimised for non-integer block positions, like in the create mod. Whilst this would be much more complex to optimise, it would allow for such a cool experience to have landslides etc, where one large chunk of blocks could be aligned to its own local grid of blocks that can move independently of the main world.

    • @Cyber_Monk1
      @Cyber_Monk1 11 หลายเดือนก่อน

      If someone tried to raytrace minecraft and there was a landslide then the computer would blow up. TnT already pushes it lmao.

  • @Regexion
    @Regexion ปีที่แล้ว +3

    "I 'remade' Minecraft by creating a voxel renderer" gotta be one of my favourite genders.

  • @toblobs
    @toblobs ปีที่แล้ว +49

    This video was somehow very informative even for not-so-technical people, amazing work!

  • @ultimus616
    @ultimus616 ปีที่แล้ว +30

    Will be following along, as someone who works a lot with mods some of MC's limitations become... quite clear. Further on, I would be interested in seeing how you can make this not only a better vanilla MC, but also better for implementation of mods from the community!

    • @JordanMetroidManiac
      @JordanMetroidManiac ปีที่แล้ว

      It sounds like MC needs to be rebuilt from the ground up, knowing now how it’ll be played and used, instead of patching up a rough piece of work from 2009.

  • @lukenerdy
    @lukenerdy ปีที่แล้ว +59

    Java Mc has had such a big performance issue for so many years that I think a lot of people would gladly lose out on new items and etc if It meant better performance for the base game. For me its crazy how to run modern java well you have to modded it before even loading into a singleplayer world. Great video though very nice to get idea on how things could be different given good performance

    • @iipecacuanha
      @iipecacuanha ปีที่แล้ว +11

      i dont think anyone wants the new items to begin with lmfaooo

    • @fantastikboom1094
      @fantastikboom1094 ปีที่แล้ว +11

      ​@@iipecacuanha Yeah, I totally agree. Maybe because items, blocks, and mobs they're trying to add... are just cringe. They don't fit the minecraft. And the way they add them... why promoting every version as a huge game changer update. I loved how simple older versions were, what simple things they added and how they added them. Idk it just was fitting and didn't break the atmosphere, unlike now.
      Though I liked the Nether update, it somehow fits the game, the Water update was also good, but it would be better if they didn't dedicate each 1.XX version to specific themes. Just add a few new things and bugfixes like previously. And why doing it every year (or half a year)? We don't need that much stuff added in such short period of time.
      Microsoft is definitely killing the game, sucking money out of it.

    • @lukenerdy
      @lukenerdy ปีที่แล้ว +4

      @@iipecacuanha I still want new items added to the game to keep it fresh. I thought that 1.20 is an alright update, cherry wood is nice and the hanging signs are neat but overall it was just eh. I just want a big performance update. I'm running a 1070 and a Ryzen 5 5600 which isn't the most powerful but the fact I need sodium to run the game is just crazy.

    • @lukenerdy
      @lukenerdy ปีที่แล้ว +2

      @@fantastikboom1094 The Water and Nether updates were good for the game for sure, Caves and Cliffs were just sad I barely see the big caves. I think we still need new items but yeah I can see what you mean by new items being cringe. I think if Microsoft wants to get back on a good side with the Java community we need a performance update. If they wanted to add a few new items and etc with it sure but like I think now performance is needed.

    • @mosshivenetwork117
      @mosshivenetwork117 ปีที่แล้ว

      ​@@lukenerdysodium is for fabric right?

  • @Axspt
    @Axspt ปีที่แล้ว +41

    This would be so sick to play, and Im so happy you plan on making this a game of your own. I have always pondered the idea of what the continuation of the Beta style would be like in modern times. I also feel as though minecraft really took leaps of what the original art style was, which honestly seemed to be an OG almost 2D game brought into a 3D space. Original MC was honestly scary, it was massively dependent on survival. I truly believe this could be something special. I really loved the ARGs that also had this idea in mind of an alternative timeline for Minecraft. I think this definitely could go places

  • @alecstobbs2523
    @alecstobbs2523 ปีที่แล้ว +8

    I appreciate how quickly you cover so many very useful techniques. I look forward to these videos being great introductions to optimization methods that I can further research myself.

  • @totallyjustmagic
    @totallyjustmagic ปีที่แล้ว +946

    I think my biggest critique of modern Minecraft is that it's not really a sandbox or a survival game. With current mojang goals being making it a game for all, which is slowly turning into an RPG with sandbox elements

    • @Generic_Noob
      @Generic_Noob ปีที่แล้ว +135

      The solution to your problem:
      Step 1: Install forge
      Step 2: Install world edit
      Step 3: Learn world edit
      Step 4: Build

    • @nilslorand
      @nilslorand ปีที่แล้ว +230

      Honestly, Minecraft is just so much of a Sandbox that it can never be taken away, regardless of how much the RPG elements are crammed in, as long as they don't change the core gameplay you can still do whatever the hell you want in minecraft

    • @slungellife
      @slungellife ปีที่แล้ว +45

      Whats wrong with games that incorporate multiple genres ?

    • @coletm7146
      @coletm7146 ปีที่แล้ว +154

      @@slungellifethere isn’t a problem with multiple genres, but I think what the commenter is trying to say is that mojang/Microsoft is adding so many different features in order to appeal to wider and wider audiences that Minecraft is losing some of its simplistic charm that attracted most players to begin with.
      For example, the archaeology update, which adds more bloat to the game without making any substantial features (unlike updates that added better cave generation or observers which are seen as very substantial for the game in terms of player usage)

    • @Generic_Noob
      @Generic_Noob ปีที่แล้ว +30

      @@coletm7146 Well, people are complaining about the lack of features in updates like the wild update. It sounds like you're describing something like the 1.15 (buzzy bees) which people complain about for lack of content despite adding one of the most useful blocks in the game (honey block)

  • @caleron6945
    @caleron6945 ปีที่แล้ว +53

    I love what you're doing with this project so far! I very much agree that Minecraft lost much of its charm post-Beta. I've honestly thought about this a lot over the past decade. I've come to the conclusion that the loss of charm is from 3 main sources:
    1 - the world generation is simply less engaging
    2 - the old glitchy quirks that once defined the game for me have been removed
    3 - the game has become increasingly less focused around survival
    The biggest loss of charm for me is the terrain generation. Sure, biomes are larger, more various, and better defined, but they're super same-y. You see one mushroom island, you've seen them all. Every forest is the same. Every swamp is the same ugly scourge on the landscape. I really can't put it into words, but the beta terrain generation had this quality that made the world feel warmer, more inviting, more interesting, and consequently more inspiring. Beta caves were manageable. You'd pop in and out in 10 minutes normally. Rarely you'd find a few caves that collided and you'd be there for a day or two at most. Today's caves just literally never end. It's such a chore to try to explore all of them. I've had friends that never played back in the beta days who watched videos of beta-terrain worlds or who played with mod packs that reintroduced beta generation as biomes and pretty much all of them have preferred those worlds to the worlds we have now. Today's Minecraft feels cold and barren to me the majority of the time, and I'm not quite sure if it's the color palettes, the shapes of the topography, or something else, but it's definitely less inviting and makes me want to stick around less.
    Glitchy quirks like minecart boosters and boat-avators used to define the game for me. They were clever, unintended uses of intended mechanics that were very rewarding and gave the game this significant charm for me. Boats always rise to be at the top of the water? Then just create a waterfall in a place where you want to go up and drive a boat into it to reach super speed. Minecarts don't like colliding with each other and repel one another? Then use gravity and track placement to force 2 carts together and make the one you're riding in rocket off into the horizon. There were so many unintended possibilities from simple rulesets. Exploring the possibilities felt rewarding. Today, it feels like every element of the game is thoroughly tested and sterilized to prevent unintended behavior, and whenever unintended behavior crops up, it gets promptly removed in the next update. We're forced to play the way Mojang/Microsoft wants us to, rather than to play in the sandbox that the game used to be.
    There are whole video essays talking about the loss of Minecraft's survival elements, but my major gripe is that everything the game had added in the past decade has diminished the challenge of the survival experience, consequently making it not feel like "survival" at all for me. Without challenge, you're just existing, and that's not engaging. If I wanted to just exist and build infinitely, I'd play in creative mode. Some of today's mechanics, like phantoms spawning if you don't sleep, actively push you away from the challenges of the game. You have to sleep through the night and miss all the fights you might've had so that you don't get endlessly harassed the next day. Villages have made survival basically free. Sure they can get attacked occasionally, but generally that's not a huge threat especially if there are a lot of golems around. One "recent" element that actually made survival harder was the addition of snow you could fall into and freeze from, but it can only happen in specific, out-of-the-way areas so if you know you're going to those places, you'll probably grab the boots that makes you immune to it before you leave. If it was quicksand that could happen anywhere, at any time, then you'd actually have to be prepared for it, but the mechanic has been relegated to such a specific uncommon place that it's very unthreatening.
    Minecraft used to be my favorite game, but that definitely changed when Microsoft bought them in 2014. It's just never quite had the same vibe since then, but even then it still didn't have the same vibe it did before the 1.0 release. Thanks for giving me a chance to reminisce.

    • @Axodus
      @Axodus ปีที่แล้ว +3

      I think you actually perfectly described the source of the feelings I've had for the game since the 1.0 release. I always did sort of enjoy the older world generation but I didn't know why, I always thought more biomes = better, but that's not true, it's the uniqueness of the generation that matters, not the biome count.

    • @PhotriusPyrelus
      @PhotriusPyrelus ปีที่แล้ว +16

      I think you've got a *bad* case of rose-coloured-glasses w.r.t. survival. Survival in MC was never anything even close to a challenge, barely even a consideration. You break grass for seeds, get a wood hoe, grow wheat, get a furnace, presto, never worry about hunger (or health before the hunger system was added) again.
      I do agree though, that somewhere along the way, the simple charm of early MineCraft was lost, I'm not not sure exactly where or when or - most importantly - why.

    • @Nikola_M
      @Nikola_M ปีที่แล้ว +6

      @@PhotriusPyrelus I think i know the why: At a certain point you simply know everything important in the game and you can't wonder about the possibilities of what's there anymore.

    • @Potato_Quality7
      @Potato_Quality7 10 หลายเดือนก่อน

      I don't get the phantom hate. It's only like 7 of them that come by. You wanted a challenge, you got it, now you're complaining. Everyone was asking for new hostile mobs, because the other became predictable, and you got just that. Sounds like a skill issue.

    • @caleron6945
      @caleron6945 10 หลายเดือนก่อน +3

      @@Potato_Quality7 It's not about the difficulty of the phantoms or getting a new hostile mob, it's about the framing of the implementation. When I go into a cave, I understand that I am taking on a risk vs reward situation; I may get lots of new ores and blocks, but I'll probably have to fight some mobs to do so. The strongholds and dungeons and abandoned mineshafts and end and other interesting locations in the game offer the same bargain. The alternative gameplay to this is exploring the overworld, which is supposed to be a peaceful thing to do provided you aren't exploring at night time. The problem with phantoms is that they break this system. Instead of me making a conscious decision to go fight monsters, I'm harassed by them when I'm hanging out in my supposed-to-be-safe base, or when I'm out exploring and reasonably expecting things to be peaceful. It's not a challenge, it's annoying. And they don't even stop when you kill them. They keep respawning until you eventually sleep. It forces me to break my gameplay flow in order to get rid of the pesky situation that I never asked (or voted) for. It breaks my focus on what I'm doing and forces me to take cover, wait for night, and sleep. If I'm exploring, I now need to carry a bed. If I'm being generous, I'd say that it might add some unexpected combat which might spice up repetitive gameplay, but for me this doesn't mean much and just ruins some of my fun.

  • @NobodyCentral
    @NobodyCentral ปีที่แล้ว +6

    I think it would be awesome for a game like that to have an officially supported way to mod the game, as well as making the game itself open source (with or without a license) to understand the inner workings of it more. Cool project man, keep it up!

  • @nozeekah5035
    @nozeekah5035 3 หลายเดือนก่อน +3

    I too am making a minecraft clone, but one thing that i did to make it run faster is by making blocks have 3 faces instead of 6,
    I did this as follows for the vertical axis (VA). (i didn't do it in text code, so I hope you can understand)
    If [player VA] > [Block VA] then draw the top face, else, draw the bottom face.
    you can copy past and only change the variables for other axes.
    This is more effective early in development, but it technically seems to run faster.

    • @webaccount167
      @webaccount167 หลายเดือนก่อน +2

      So backface culling? I think Minecraft already has that for blocks, and it's noticeable with stuff like glass, unless I'm missing something and yours does a different way.

  • @Enphixo
    @Enphixo ปีที่แล้ว +12

    Would love to see this project grown into something big. I want to support this as much as I can. Good luck dude >:)

  • @louisveran2439
    @louisveran2439 ปีที่แล้ว +62

    Nice video! If you really want to optimize it futher, try implementing LODs for the blocs. This is a thing vanilla minecraft is trully missing that mods such as far planes 2 or the more recent and optimised [I forgot it's name] does and it's a massive boost in performance, while allowing for absurd render distance like 1000 Chunks, to be playable.
    Good luck !

    • @icantthinkofaname4723
      @icantthinkofaname4723 ปีที่แล้ว +15

      The mod you're thinking of is distant horizons.

    • @louisveran2439
      @louisveran2439 ปีที่แล้ว

      @@icantthinkofaname4723 yes!

    • @spongewithhat
      @spongewithhat ปีที่แล้ว +2

      Seconded. This is something that should be implemented early on for any game which has infinitely generated worlds.

    • @samuelthecamel
      @samuelthecamel ปีที่แล้ว +5

      These mods can make things look really weird sometimes due to everything in Minecraft being made out of cubes. Cubes are impossible to apply LOD to while still keeping their shape, so corners have to be cut (literally).

    • @friedrichhayek4862
      @friedrichhayek4862 ปีที่แล้ว +1

      What is LODs?

  • @blakehorwill8454
    @blakehorwill8454 ปีที่แล้ว +41

    Id love to hear how you optimised the game for multithreading

  • @tyronorxy5646
    @tyronorxy5646 ปีที่แล้ว +3

    Cull all blockfaces which the player can't see.
    A possible method:
    Since you have a single camera, you can only see up to 3 faces of a cube. Make 26 regions around the camera and for each region tell the renderer to only render predefined faces of blocks.
    How to imagine the regions:
    1) imagine a large cube around the camera made of 27 smaller cubes in a 3x3x3 configuration. The camera is in the center of the middle cube.
    2) remove the all edges that are part of the center cube. You removed 12 edges. Now you have 24 edges pointing inwards, from the remaining -incomplete- cubes.
    3) Take those inwards pointing edges and move their inward pointing end to the center of the camera. This will distort the remaining -incomplete- cubes, creating some stretched piramids which all are touching the center of the camera with their top vertex.

    • @pjrotsaert2832
      @pjrotsaert2832 11 หลายเดือนก่อน +2

      I mean it's a nice thought experiment but this method is both unnecessarily complex and will be slower and way less flexible than just letting the GPU do its backface culling.
      Remember you'd also have to update your 'regions' whenever a block changes. So you're potentially introducing a giant headache here.
      Even if implemented exactly as you say you'd barely see any difference in performance, if any.
      Polycount in and of itself barely matters anymore on modern GPU's. Draw calls, shader complexity (esp with overdraw) are the main bottlenecks these days.
      You also want to limit CPU -> GPU uploads as much as possible, only doing it for stuff which actually changes dynamically.

  • @rbstat6946
    @rbstat6946 ปีที่แล้ว +1

    I think one important aesthetic aspect of old Minecraft, that was lost along the way. Was the fact that everything was kinda deliberately sort of generic. For instance: Skeletons use bows! Why do skeletons use bows? Because bows are dex weapons, and skeletons always use dex weapons in fantasy games. That's why the skeletons in videogames always use curved swords as well!
    Everything feels like it was lifted straight out of DnD, and JRPG's. Modern Minecraft mostly just tries to make real life stuff nowadays, or try to create crazy new concepts, maybe trying to recreate the lightning in a bottle that was the creeper? Either way if you want to recreate the classic Minecraft feel for mobs in the future. I'd recommend popping on some JRPG's like DarkCloud, OOT, Reccetear, or something like that. Hope this helps!

  • @lynxrbeam8732
    @lynxrbeam8732 ปีที่แล้ว +9

    I don’t know if this guy expected this first channel video to get 128k views, but I really want a series on this stuff. I find it extremely interesting and this is the type of laid back tech content I like 😂

  • @vida6050
    @vida6050 ปีที่แล้ว +6

    Really cool project, maybe an cool idea was to open-source it so the community could collaborate:)?

  • @exonymat1471
    @exonymat1471 ปีที่แล้ว +8

    Oh my god I've always wanted to do this very idea, I love that someone far more skilled than me has been able to start it. I hope you're able to get far with this, i would absolutely subscribe if you made this an entire series :)

  • @tiagowoodyard
    @tiagowoodyard ปีที่แล้ว +6

    I would love to see fantasy elements, but with magic toned down, keep it simple, and good job so far.

  • @fexus9730
    @fexus9730 ปีที่แล้ว +1

    One thing I recommend doing early on is localized positions. In my MC clone, I stumbled upon this problem when I was attempting to teleport far out into the world. It becomes very jittery the further out you go. It became noticable around 100k blocks out and it became unplayable at around 500k. Floating point precision is the problem.
    Unless you have a way to guarantee FP64 support in your shaders (doesn't seem to be widely supported and tends to be quite slow), you will want to implement a system where each chunk has an ivec3 "chunk position" and where the chunk mesh itself only has local positions. In your case, vertex positions of a chunk mesh should never exceed 32.0 or go below 0. Entities will also have a chunk position but also a vec3 chunk local position. local position + chunk position * 32 = global position. The camera local position will never exceed 32,32,32 either (you will make the camera loop via localpos % 32). What must be done in your vertex shaders now is you take the player/camera position (which is also split into chunkPos and chunkLocalPos) and you subtract the chunks chunkPos from that plus the camera.chunkLocalPos. I hope I didn't forget anything.
    If done correctly, you can go as far out as you want without ever running into floating point inaccuracies.
    You can work with the globalPosition using doubles on the CPU side, of course.
    Never underestimate the craziness of the playerbase :D
    Good luck, mate!

  • @Kiroto50
    @Kiroto50 ปีที่แล้ว +1

    What minecraft could've done differently?
    Scrap stairs. Scrap slabs:
    Although you still dig in 1 block by 1 block, the ability to reduce blocks to 1/8th their original size and placing them on the world would be amazing.
    Perhaps you dig 2x2 cubes in this version, the character is 4 blocks tall and 2 blocks wide. Doors, for example, could still be 2 pixels wide in texture, but be 2 wide by 4 tall by 1.. wide again.
    This change would make building pretty cool, and allow for more things to be done. If something like redstone were to be implemented, machines would feel so much different because of the difference of scale!
    This will come much later, but perhaps...:
    Regarding player movement, how about:
    • being able to climb some surfaces? (Something botw and totk did well)
    • being able to side hop (double tapping a side, allowing for more counterplay for projectile enemies other than a possible shield)
    • being able to crawl willfully (ctrl?)
    As for base combat:
    • Deflecting projectiles with a weapon (A skillful way to defend against projectiles)
    As for progression
    • allow for earlier alchemy (like in Terraria)
    • give everything a fair use case, a purpose
    • no diamond tier: Everything has its ups or downs. Specifically, make it so although some materials are better than others, there is no perfect material.
    • If there is a diamond tier, the only good thing it'd have is its durability (or unbreakability).
    As for variety
    • more ways to store things than a chest or a barrel?
    • more effective ways to deal damage (more weapons other than swods, axes, bows)
    Other Mechanics
    • Magic, think skyrim and Noita, a different way to interact with the world and for the world to interact with you.
    And the part that hurts me the most as I have no idea how this would be implemented:
    • Finite puddles, infinite oceans? or finite liquids altogether?
    Final note: Open Source it?-- well it'd probably be a complete pain to moderate and make sure everything is optimized, managing pull requests and everything, but at least make it so anybody can compile it and check on it, comment and all.

  • @HereticalIndividuals
    @HereticalIndividuals ปีที่แล้ว +8

    Fantastic! That was very Impressive and I cannot wait to see what it becomes!

    • @finalforeach
      @finalforeach  ปีที่แล้ว +7

      Glad to hear it, I'll keep at it!

  • @ruier10
    @ruier10 ปีที่แล้ว +6

    This looks great! I'd love to see how this evolves! And hope more people get to see this!

  • @anomonyous
    @anomonyous ปีที่แล้ว +3

    Mojang used to optimise Minecraft.
    Then, Microsoft bought it. And it became like their OS. A hulking mutated mass, blobbing about, barely crawling, breathing raggedly like a half-dead pug.
    Like everything Microsoft touches, it becomes incredibly unoptimised and kinda sh.

  • @krakenmahboy
    @krakenmahboy ปีที่แล้ว +1

    One thing I disliked about Minecraft is that it strayed from adding simulation mechanics, like new types of trees and wood, or types of stone, and started focusing on fantasy elements like nether stuff, end stuff, etc. I wanted to see what else Minecraft could add to the game that would make it a more powerful simulation. Trying to do this yourself in Minecraft's API (through Bukkit) delivers a very serious hit to performance; your optimizations could make it possible for your game.
    For instance, having a realistically high build limit has been possible for a while, but it is incredibly resource-intensive on the server. No worries with your optimizations, though, since that's just baked in.
    Great watch, hope to see more soon. Cheers!

  • @X4Alpha4X
    @X4Alpha4X ปีที่แล้ว +2

    A few things i would've liked from minecraft having grown up along side it. early on it was inspired by dwarfs fortress and notch wanted it to be a fantasy RPG. I think adding more structures and dungeons along with a lively NPC base, not just villages that hardly even exist on their own, would've been amazing/ Obviously theres a mod for everything in minecraft, but im talking as a base game. Much like dwarf fortress having different factions and colonies that exist in the world, interacting and trading with each other would be huge.

  • @DrunknPirate
    @DrunknPirate ปีที่แล้ว +6

    One of the game designs of Minecraft that I wish were different is the "One Block At A Time" one, specifically because it limits the potential of the player by only allowing them to interact with blocks (not including redstone machines like farms or doors, tnt, etc.) at a limited rate.
    Of course this limits the amount of block changes done, but with the optimizations you've made I'm sure you could implement more ways of terraforming without compromising too much fps.

    • @marcely1199
      @marcely1199 ปีที่แล้ว +5

      Your suggestions are completely unrelated to the optimizations that he has done in the video, which in fact actually are already a part of Minecraft. His title is literally false click bait

    • @etopowertwon
      @etopowertwon ปีที่แล้ว

      Chisel and Bits allows you to build at subblock level. Don't remember if it's 16x16x16 or 64x64x64

  • @icyz1ne456
    @icyz1ne456 ปีที่แล้ว +3

    This is awesome! I cant wait to see more videos from you on this topic! Its so helpful for someone like me who wants to make a minecraft clone too, but doesnt know all the optimizations that should / can be applied. If you could share snippets of code, or source code, that would be tremendous! Although explenation of the concepts you apply and some documentation are just as good to me. Just from this video alone I already learned of some techniques I didn't know of. Thank you and cheers!

  • @McKay1901
    @McKay1901 ปีที่แล้ว +12

    nice, how far are you going to take the gameplay logic? (e.g. player movement physics, block placing/destroying, spreading water/lava, dynamic block updates like grass blocks replacing dirt blocks, explosives, saving/loading worlds, etc.)
    and are you going to open source the code at some point?
    I'm also working on a minecraft style voxel game at the moment, though in c++, it really is a lot of fun and has many interesting small optimization challenges.

  • @MineDevStudios
    @MineDevStudios ปีที่แล้ว +1

    Very technical. Absolutely loved the thought process that goes into the optimization. Well done on jumping through the first hurdle!

  • @VilleF1N
    @VilleF1N 9 หลายเดือนก่อน

    I'd love to see this level of optimization in Minecraft. No idea how you could handle all the mechanics working the same. Especially redstone which is a laggy mess at the best on its own. Yeah there are mods that optimize it greatly, but they are band-aids trying to fix a broken heavily bleeding limb.

  • @cinna9552
    @cinna9552 ปีที่แล้ว +4

    You should definitely keep working on this.

  • @kuboi_
    @kuboi_ ปีที่แล้ว +6

    I need to see more of this! I want to make my own Minecraft clone without a game engine one day, but I do not have the skills necessary yet as I'm still learning about computer graphics, rendering math etc. I learned a lot in this 6 minute video and it inspired me to keep going. Show us the multithreading, show us your process, show us everything!

    • @LegendLength
      @LegendLength ปีที่แล้ว

      I recommend looking at GPU threading using open gl. It's a bit difficult to get used to but has a huge amount of power compared to CPU. So once you download an example and set it up you won't go back.
      The code is basically the same as C without any libraries (glsl).

    • @anon1963
      @anon1963 ปีที่แล้ว

      @@LegendLength would be cool if you could only use gpu but they are designed for completely different tasks

    • @LegendLength
      @LegendLength ปีที่แล้ว

      @@anon1963 Should try to use gpu for everything these days except keyboard input etc..

    • @anon1963
      @anon1963 ปีที่แล้ว

      it would be horrible, imagine running single-threaded task on a 2 GHz cuda core@@LegendLength

    • @LegendLength
      @LegendLength ปีที่แล้ว

      @@anon1963 GPU code isn't a single process is that a subtle joke? They are made to be massively parallel.

  • @kcscustom9759
    @kcscustom9759 ปีที่แล้ว +7

    I am interested in how you implemented multi threading. Also sort of on the same topic what is your opinion on the integrated server that runs in single player Minecraft? Was it a good call to separate the game logic from the graphics engine in this sense or do you think it would’ve been better to keep them together? It seems like it negatively impacted performance in the short term (back when Minecraft was a smaller more simple game) but that it may have helped out in the long run? I mean I don’t think there is any way to know for sure without completing rewriting Minecraft’s code and only making that one change (along with any other necessary changes needed as a result of this change) and testing it, as there is no way to my knowledge to run Minecraft without its integrated server. Though It seems like it was a necessary change to allow the game to grow in the long term. Are you planning on doing anything different with your game?

  • @jediflamaster
    @jediflamaster 3 หลายเดือนก่อน

    Something I always figured would be nice is large scale organic simulation of factions/servants. Say you get a bunch of dwarven underlings and tell them to dig out a cave - even if the chunks aren't loaded. So on load the game would know how much time has passed and calculate how much work the dwarves should've done. But I can imagine this kind of thing could get computationally expensive.

  • @Fragdemented
    @Fragdemented ปีที่แล้ว

    Finally, someone who can make this game what it could truly be. Here are some things off the top of my head.
    - even with your awesome rendering optimizations you can still see the edge of the loaded map. Why not take the world seed data, and show a single plane with simple height and color data stretching into the distance. Only having it turn to blocks within a certain radius. That way you can see more map and landmarks off in the distance, but only see detail when you get close.
    - blocks only need to be fully rendered and interactable within a certain 3d radius to the player. It seems like a chunk is a full tower of that data loaded when it only needs to be a sphere located around the player.
    - I would love to eventually see a paintbucket mechanic allowing you to paint the individual panes of a block. One coat for a tint, and two for a solid color. I know that's far off.

  • @GabeRundlett
    @GabeRundlett ปีที่แล้ว +34

    Nice first video! I know the title is just clickbait, but I think it should be noted that none of the techniques you implement are things that Minecraft Java edition doesn't already do (or that it does better).
    As an example, Minecraft has palette compression for the voxels in memory, which you were getting pretty close to describing. Their blocks in each 16^3 group are stored first as a list of all unique blocks, followed by a bit-field of all the indexes into the unique set. This bit-mask is just an array of 64-bit integers, but the actual per-voxel indexes are a fraction of that. They pack the bits necessary for each voxel to be just ceil(log2(n)) bits per voxel, where n is the number of unique voxels in the unique set ("palette") This means that if there are only 2 unique voxels in a region, say it's filled with just stone and air, there will only be 2 bits per voxel (32 voxels packed into 1 64 bit integer). If there are 12 unique voxels in the region, there are 4 bits per voxel (16 voxels packed into 1 64 bit integer).
    And of course you noted on "precomputing the visibility of each chunk with a breadth first search", literally referencing the technique that Mojang developed for Pocket Edition.

    • @dottedboxguy
      @dottedboxguy ปีที่แล้ว +4

      gabe being a little 🤓 about voxels

    • @GabeRundlett
      @GabeRundlett ปีที่แล้ว +4

      @@dottedboxguy as always

    • @alexanderheim9690
      @alexanderheim9690 ปีที่แล้ว +3

      One day I also want a comment of John Lin 2.0 in my comments

  • @trazao9216
    @trazao9216 ปีที่แล้ว +7

    One of the things I feel minecraft has lost is its difficulty and survival aspects. You used to not be able to skip night, forcing you to create 'safe places' to still play during the night. This was just awesome, forcing you to make gates and lighting up your surrounding area. Incentives like this that force you to create things are whats missing in todays minecraft. A bed is more powerful than any item.

  • @obvFire
    @obvFire ปีที่แล้ว +4

    1:16 a chunk is 16x384x16 blocks not 16x16x16 blocks

  • @LB_
    @LB_ ปีที่แล้ว +1

    I miss the old difficulty balancing of Minecraft, from early Beta and late Alpha. Beta 1.8 completely took the game off the rails for me with stuff that should have been mods instead of vanilla.

  • @C4M-
    @C4M- ปีที่แล้ว +1

    This is fantastic, and I'm really excited, especially if this gathers a following. I've always wanted to have more players per server to really have the community aspect. Hopefully Microsoft will leave you alone on this, but I can't imagine that would happen if this game uses the same textures. I'm excited to watch more videos!

  • @LordOmnipraetor
    @LordOmnipraetor ปีที่แล้ว +16

    The biggest annoyance for me with Minecraft performance is the entities. For some reason, the priority is on entity movement (even when they have no movement) over performance. For example, chests, signs and item frames are all very common to use in bases (especially large builds), but they eat the fps like crazy. If you could find a way to optimise entities, that would be great

    • @samuelmatheson9655
      @samuelmatheson9655 ปีที่แล้ว

      i didnt know that, why do you think its implinmented that way

  • @oglothenerd
    @oglothenerd ปีที่แล้ว +3

    I honestly after doing some research come to the conclusion that Notch was not a very good programmer. Yes, he made one of the best games in the world, but after seeing code snippets from the early versions of Minecraft, and the way that Minecraft works, it is very hacky. Also, let me say that, Minecraft is not the first of its kind. There was InfiniMiner before Minecraft.

  • @johalun
    @johalun ปีที่แล้ว +4

    Did you implement cubic chunks for (nearly) unlimited world depth and height as well as horizontal size? This is what I like about Minetest :)

  • @Heeter
    @Heeter ปีที่แล้ว +1

    I'm excited to see episode 2!

  • @enetgrinson8394
    @enetgrinson8394 ปีที่แล้ว +1

    This is really interesting. I am excited to hear that you are making a full game out of it as the improvements to terrain generation alone would be fantastic to see. If I may, two suggestions for the final product would be to add really good mobility based items like grappling hooks, climable ropes, or even just wall climbing equipment as with the impressive terrain comes difficultly exploring it. Additionally any enhancements to inventory would be amazing, but both of these would be a lot farther ahead. Regardless, this is a very impressive project and I can't wait to see where you go with it. Best of luck

  • @turzilla
    @turzilla ปีที่แล้ว +6

    interesting how youre doing it in java, i always thought c++ was faster

    • @stealthkillertoxic4090
      @stealthkillertoxic4090 ปีที่แล้ว +1

      It is, because it doesn't have a garbage collector. But you can still make a Minecraft clone in java that is more optimized than Minecraft itself because no game is perfectly optimized

    • @onebigsnowball
      @onebigsnowball ปีที่แล้ว +1

      C++ is faster but a worse language in every other regard.

    • @stealthkillertoxic4090
      @stealthkillertoxic4090 ปีที่แล้ว

      @@onebigsnowball i agree that c++ sucks though i wouldn't say it's worse than java. If you use c++ with all of it's features it's bad yeah, but if you use it in a c like way it's way better. Also because of the performance requirements of game development c++ is chosen over java because it gives access to low level concepts like memory management.

    • @turzilla
      @turzilla ปีที่แล้ว

      ​@@onebigsnowball how so i genuinely want to know

    • @onebigsnowball
      @onebigsnowball ปีที่แล้ว +1

      @@turzilla Java doesn't have operator overloading like C++. Operator overloading creates MANY complexities and problems. Java doesn't have header files meaning it's less verbose without even trying. Syntactically Java is basically what C++ was trying to be in the beginning, C with classes. But, since C++ compiles to machine code and is compatible with C and has memory management, C++ was the chosen one for anything high performance. Really only because it was the only option if you think about it. Just look at Java's popularity over the years. If it was more low level it would be used way more than C++ for anything about game development and high performance.

  • @papryhproductions
    @papryhproductions ปีที่แล้ว +13

    non programmers can’t even start to comprehend how hard this is and how much pure talent and skill you need to do this. respect.

  • @petersmythe6462
    @petersmythe6462 ปีที่แล้ว +4

    Note that most of these optimizations were either added to the Vanilla game mid-development, were in the Vanilla game since Classic/Indev/Infdev, or were removed from the Vanilla game after being replaced by a different optimization.
    Minecraft is actually a very optimized game. As someone who is making a voxel-like terrain engine for an infinite world, many of these optimizations or something like them are strictly necessary to achieve Minecraft's level of performance with similar world generation quality.

  • @draxomega
    @draxomega 8 หลายเดือนก่อน +1

    In terms of "what should be different", that mostly depends on what you, the creator, want in the game yourself. Do you want variety in creatures/enemies, stones/ores, weapons, areas/biomes, healing? Do you want differentiation between life and hunger or even thirst? Do you want magic? Do you complex devices or at least the possibility to build them with tricks? Do you want one continuous realm, a few realms, or many?
    I'm not trying to pass the buck, it's simply that as the creator your first question shouldn't be "what would the players want?" It shoud be "what do *I* want?". Start there.

  • @almicc
    @almicc ปีที่แล้ว +1

    There are a huge number of ways that Java Minecraft could be further optimized for performance, and I honestly believe it's possible to produce a program that can handle hundreds of players on a single world, doubling or even tripling render distances, reducing file sizes, and increasing the tick rate to 60 or higher. Of course, all staying with Java, but even translating that into a greater performance for Bedrock (C#) version. Maybe one day the developers will start taking performance seriously, rather than having the community decompile and optimize the game for them.

  • @donketti902
    @donketti902 ปีที่แล้ว +12

    I absolutely agree that Minecraft has lost it's charm along the years. It's very sad to see that there is barely any resemblance of the old game that made it so great in the first place. For example the complete change in art style and the eradication of creativity with "metas" like the elytra and grinding for enchantment books from villagers for the absolute optimal gear. Much of the modern playerbase thinks that is a good thing, making the gameplay more linear instead of all players going their own ways, but Minecraft was always supposed to be a sandbox game and I think that is being forgotten.

    • @joevdb9232
      @joevdb9232 ปีที่แล้ว +3

      yes you're exactly right, there's now a very long RPG-style linear progression. originally, diamond gear was the best. now, there's enchantments, beacons, conduits, elytra, shulker boxes, netherite, tridents, etc, and far more different resources to obtain/farm. so you must spend far longer on the fixed list of survival/adventure content before the sandbox aspect opens up

    • @steviejoe66
      @steviejoe66 ปีที่แล้ว

      Check out 'Better Than Adventure'. I think you might like it.

  • @asaploui
    @asaploui ปีที่แล้ว +5

    Minecraft might be the most impressive game ever made. It's a crash course into computer dev, it's an artistic medium, it's an expressionary tale of human thought and the creative psyche. The possibilities are endless. Really is a wonder. You could teach college courses on this game. Redstone, modding, and building techniques are changing daily, for a game that has not changed much outside of its fundamental core. God I love learning about this game.

    • @3n3j0t4
      @3n3j0t4 ปีที่แล้ว

      chill bud

  • @lucaslasko5032
    @lucaslasko5032 8 หลายเดือนก่อน +3

    Why is bro talking like Patrick Bateman?

  • @dracus17
    @dracus17 ปีที่แล้ว +1

    Never thought Mass Effect's Illusive Man would be making Minecraft clones, but here we are

  • @leoappourchaux
    @leoappourchaux ปีที่แล้ว +1

    Wow this is insane, just saw your second vid !!! You're going so fast. We really needed to restart the code of minecraft from the ground up

  • @hel2x
    @hel2x 10 หลายเดือนก่อน +5

    "I wanna make it fast" - Just don't use java😂

    • @SweetDemon11
      @SweetDemon11 3 หลายเดือนก่อน

      Did you watch the video by any chance? this has nothing to do with java during runtime

  • @jimnicholas7334
    @jimnicholas7334 ปีที่แล้ว +1

    This is quite interesting! Glad YT brought this up in my feed.
    May you be blessed by the algorithm gods!

  • @sircalvin
    @sircalvin ปีที่แล้ว +1

    the moire patterns are so pretty on the mountain scene

  • @EmmTheStrange
    @EmmTheStrange ปีที่แล้ว

    For all the fantastical things in minecraft, there isn’t an emphasis on the fantasy/ magical aspects of the game, I’d love to see something like that in a vanilla minecraft-like game

  • @bighomieeats654
    @bighomieeats654 ปีที่แล้ว

    Something about beta minecraft was just so serendipitous, i believe it was the simplicity of it, within the first hour or so of gameplay, you aren't given any tutorial, any idea as to what to do. The controls are simple enough and the hardest part so far is crafting, you could either take to to the internet for help or just scramble around and piece together what can be done next, or if you should even do anything next! the game doesnt tell you ANYTHING about it so your mind is free to do as you whim, everyone who plays this game has a different way around it, thats what makes it so fun! The fact that there is limitless solutions to each goal you try to accomplish makes it really limitless in potential. Which is cool.

  • @asdgreersf
    @asdgreersf ปีที่แล้ว +1

    "This saves the gpu..."
    Bruh Minecraft barely uses my GPU properly

  • @Dyrren_is_awesome
    @Dyrren_is_awesome ปีที่แล้ว +1

    Keep posting, this video is quite unique ang intriguing!

  • @guncolony
    @guncolony ปีที่แล้ว

    Here is how I approached block storage in my own Minecraft-like game.
    There are 3 chunk section implementations, Empty, Limited, and Full. Each block stores the full range of Minecraft block data: block type, lighting level, and biome. I also added the ability for each block to store an optional extra data, such as block HP, since this is a first-person shooter game where multiple shots are required to take out a block. Blocks that are full HP would not store anything extra.
    Empty implementation is just all air, 15 skylight, 0 blocklight, and all blocks have the same biome. The chunk data references are shared between chunks with the same biome, so this is very efficient.
    Limited implementation prioritizes memory over access performance.
    There is a block type mapping per chunk section, which is flexible from 2, 4, and 8 bits per block. For example if only

  • @FerrybigGaming
    @FerrybigGaming 10 หลายเดือนก่อน

    When minecraft stores it data at the disk, it compresses a chunk by seeing which blocks are used in aa 16x16x16 grid, building a pallete of them, and then makes a byte array where each `ceil(log(pallete_length)/log(2))` bits represent a block

  • @АнтонВеточкин-с2ы
    @АнтонВеточкин-с2ы 10 หลายเดือนก่อน

    Maybe these:
    1. Ability to create world that seems round: you return to a starting location after going one direction for a while
    [Maybe world can be stored as a flat square(?) and render for the user only surrounding parts of it and if a user approaches an edge, rendering pieces start partially coming from the opposite part of the square if that makes sence]
    2. With that ability to 'launch' to other moons-planets from a specific place of current planet. Maybe they can be orbiting around each other and not just sit in one place

  • @TotallyReliableDino
    @TotallyReliableDino ปีที่แล้ว +1

    Oh My The Next Gen Marcus Is Here

  • @nixtarma
    @nixtarma ปีที่แล้ว

    The number one step change in Minecraft from Beta to Modern was the adding of beds. Being able to skip the night phase completely undermined the lurking danger of the game, but also removed to natural cycle of play - If you didn't want to bother with monsters, you would spend all day gathering, then craft at night, once you had a strong enough base. I would love a version where monsters were better at breaking in to your base, so you had to think about it more.

  • @TheBcoolGuy
    @TheBcoolGuy ปีที่แล้ว +1

    I thought this would be boring, but now I wanna see you make a Minecraft-like game that actually has more than the basic features and is actually a game proper, and make it run really well.

  • @CherryMakesGames
    @CherryMakesGames ปีที่แล้ว +1

    One video and 3k subs, god damn you're speedrunning

  • @Zylop6
    @Zylop6 ปีที่แล้ว +1

    One thing I really miss in Vanilla Minecraft is a Level of Detail (LOD) system. Adding an integrated LOD feature to Minecraft could greatly enhance performance by dynamically reducing the level of detail for distant objects.
    While a few mod creators have tried to implement such a feature through mods, the quality and integration fall short of what an official implementation could offer. Moreover, these mods often pose significant invasiveness, potentially leading to major issues and bugs.
    Have you ever found yourself thinking, "Wow, look at these stunning landscapes, valleys, and mountains!"? Well, I haven't. Want to know why? For starters, A) I don't possess a supercomputer capable of rendering more than a 16-chunk render distance, and B) I'd rather avoid any explosive situations while attempting to render the face of a block that's practically unrecognizable from such a big distance.
    If you plan to optimize this game as much as possible, this would be a fantastic addition to it.
    PS: Love this video, keep up the great work. I'm excited for more content!

  • @XiX_Mega_W
    @XiX_Mega_W ปีที่แล้ว +1

    One thing I always though was a bit boring in Minecraft, is that you just repeat the same thing over and over for better ores. It woukd be more interesting if there were more ores and extra items for making the bars. Mob drops or even bosses would require you to explore to progress. (Also this is inspired from Terraria lol)
    Also very interesting explanation on how to optimize rendering.

  • @GLODZIO
    @GLODZIO ปีที่แล้ว +1

    @Minecraft hire this guy, please 🙏

  • @rowanweaver3241
    @rowanweaver3241 ปีที่แล้ว +1

    though this isnt exactly my preferred kind of video, the effort you put into this deserves a comment and a like to push you in the algorithm, this is really well done!

  • @indexerlaws
    @indexerlaws ปีที่แล้ว +1

    Great video looking forward to watching this project grow

  • @ihavespoken9871
    @ihavespoken9871 ปีที่แล้ว +1

    One thing I missed with the old version of Minecraft was its feeling of isolation and its simplicity. It’d be cool if your optimized game had little to no villages or signs of civilization. Maybe there could be giant ruins of an empire that once existed, but I think that the giant and megalophobic terrain should make the player feel so much more smaller and alone.

  • @johnpaulcross424
    @johnpaulcross424 ปีที่แล้ว

    Love how you broke everything down so logically and concisely, I’d love to see what else you plan on making!

  • @Scohill
    @Scohill 3 หลายเดือนก่อน

    A minecraft overhaul is such a tall task but I somewhat agree something has to be done and it can be in steps, optimizing tile entities, mob AI, world generation, rendering, lighting (although pretty sure they beefed up the lighting engine in the recent updates) but as a redstoner I can tell you that lagging the game is one of the most important parts of the game for high level redstoners, for example light suppression for super op mob farms, glitching chunks to obtain creative only blocks in survival like command blocks and barrier blocks, etc etc
    On the other hand we probably get to place 600 hoppers without coming up with a system to lock them so idk its got pros and cons ig

  • @kaitlynkitty1917
    @kaitlynkitty1917 ปีที่แล้ว

    Some of my fondest memories in minecraft is with mod packs that added huge amounts of structures. Fortresses, dungeons, villages, ruins. They made the world feel alive and interesting to explore.

  • @sirdude6509
    @sirdude6509 ปีที่แล้ว +1

    Me personally, I wish Minecraft leaned harder into the exploration and dungeon elements of the game. I absolutely love the big, complex structures like Ocean Monuments and Woodland Mansions and I wish there was more of those kinds of structures in the game. Most of the time when I play with mods, it's mods that add more biomes or dungeons or otherwise things to explore.

  • @P1Gman
    @P1Gman ปีที่แล้ว

    My dude, that voice over was as smooth as Mr. Rogers eating peanut butter sandwich. Well done. 👏

  • @unnamed2713
    @unnamed2713 5 หลายเดือนก่อน

    This man has better software developer skills than the whole minecraft team. Good job!

  • @junglebeatz
    @junglebeatz ปีที่แล้ว +1

    Very interesting, Mr. Bateman!

  • @edonslow1456
    @edonslow1456 7 หลายเดือนก่อน +2

    I often think how unoptimised Minecraft feels for modern platforms, and feel like it's crying out for seemingly basic features like LOD, which people end up modding in.

  • @RamDragon32
    @RamDragon32 ปีที่แล้ว

    With the advent of predictive text, text-to-speach- and some of the new AIs, you could impliment a "inteligent" quest feature where a quest giver (QG) can draw on a list of goals and depending on how long it took for the player to complete, how accurately it was completed, or whatever other metrics you want the QG will have a more or less favorable (reputation) view of the player. Depending on the QG's role, this can lead to price hikes/cuts, introductions to other quest lines or QGs, or even complex interactions between QGs and NPCs. Amlost any NPC can have unique quests, questlines, and even inexhaustable quests.
    Combined with your optimized terain generation (which doesn't need to be blocks either) you can have an RPG with endless itterations, dungeons, quests, storylines, etcetera. Instead of mining and crafing, it'd be a whole RP campaign!

  • @polic72andDrD3ath
    @polic72andDrD3ath ปีที่แล้ว

    This series can be amazing, but I'd recommend having a few more visuals when explaining some topics like the render regions, the ones you do have are stellar and I'd love to see more of them!