I Remade Minecraft But It's Optimized

Поделиться
HTML-код
  • Опубликовано: 18 авг 2023
  • In this devlog, I made a minecraft clone voxel game that runs fast in Java, that manages to get the same render distance that's available on the bedrock edition of minecraft (equivalent to a render distance of 96!).
    Music used:
    Minecraft Volume Alpha - 11 - Mice on Venus
    Minecraft Volume Alpha - 14 - Clark
    Useful resources:
    LibGDX: libgdx.com/
    Minecraft cave culling algorithm: tomcc.github.io/2014/08/31/visibility-1.html
  • ИгрыИгры

Комментарии • 1,9 тыс.

  • @suluntulu
    @suluntulu 9 месяцев назад +6394

    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 9 месяцев назад +333

      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 9 месяцев назад +426

      ​@@oes2546yeah, but I want the Java feel

    • @lucien7045
      @lucien7045 9 месяцев назад +125

      @@oes2546 bedrock lmao

    • @andrewlalis
      @andrewlalis 9 месяцев назад +356

      ​@@oes2546bugrock*

    • @kamilwiesak2404
      @kamilwiesak2404 9 месяцев назад +9

      @@andrewlalis ok

  • @TomahawkUnleashed
    @TomahawkUnleashed 9 месяцев назад +1362

    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 9 месяцев назад +110

      BlockID 46 ftw

    • @DanielFildan
      @DanielFildan 9 месяцев назад +95

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

    • @Keanine
      @Keanine 9 месяцев назад +159

      @@Mempler /give Honeydew 46 64

    • @tinyturtle1898
      @tinyturtle1898 9 месяцев назад +93

      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 9 месяцев назад +85

      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 9 месяцев назад +1356

    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 9 месяцев назад +160

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

    • @Onaterdem
      @Onaterdem 8 месяцев назад +13

      @@conscripthornet4430 X to doubt

    • @conscripthornet4430
      @conscripthornet4430 8 месяцев назад +179

      @@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 8 месяцев назад +66

      @@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 8 месяцев назад +68

      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!

  • @chewico3d133
    @chewico3d133 9 месяцев назад +663

    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 9 месяцев назад +171

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

    • @nataly_171
      @nataly_171 9 месяцев назад +82

      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 9 месяцев назад +6

      @@darkbeetlebot its limited to a few minecraft versions tho

    • @firstNamelastName-ho6lv
      @firstNamelastName-ho6lv 9 месяцев назад +39

      @@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 9 месяцев назад +16

      you mean LODs?

  • @asfissiato6097
    @asfissiato6097 9 месяцев назад +1463

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

    • @finalforeach
      @finalforeach  9 месяцев назад +204

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

    • @kennyalwaysdies1
      @kennyalwaysdies1 9 месяцев назад +19

      This is a really great first video

    • @austinwantland3974
      @austinwantland3974 9 месяцев назад +3

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

    • @Sinsmoke_
      @Sinsmoke_ 9 месяцев назад +3

      Its been only 3 days

    • @cocoslangos
      @cocoslangos 9 месяцев назад

      Nah, it will blow up

  • @Jake28
    @Jake28 9 месяцев назад +679

    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 9 месяцев назад +72

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

    • @chainingsolid
      @chainingsolid 9 месяцев назад +14

      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 9 месяцев назад +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 9 месяцев назад +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 9 месяцев назад +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.

  • @warfox
    @warfox 9 месяцев назад +365

    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

  • @caleron6945
    @caleron6945 9 месяцев назад +51

    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 9 месяцев назад +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 9 месяцев назад +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 8 месяцев назад +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 4 месяца назад

      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 4 месяца назад +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.

  • @SidereumGamesDevlogs
    @SidereumGamesDevlogs 9 месяцев назад +317

    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  9 месяцев назад +142

      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 9 месяцев назад +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 9 месяцев назад +18

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

    • @TehNoobiness
      @TehNoobiness 9 месяцев назад +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 9 месяцев назад +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 9 месяцев назад +2356

    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  9 месяцев назад +1022

      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 9 месяцев назад +227

      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 9 месяцев назад +20

      @@pitrex111that’s pretty neat

    • @gavinferguson2938
      @gavinferguson2938 9 месяцев назад +96

      ​@@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 9 месяцев назад +228

      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)

  • @lopsidedpolygon
    @lopsidedpolygon 9 месяцев назад +73

    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 8 месяцев назад +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 8 месяцев назад +1

      @@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 8 месяцев назад +9

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

    • @wgnd1614
      @wgnd1614 3 месяца назад

      @@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

  • @ernestdominguez9320
    @ernestdominguez9320 8 месяцев назад +231

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

    • @atiedebee1020
      @atiedebee1020 5 месяцев назад +30

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

    • @Nukestarmaster
      @Nukestarmaster Месяц назад +1

      @@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 Месяц назад +1

      @@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"

  • @federicoumilio878
    @federicoumilio878 9 месяцев назад +73

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

  • @ultimus616
    @ultimus616 9 месяцев назад +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 9 месяцев назад

      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.

  • @nan0wav
    @nan0wav 9 месяцев назад +82

    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 9 месяцев назад +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 4 месяца назад +5

      @@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 4 месяца назад +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 4 месяца назад +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 3 месяца назад +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.

  • @Enphixo
    @Enphixo 9 месяцев назад +11

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

  • @lukenerdy
    @lukenerdy 9 месяцев назад +57

    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 9 месяцев назад +10

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

    • @fantastikboom1094
      @fantastikboom1094 9 месяцев назад +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 9 месяцев назад +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 9 месяцев назад +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 9 месяцев назад

      ​@@lukenerdysodium is for fabric right?

  • @toblobs
    @toblobs 9 месяцев назад +50

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

  • @alecstobbs2523
    @alecstobbs2523 9 месяцев назад +7

    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.

  • @NobodyCentral
    @NobodyCentral 9 месяцев назад +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!

  • @IAteYourCookiez
    @IAteYourCookiez 9 месяцев назад +238

    As a programmer I mainly hope my code works instead of optimizing so this is really interesting

    • @kebbil
      @kebbil 9 месяцев назад +43

      you'd be surprised how far you can get with not pessimising code

    • @MadocComadrin
      @MadocComadrin 9 месяцев назад +23

      You really don't have to think about optimizing that much in many cases as long as you're mildly conscience of the time and space complexity of what you're writing.

    • @natsudragneelthefiredragon
      @natsudragneelthefiredragon 9 месяцев назад +4

      Just start programming mainly.
      You'll learn whats good and whats not eventually.

    • @flameofthephoenix8395
      @flameofthephoenix8395 9 месяцев назад +1

      I do a bit of everything.

  • @totallyjustmagic
    @totallyjustmagic 9 месяцев назад +937

    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

    • @TheTinPotNoob
      @TheTinPotNoob 9 месяцев назад +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 9 месяцев назад +229

      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 9 месяцев назад +45

      Whats wrong with games that incorporate multiple genres ?

    • @coletm7146
      @coletm7146 9 месяцев назад +150

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

    • @TheTinPotNoob
      @TheTinPotNoob 9 месяцев назад +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)

  • @Axspt
    @Axspt 9 месяцев назад +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

  • @exonymat1471
    @exonymat1471 9 месяцев назад +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 :)

  • @louisveran2439
    @louisveran2439 9 месяцев назад +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 9 месяцев назад +14

      The mod you're thinking of is distant horizons.

    • @louisveran2439
      @louisveran2439 9 месяцев назад

      @@icantthinkofaname4723 yes!

    • @spongewithhat
      @spongewithhat 9 месяцев назад +2

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

    • @samuelthecamel
      @samuelthecamel 9 месяцев назад +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 9 месяцев назад +1

      What is LODs?

  • @ruier6705
    @ruier6705 9 месяцев назад +6

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

  • @MineDevStudios
    @MineDevStudios 9 месяцев назад +1

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

  • @johnpaulcross424
    @johnpaulcross424 9 месяцев назад

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

  • @tombnomb2938
    @tombnomb2938 9 месяцев назад +45

    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.

    • @crotchwhistle_purple69
      @crotchwhistle_purple69 5 месяцев назад

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

  • @McKay1901
    @McKay1901 9 месяцев назад +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.

  • @c4_s3y94
    @c4_s3y94 9 месяцев назад

    This project looks really interesting so far! I really hope you keep up the train of progress you have so far so i don't have to wait haha, seriously though i love watching informational video's like these 1. Because it's interesting and 2. It helps me expand my currently, relatively primitive knowledge of Game Engine's and how they render thing's.

  • @icyz1ne456
    @icyz1ne456 9 месяцев назад +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!

  • @blakehorwill8454
    @blakehorwill8454 9 месяцев назад +41

    Id love to hear how you optimised the game for multithreading

  • @vida6050
    @vida6050 9 месяцев назад +6

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

  • @Yhorzo
    @Yhorzo 9 месяцев назад

    This looks like a really interesting project my friend. I'd love to see how it develops over time.
    Best of luck

  • @BrassFocks
    @BrassFocks 9 месяцев назад

    Can't wait to see what you make! I've wanted to make a steampunk voxel survival game for a while with realistic mineral and terrain generation, but wouldn't know where to start

  • @HereticalIndividuals
    @HereticalIndividuals 9 месяцев назад +8

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

    • @finalforeach
      @finalforeach  9 месяцев назад +7

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

  • @lynxrbeam8732
    @lynxrbeam8732 9 месяцев назад +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 😂

  • @enetgrinson8394
    @enetgrinson8394 9 месяцев назад +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

  • @polic72andDrD3ath
    @polic72andDrD3ath 9 месяцев назад

    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!

  • @tiagowoodyard
    @tiagowoodyard 9 месяцев назад +6

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

  • @DrunknPirate
    @DrunknPirate 9 месяцев назад +7

    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 9 месяцев назад +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 9 месяцев назад

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

  • @goldninjalion8630
    @goldninjalion8630 9 месяцев назад +1

    I love this project, keep up the good work!
    I really hope you are able to make a quality game, I’m will to support your dream 😁

  • @C4M-
    @C4M- 9 месяцев назад +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!

  • @GabeRundlett
    @GabeRundlett 9 месяцев назад +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 9 месяцев назад +4

      gabe being a little 🤓 about voxels

    • @GabeRundlett
      @GabeRundlett 9 месяцев назад +4

      @@dottedboxguy as always

    • @alexanderheim9690
      @alexanderheim9690 9 месяцев назад +3

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

  • @tyronorxy5646
    @tyronorxy5646 9 месяцев назад +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 5 месяцев назад +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 9 месяцев назад +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!

  • @z_pistoleiro9480
    @z_pistoleiro9480 8 месяцев назад

    good luck with your project, i'd love to see your game evolving

  • @kcscustom9759
    @kcscustom9759 9 месяцев назад +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?

  • @kuboi_
    @kuboi_ 9 месяцев назад +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 9 месяцев назад

      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 9 месяцев назад

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

    • @LegendLength
      @LegendLength 9 месяцев назад

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

    • @anon1963
      @anon1963 9 месяцев назад

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

    • @LegendLength
      @LegendLength 9 месяцев назад

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

  • @darknessitself8259
    @darknessitself8259 9 месяцев назад

    SUPER hyped for the next video! this is going to be amazing and I'm so excited to see how it works :)

  • @cadesturm5095
    @cadesturm5095 9 месяцев назад

    Interesting and informative without being too confusing. Great stuff, looking forward to the journey to come.

  • @cinna9552
    @cinna9552 9 месяцев назад +4

    You should definitely keep working on this.

  • @johalun
    @johalun 9 месяцев назад +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 :)

  • @jimnicholas7334
    @jimnicholas7334 8 месяцев назад +1

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

  • @leoappourchaux
    @leoappourchaux 9 месяцев назад +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

  • @LordOmnipraetor
    @LordOmnipraetor 9 месяцев назад +14

    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 8 месяцев назад

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

  • @HarmlessRealityBreaker
    @HarmlessRealityBreaker 9 месяцев назад +2

    what minecraft could have done differently as far as game design goes is a long list. But personally the biggest problem I ended up having with minecraft was storage. Needing an overdesigned storage system just to sort items was and still is terrible. 90% of mods I see change storage in some way to better allow storage of all the loot you gather in the typical block game. But with thousands of items to collect, the inventory / chest size is pathetic. If you do anything different do the storage of items different.

    • @seigeengine
      @seigeengine 9 месяцев назад

      I mean, I think the inventory size is a problem, but I don't mind chest size nearly as much. A double chest is generally the standard unit of storage, and that's twice the size of your inventory. The problem with the inventory is that even if I run with the minimum gear I'd normally carry, I have maybe 24 spaces open. When I'm in standard mode, a few less, maybe 20 spaces open. That's just not quite enough. I don't think it needs to get a ton bigger, but a few extra spaces would be nice.
      For example, the hot bar seems like the logical limiting factor on width, and we get 1-9 as hotslots, so why not add 0? Ten wide. Instantly you can carry four more stacks of stuff, and if you make chests and whatnot match, a chest now is 30 slots, a double chest 60. I don't think those need to get bigger, and I'm not comfortable with an 8 row tall double chest, so... why not just add the backpacks everyone wants? You could even make it tiered, where the lower tier offers an extra row and is easy to get (leather bit of iron maybe), and then a higher tier that is more late-game that gives you two extra rows.
      For me, an extra column and two extra rows means 14 extra empty slots, That's a +70% increase in functional carrying capacity, and a two-row backpack would be a +120% increase.
      Personally, I manually sorted my items for so long that I don't find it to be much of a problem in general, but basic sorting systems are pretty easy to learn how to build and build.
      The big reason mods almost always come with bigger storage options is simply because mods also come with more items, and often give more uses for items, and even often tools for building faster/bigger things.

  • @iwochol2546
    @iwochol2546 9 месяцев назад

    please continue this, i love the way you explained the whole thing!

  • @indexerlaws
    @indexerlaws 9 месяцев назад +1

    Great video looking forward to watching this project grow

  • @trazao9216
    @trazao9216 8 месяцев назад +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.

  • @turzilla
    @turzilla 9 месяцев назад +6

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

    • @stealthkillertoxic4090
      @stealthkillertoxic4090 9 месяцев назад +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 9 месяцев назад +1

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

    • @stealthkillertoxic4090
      @stealthkillertoxic4090 9 месяцев назад

      @@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 9 месяцев назад

      ​@@onebigsnowball how so i genuinely want to know

    • @onebigsnowball
      @onebigsnowball 9 месяцев назад +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.

  • @frisby_ninja
    @frisby_ninja 9 месяцев назад

    This is a really cool video, and I can't wait to see the next part!
    For another optimization, I'd recommend LoD. It isn't in the original game, but any implementations modded on make it FAST.

  • @fexus9730
    @fexus9730 9 месяцев назад

    Really nice to see someone else go through this journey! It's not necessarily a goal of mine to fully recreate Minecraft but of course right now it really does look like a blatant MInecraft clone.
    I am very proud of the frustum culling in particular. If you're REALLY after minimizing draw calls as much as possible then you can do the following:
    1) You need bigger vertex buffers which hold multiple chunk meshes at once
    2) For each vertex buffer of chunk meshes, you start a compute shader that does the frustum culling and then writes indirect draw calls into a buffer. If the chunk is inside the frustum, the instanceCount will be 1, otherwise it will be 0. Vertex offset must be passed as well, of course
    3) After that you call the drawIndirect commands for each vertex buffer (Don't forget a pipeline barrier to make sure the compute shader finishes first. Not sure what the OpenGL equivalent to that is)
    It can be a little painful to implement especially since debugging shaders is extra difficult but if you succeed you now have GPU-driven-rendering-bragging-rights!
    For me lighting was (and still is) super painful to work with. It takes up the majority of time in the chunk meshing process to the point where it sometimes becomes noticable when a chunk is remeshed because of the fps drop. But of course the greedy meshing is also quite expensive.
    Are you considering doing terrain generation on the GPU btw? I want to say that this is what Minecraft Bedrock does. There is no way CPU terrain generation can be that fast (right?).
    I have been putting it off since I really do not want to translate the simplex noise function into glsl....

  • @petersmythe6462
    @petersmythe6462 9 месяцев назад +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.

  • @asaploui
    @asaploui 9 месяцев назад +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 9 месяцев назад

      chill bud

  • @johnwest6690
    @johnwest6690 9 месяцев назад +1

    I wish this video was an hour long. I would love to see where this goes. I'm pretty hard to convince when it comes to subbing, but you got mine today.

  • @redyellowblue8812
    @redyellowblue8812 9 месяцев назад

    Cant wait for you to upload more of these. Super interesting!

  • @donketti902
    @donketti902 9 месяцев назад +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 9 месяцев назад +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 9 месяцев назад

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

  • @papryhproductions
    @papryhproductions 9 месяцев назад +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.

  • @spookycoop276
    @spookycoop276 9 месяцев назад

    I’m eager to watch more episodes! You deserve a follow.

  • @rowanweaver3241
    @rowanweaver3241 9 месяцев назад +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!

  • @hel2x
    @hel2x 4 месяца назад +6

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

  • @trey5169
    @trey5169 9 месяцев назад

    This reminds me of a video I saw on optimizing a game; the video went into great detail on how programming changes made the game run more efficiently.
    As someone who's familiar with Minecraft (as a player, not a programmer) I'd love to see where you take this series, and how you explain the programming differences you chose, and how it improves performance. The more details the better, as long as you're comfortable :)

  • @Vincent_19999
    @Vincent_19999 9 месяцев назад

    Bro this looks so good! Please continiue this project

  • @Levi___Ramirez
    @Levi___Ramirez 9 месяцев назад

    Hope to see this project go far! I also feel the same way about the beta-charm getting lost in the recent years! If you need a pixel artist I'd love to help! I'm also a game dev but 3D isn't my strongsuit, but luckily retro-style pixel art is!
    Good Luck!

  • @ahmedabuharthieh579
    @ahmedabuharthieh579 9 месяцев назад

    Very interesting, I’ll definitely be following to see future updates

  • @draxomega
    @draxomega 2 месяца назад +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.

  • @nemesissombria
    @nemesissombria 9 месяцев назад

    I am totally hooked in your channel now!

  • @Kreezxil
    @Kreezxil 9 месяцев назад

    You got my sub, but mainly because you sound like Ron Swanson from Parks & Rec. Also love the heck out of Minecraft too. So I'm truly interested in this project.

  • @lixxunlixxun5158
    @lixxunlixxun5158 9 месяцев назад

    I will watch with eager eyes as this grows!! Subscribed!!

  • @Dyrren_is_awesome
    @Dyrren_is_awesome 9 месяцев назад +1

    Keep posting, this video is quite unique ang intriguing!

  • @laurencesoro4438
    @laurencesoro4438 9 месяцев назад

    Very intresting! Really helps understanding more of how it all work!
    Minecraft code is also very old and, if i'm not mistaking, is still build onto more and more with each update. Either ways, i feel like it wouldn't hurt to have a year or two with no new content but optimizing the game itself and minors quality of life changes.

  • @Kellysg126
    @Kellysg126 9 месяцев назад

    This is awesome! Keep up the brilliant work!

  • @Ragz10
    @Ragz10 9 месяцев назад +1

    Love this so far hope u can actually make the complete game

  • @thatprogramer
    @thatprogramer 5 месяцев назад +1

    I think this is the beginning of a great series!

  • @bergamot_t748
    @bergamot_t748 9 месяцев назад

    Cool idea. i hope you continue your project and one time we will see really cool game!!

  • @guncolony
    @guncolony 9 месяцев назад

    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

  • @Silver.Productions
    @Silver.Productions 9 месяцев назад

    i'd love to see more optimizations. keep up the good work

  • @nugget7236
    @nugget7236 9 месяцев назад

    super cool project, can't wait to see how this develops

  • @TimmyChUwU
    @TimmyChUwU 9 месяцев назад

    If you ever work on this more and make more videos, I'd really love to see you implement colored lighting in your lighting engine! I love Minecraft but always wished it had the ability to render colored lights. I would love to see how a similiar lighting engine implementation can expand upon it by using colors in block lights.

  • @e2000gaming
    @e2000gaming 9 месяцев назад

    Great video! The narration reminded me of a calm Ron Swanson.

  • @sircalvin
    @sircalvin 9 месяцев назад +1

    the moire patterns are so pretty on the mountain scene

  • @brunosh
    @brunosh 9 месяцев назад

    this is really cool, please continue this!

  • @usernamepleasehere
    @usernamepleasehere 9 месяцев назад

    Fantastic video! Please make a video on explaining how you implemented multithreading, I would love to watch it

  • @nosehad5486
    @nosehad5486 9 месяцев назад +1

    Great Video 👍
    I dont know much of java, but i have an recommendations:
    Use the mmap system call, to directly map the world data into memory, so you wouldn't need to care about ram that much. With that you could just add more attributes to the Blocks with needing less memory.

  • @willhunt5599
    @willhunt5599 9 месяцев назад

    SUBSCRIBED! in the future It'd be cool to add some alternative methods of crafting outside of a crafting table by arranging block in a certain way like the conduit does but maybe make it produce an item somehow. way more interactive then a stupid 3x3 crafting table

  • @mylesvmiles7571
    @mylesvmiles7571 9 месяцев назад

    i literally liked and subscribed immediately i heard that you plan on making this into a game,

  • @0sac
    @0sac 9 месяцев назад

    A while ago I thought a cool idea for a voxel-based survival game: have a distinct game progression downwards into the ground, first 50 blocks or so would be as minecraft does it (common ores, down to rare ores with lava) and then you'd reach an inpassable barrier made out of a new rock type, you need to get the diamond-equivilent to get through it, then 50 blocks more of different world generation with rarer ores etc once you reach the bottom of that there could be another imassable barrier of new stone, for this one maybe theres no way through other than finding a boss dungeon that you need to defeat to find a way in, and only underneath the tier 2 barrier can you find the ore that will let you craft tools that lets you mine that tier 2 stone, perhaps having a mine that breaks through to that level would be a valuable commodity or something.

  • @Jonny_XD_
    @Jonny_XD_ 9 месяцев назад

    This is amazing! I am so Hyped :DDD