I Remade Minecraft But It's Optimized

  Рет қаралды 692,148

FinalForEach

FinalForEach

9 ай бұрын

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 900
@suluntulu
@suluntulu 9 ай бұрын
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 ай бұрын
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 ай бұрын
​@@oes2546yeah, but I want the Java feel
@lucien7045
@lucien7045 9 ай бұрын
@@oes2546 bedrock lmao
@andrewlalis
@andrewlalis 9 ай бұрын
​@@oes2546bugrock*
@kamilwiesak2404
@kamilwiesak2404 9 ай бұрын
@@andrewlalis ok
@TomahawkUnleashed
@TomahawkUnleashed 9 ай бұрын
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 ай бұрын
BlockID 46 ftw
@DanielFildan
@DanielFildan 9 ай бұрын
The McRegion format which was used thru most of Beta until release 1.1 does indeed store blockids as byte.
@Keanine
@Keanine 9 ай бұрын
@@Mempler /give Honeydew 46 64
@tinyturtle1898
@tinyturtle1898 9 ай бұрын
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 ай бұрын
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 ай бұрын
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 ай бұрын
I can literally run League of Legends on 80 fps but minecraft runs at 10.
@Onaterdem
@Onaterdem 8 ай бұрын
@@conscripthornet4430 X to doubt
@conscripthornet4430
@conscripthornet4430 8 ай бұрын
@@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 ай бұрын
@@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 ай бұрын
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 ай бұрын
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 ай бұрын
There's actually a mod that does this called Distant Horizons.
@nataly_171
@nataly_171 9 ай бұрын
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 ай бұрын
@@darkbeetlebot its limited to a few minecraft versions tho
@firstNamelastName-ho6lv
@firstNamelastName-ho6lv 9 ай бұрын
@@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 ай бұрын
you mean LODs?
@asfissiato6097
@asfissiato6097 9 ай бұрын
opening this video I expected milions of wiews... Then i noticed, you deserve more buddy
@finalforeach
@finalforeach 9 ай бұрын
I appreciate it! But I'm just getting started, and I have a lot to improve on!
@kennyalwaysdies1
@kennyalwaysdies1 9 ай бұрын
This is a really great first video
@austinwantland3974
@austinwantland3974 9 ай бұрын
Indeed! I hope to see more of what you have to offer!
@Sinsmoke_
@Sinsmoke_ 9 ай бұрын
Its been only 3 days
@cocoslangos
@cocoslangos 9 ай бұрын
Nah, it will blow up
@_m1ckey
@_m1ckey 9 ай бұрын
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 ай бұрын
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 ай бұрын
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 ай бұрын
@@pitrex111that’s pretty neat
@gavinferguson2938
@gavinferguson2938 9 ай бұрын
​@@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 ай бұрын
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)
@warfox
@warfox 9 ай бұрын
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
@andrespenuelasromero6943
@andrespenuelasromero6943 9 ай бұрын
He did
@free.president
@free.president 9 ай бұрын
+++
@artemmanilo9919
@artemmanilo9919 28 күн бұрын
ты предлагаешь переписать код существующей игры?
@ernestdominguez9320
@ernestdominguez9320 8 ай бұрын
Sodium, Lithium, Phosphor and Ferrite Core, all Fabric mods, greatly optimize Minecraft, but what you did here is crazy! Good job!
@atiedebee1020
@atiedebee1020 5 ай бұрын
Nah, these optimizations are already in the base game. What sodium etc. do is an order of magnitude more complex
@Nukestarmaster
@Nukestarmaster Ай бұрын
@@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 Ай бұрын
@@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"
@SidereumGamesDevlogs
@SidereumGamesDevlogs 9 ай бұрын
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 ай бұрын
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 ай бұрын
​@@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 ай бұрын
@@finalforeach sparse voxel octree rendering could maby help with this too and also increasing performance on way higher render distances
@TehNoobiness
@TehNoobiness 9 ай бұрын
@@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 ай бұрын
@@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.
@Jake28
@Jake28 9 ай бұрын
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 ай бұрын
Yes, lack of optimization is not the entire reason for minecraft being slow. Neither is the language being used
@chainingsolid
@chainingsolid 9 ай бұрын
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 ай бұрын
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 ай бұрын
@@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 ай бұрын
@@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 9 ай бұрын
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 ай бұрын
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 ай бұрын
@@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 ай бұрын
@@Rub-A-Duck Minetest it's not a game, it's a game engine, please consider reading before posting.
@wgnd1614
@wgnd1614 4 ай бұрын
@@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
@caleron6945
@caleron6945 9 ай бұрын
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 ай бұрын
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 ай бұрын
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 9 ай бұрын
@@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 ай бұрын
@@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.
@totallyjustmagic
@totallyjustmagic 9 ай бұрын
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 9 ай бұрын
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 ай бұрын
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 ай бұрын
Whats wrong with games that incorporate multiple genres ?
@coletm7146
@coletm7146 9 ай бұрын
@@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 9 ай бұрын
@@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)
@federicoumilio878
@federicoumilio878 9 ай бұрын
This has the potential of becoming a very informative and fun project! Please, keep uploading this type of content.
@nan0wav
@nan0wav 9 ай бұрын
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 ай бұрын
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 ай бұрын
@@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 ай бұрын
@@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 ай бұрын
@@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 4 ай бұрын
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.
@tombnomb2938
@tombnomb2938 9 ай бұрын
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.
@toblobs
@toblobs 9 ай бұрын
This video was somehow very informative even for not-so-technical people, amazing work!
@IAteYourCookiez
@IAteYourCookiez 9 ай бұрын
As a programmer I mainly hope my code works instead of optimizing so this is really interesting
@kebbil
@kebbil 9 ай бұрын
you'd be surprised how far you can get with not pessimising code
@MadocComadrin
@MadocComadrin 9 ай бұрын
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 ай бұрын
Just start programming mainly. You'll learn whats good and whats not eventually.
@flameofthephoenix8395
@flameofthephoenix8395 9 ай бұрын
I do a bit of everything.
@alecstobbs2523
@alecstobbs2523 9 ай бұрын
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.
@Axspt
@Axspt 9 ай бұрын
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
@lukenerdy
@lukenerdy 9 ай бұрын
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 ай бұрын
i dont think anyone wants the new items to begin with lmfaooo
@fantastikboom1094
@fantastikboom1094 9 ай бұрын
​@@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 ай бұрын
@@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 ай бұрын
@@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?
@ultimus616
@ultimus616 9 ай бұрын
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.
@Enphixo
@Enphixo 9 ай бұрын
Would love to see this project grown into something big. I want to support this as much as I can. Good luck dude >:)
@NobodyCentral
@NobodyCentral 9 ай бұрын
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!
@blakehorwill8454
@blakehorwill8454 9 ай бұрын
Id love to hear how you optimised the game for multithreading
@louisveran2439
@louisveran2439 9 ай бұрын
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 ай бұрын
The mod you're thinking of is distant horizons.
@louisveran2439
@louisveran2439 9 ай бұрын
@@icantthinkofaname4723 yes!
@spongewithhat
@spongewithhat 9 ай бұрын
Seconded. This is something that should be implemented early on for any game which has infinitely generated worlds.
@samuelthecamel
@samuelthecamel 9 ай бұрын
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 ай бұрын
What is LODs?
@johnpaulcross424
@johnpaulcross424 9 ай бұрын
Love how you broke everything down so logically and concisely, I’d love to see what else you plan on making!
@exonymat1471
@exonymat1471 9 ай бұрын
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 :)
@ruier6705
@ruier6705 9 ай бұрын
This looks great! I'd love to see how this evolves! And hope more people get to see this!
@HereticalIndividuals
@HereticalIndividuals 9 ай бұрын
Fantastic! That was very Impressive and I cannot wait to see what it becomes!
@finalforeach
@finalforeach 9 ай бұрын
Glad to hear it, I'll keep at it!
@MineDevStudios
@MineDevStudios 9 ай бұрын
Very technical. Absolutely loved the thought process that goes into the optimization. Well done on jumping through the first hurdle!
@icyz1ne456
@icyz1ne456 9 ай бұрын
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 9 ай бұрын
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.
@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 😂
@finalforeach
@finalforeach 9 ай бұрын
The optimization isn't done with this video! Check out the whole playlist here: kzbin.info/aero/PLQcPl5F2pPBMjxJNU6IuRG71-DQod42Rt
@indexerlaws
@indexerlaws 9 ай бұрын
Great video looking forward to watching this project grow
@vida6050
@vida6050 9 ай бұрын
Really cool project, maybe an cool idea was to open-source it so the community could collaborate:)?
@tiagowoodyard
@tiagowoodyard 9 ай бұрын
I would love to see fantasy elements, but with magic toned down, keep it simple, and good job so far.
@goldninjalion8630
@goldninjalion8630 9 ай бұрын
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 😁
@iwochol2546
@iwochol2546 9 ай бұрын
please continue this, i love the way you explained the whole thing!
@DrunknPirate
@DrunknPirate 9 ай бұрын
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 ай бұрын
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
@kcscustom9759
@kcscustom9759 9 ай бұрын
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?
@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
@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 :)
@GabeRundlett
@GabeRundlett 9 ай бұрын
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 ай бұрын
gabe being a little 🤓 about voxels
@GabeRundlett
@GabeRundlett 9 ай бұрын
@@dottedboxguy as always
@alexanderheim9690
@alexanderheim9690 9 ай бұрын
One day I also want a comment of John Lin 2.0 in my comments
@tyronorxy5646
@tyronorxy5646 9 ай бұрын
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 6 ай бұрын
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.
@enetgrinson8394
@enetgrinson8394 9 ай бұрын
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
@cadesturm5095
@cadesturm5095 9 ай бұрын
Interesting and informative without being too confusing. Great stuff, looking forward to the journey to come.
@LordOmnipraetor
@LordOmnipraetor 9 ай бұрын
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 9 ай бұрын
i didnt know that, why do you think its implinmented that way
@trazao9216
@trazao9216 8 ай бұрын
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.
@z_pistoleiro9480
@z_pistoleiro9480 8 ай бұрын
good luck with your project, i'd love to see your game evolving
@C4M-
@C4M- 9 ай бұрын
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!
@cinna9552
@cinna9552 9 ай бұрын
You should definitely keep working on this.
@kuboi_
@kuboi_ 9 ай бұрын
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.
@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
@redyellowblue8812
@redyellowblue8812 9 ай бұрын
Cant wait for you to upload more of these. Super interesting!
@johalun
@johalun 9 ай бұрын
Did you implement cubic chunks for (nearly) unlimited world depth and height as well as horizontal size? This is what I like about Minetest :)
@HarmlessRealityBreaker
@HarmlessRealityBreaker 9 ай бұрын
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.
@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!
@jimnicholas7334
@jimnicholas7334 8 ай бұрын
This is quite interesting! Glad YT brought this up in my feed. May you be blessed by the algorithm gods!
@petersmythe6462
@petersmythe6462 9 ай бұрын
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.
@turzilla
@turzilla 9 ай бұрын
interesting how youre doing it in java, i always thought c++ was faster
@stealthkillertoxic4090
@stealthkillertoxic4090 9 ай бұрын
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 ай бұрын
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 ай бұрын
@@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.
@nemesissombria
@nemesissombria 9 ай бұрын
I am totally hooked in your channel now!
@Dyrren_is_awesome
@Dyrren_is_awesome 9 ай бұрын
Keep posting, this video is quite unique ang intriguing!
@asaploui
@asaploui 9 ай бұрын
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
@donketti902
@donketti902 9 ай бұрын
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 ай бұрын
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.
@leoappourchaux
@leoappourchaux 9 ай бұрын
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
@lixxunlixxun5158
@lixxunlixxun5158 9 ай бұрын
I will watch with eager eyes as this grows!! Subscribed!!
@papryhproductions
@papryhproductions 9 ай бұрын
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.
@hel2x
@hel2x 5 ай бұрын
"I wanna make it fast" - Just don't use java😂
@spookycoop276
@spookycoop276 9 ай бұрын
I’m eager to watch more episodes! You deserve a follow.
@X4Alpha4X
@X4Alpha4X 9 ай бұрын
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.
@lucaslasko5032
@lucaslasko5032 3 ай бұрын
Why is bro talking like Patrick Bateman?
@Vincent_19999
@Vincent_19999 9 ай бұрын
Bro this looks so good! Please continiue this project
@johnwest6690
@johnwest6690 9 ай бұрын
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.
@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
@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....
@Zylop6
@Zylop6 9 ай бұрын
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!
@ahmedabuharthieh579
@ahmedabuharthieh579 9 ай бұрын
Very interesting, I’ll definitely be following to see future updates
@rbstat6946
@rbstat6946 9 ай бұрын
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!
@draxomega
@draxomega 2 ай бұрын
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.
@smellthel
@smellthel 9 ай бұрын
I’m excited to see where this goes!
@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.
@Ragz10
@Ragz10 9 ай бұрын
Love this so far hope u can actually make the complete game
@nugget7236
@nugget7236 9 ай бұрын
super cool project, can't wait to see how this develops
@thatprogramer
@thatprogramer 5 ай бұрын
I think this is the beginning of a great series!
@Kellysg126
@Kellysg126 9 ай бұрын
This is awesome! Keep up the brilliant work!
@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 :)
@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.
@rowanweaver3241
@rowanweaver3241 9 ай бұрын
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!
@brunosh
@brunosh 9 ай бұрын
this is really cool, please continue this!
@bergamot_t748
@bergamot_t748 9 ай бұрын
Cool idea. i hope you continue your project and one time we will see really cool game!!
@sircalvin
@sircalvin 9 ай бұрын
the moire patterns are so pretty on the mountain scene
@Jonny_XD_
@Jonny_XD_ 9 ай бұрын
This is amazing! I am so Hyped :DDD
@e2000gaming
@e2000gaming 9 ай бұрын
Great video! The narration reminded me of a calm Ron Swanson.
@Silver.Productions
@Silver.Productions 9 ай бұрын
i'd love to see more optimizations. keep up the good work
@FerrybigGaming
@FerrybigGaming 5 ай бұрын
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
@Tuftelien
@Tuftelien 5 сағат бұрын
oh boi, a bunch of green and gray blocks, what an engaging game
@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!
Adding Infinite World Generation To My Minecraft Clone
8:21
FinalForEach
Рет қаралды 136 М.
Why Minecraft Players Built a Real Life Supercomputer
23:24
HellCastle & Tylerrrr
Рет қаралды 860 М.
MOM TURNED THE NOODLES PINK😱
00:31
JULI_PROETO
Рет қаралды 30 МЛН
New Gadgets! Bycycle 4.0 🚲 #shorts
00:14
BongBee Family
Рет қаралды 14 МЛН
How Games Have Worked for 30 Years to Do Less Work
23:40
SimonDev
Рет қаралды 1,2 МЛН
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,3 МЛН
Vulkan vs. OpenGL
1:33
ForceofPhoenix
Рет қаралды 23 М.
Armour enchants have been nerfed and people aren't happy.
8:46
Phoenix SC
Рет қаралды 49 М.
This is NOT Minecraft... ?!
12:14
AntVenom
Рет қаралды 1,9 МЛН
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 679 М.
I Made a Neural Network with just Redstone!
17:23
mattbatwings
Рет қаралды 487 М.
Optimizing my Game so it Runs on a Potato
19:02
Blargis
Рет қаралды 378 М.
I Survived 10 YEARS in Minecraft Superflat [FULL MOVIE]
1:19:31
Mogswamp
Рет қаралды 6 МЛН
БРАВЛ СТАРС ВЗЛОМАЛИ?!
18:31
Поззи
Рет қаралды 354 М.
Grand Final | IEM Dallas 2024 | КРИВОЙ ЭФИР
6:53:16
SL4M & Counter-Strike
Рет қаралды 603 М.
CyberBrawl - The Last Sacrifice
1:35
Brawl Stars
Рет қаралды 1,7 МЛН