a couple months ago while poking around with modding i ran into the disabled debug renderers! i had thought to myself "this would make a really good video", but never ended up making it. this goes above and beyond, i love all the information in this. i am simply fascinated :O
In most video games, seeing these sort of debug tools is normal. I never once thought about Minecraft having them for some reason but there is something special about seeing it done in Minecraft. It's like the inner workings of my favorite video game have always been a secret up until now. Super cool! Thank you!
9:27 This is not a discontinued feature. It's simply not shipped. They use ProGuard, which will strip out unused code. That code is probably controlled by a value in the constants file. ProGuard will see that this code can never run since nothing can change that variable (except someone modifying the code), so it removes it.
I remember that during the last Minecraft Live, they talked about how they created new developer tools to make features. While they didn't specify if they were internal or external, it'd be cool if these were some of them. Also, it's interesting how all of the mobs with special "brain" AI were introduced starting from 2019.
Not that interesting if you've been modding, the brain system is a new system they've made. Goals are old. Brains, at least imo haven't really asked what other people think, are the superior system.
I think its unnecesary for simpler mobs like tadpoles, armadillos and maybe goats, its known to create lag with villagers and piglins when they have a lot of things on their mind lol
@@cd7677 Goats need a complex AI to know where to plan their jump, but for tadpoles, I have no idea lol, but I'm not even a modder, so I'm bound to not understand some of their decisions. I see why armadillos may need brains though as their AI is more complex than the average mob. I guess lag is just the cost of adding mobs with a better pathfinding. The solution would be optimizing the AI itself instead of using a worse one.
Just as aa heads up, the unit test isn't performed by a human, it's often ran automatically when developers submit their work. It's a way to make sure your changes don't break a certain expectation of a unit test.
@@jesperkuipers9432 that one I have no idea how it didn't trigger errors on unit tests. I still theorise the update itself died, the code was fine but the way the update was packaged and sent instead caused an issue. I haven't looked at it ever since cause I just CBA lol. There's so much information slop that I can't get the exact details without the sources looping eachother
@@JonathanDavidsonn The root cause of the outage was a faulty sensor configuration update that specifically affected Windows systems. The channel file 291 update was never issued to macOS or Linux systems as the update deals with named pipe execution that only occurs on the Microsoft Windows OS. -techtarget Also insider sources confirmed that they were not testing code due to lack of time
You missed one of the more interesting developer commands: /chase. It allows you to sync two or more clients from the same or different machines and when you move on the "lead" client the "following" clients will move the same way. It was added in 1.18 to help test worldgen changes.
that sounds pretty amazing, can you do it mutually too, like A follow B, and B follow A at the same time? if so, then you could probably make fun multiplayer map setup, where you have to control the other person, and they have to tell you how to move, and you have different physical maps, normally the closest you could possibly get is like, constant teleportation, or something, which would be pretty janky
@@jan_harald It's not mutual, only one player can have control. It wouldn't be useful for maps anyways because it's just constantly running teleportation commands on the following clients.
This is really interesting! I especially love how the test command utilizes colored beacons to tell you if it was successful as well as "printing" the error message on a lectern. Such an out-of-the-box and hilarious way of displaying that!
Game tests, not unit tests - these are way too interconnected to be considered units. Good work piecing stuff together! Your test failed because you tested for the powder snow immediately, and it doesn't appear until the game has actually ticked. Also, seeing game tests written with those mappings is extremely cursed 😄
I appreciate the correction! While Yarn mappings are what I'm most used to, I gotta admit the official mappings have some incredible method names, like spawnWithNoFreeWill in GameTestHelper or tellWitnessesThatIWasMurdered in Villager.
also the height map visualization explains why they spawn on land sometimes, because where there is no water the ocean floor height map defaults to land
I love how you can see how the code improved like how a spawner isn‘t a structure but everything else is. Really interesting to see differences between mojangs and microsofts work
@@almicc This is a common issue and developers often don't bother adding extra logic for that one edge case, so they either just leave it be, or put the s in parenthesis: "1 test(s)..."
@@m4rt_ i just think the opportunity to write those couple extra characters to handle plural strings is so uncommon anyway that you might as well do it when you get the chance, especially in a language like java where it's super easy to do in the same line with a ternary. the small details always elevate quality in ways we feel but don't realize.
I just realised something: Almost all new mobs now use the brain system (1.16+ mobs) meanwhile the older ones don't (like the pig or the horse) The glow squid was added in 1.17 but that is basically a re skin of the squid (which was added in Minecraft alpha)
It would be messy to update old mobs to the new system which is why I guess it makes sense to keep both around - imagine "refactoring; old mobs behave similar but different" note in a snapshot.
There is a command that was removed in some versions, it is /resetchunk command. It does regenerate chunk around you but quite laggy and slow. They might have remove it because of this. Great video btw! I would love to see more of this!
9:03 Section Visibility is likely to determine which sections to render based on whether it's visable from the one the player is. If you're strip mining you only render the chunks in the tunnel.
I'm fairly sure the problem with the block test was that it ran the test IMMEDIATELY, whereas it takes like a tick to actually dispense the snow and the testblockatend will wait until the test is "finished" and THEN test the block, in this case it'll first press the button and wait to dispense, I assume there's a time limit by default, for the tests, and it's likely also possible to manually finish them
Interesting that there's some debug tools they keep in the game, everything F3 related, but then there's others they decide to strip out for the public build. Really interesting stuff
I think it's mainly based on how useful the features would be to players (also removing the f3 screen now would definitively cause a lot of outrage). The f3 screen contains debug information, but it's mostly performance infos and details about block states, which are quite useful to have as a player. And the included debug renderers are still useful to players (chunk bounds, hitboxes). But most of the other debug renderers/features are more or less only useful for developers, so they're not included.
@@terra_creeper some of these features, like especially the brain debug renderer for example, would be very useful to mod devs who want to implement new mobs tho
maybe for performance reasons, most programs have dev builds and release builds which are optimized for users. As the video mentioned, some of the debug renderers had to send packets that the player generally would not have, this would severely hamper performance. Java as a language makes it extremely hard to completely remove code from a program, which is why I suspect the debug code is in the release build, it's just not ran for performance reasons.
@@lunlunnnnn There are enough remnants of these systems to reimplement them using mods, as shown in the video. And while it may take more effort at first, making a debug renderer yourself is ultimately better, since you can specify it how you want, instead of needing to conform to mojangs debug renderers. For people who are not mod devs, these debug renderers are not useful, so removing the performance hit tied to them is the correct choice from a game design perspective.
I've always wanted to be a Minecraft Dev, but I never realized quite how different it would look other than normal game dev experiences I've had. Thank you for this walkthrough.
@TheEmeraldClan i dunno bro, considering the fact it took them like 5+ years to add bundles, while modders who have significantly less tools than them have been making similar items like backpacks since 2016, or the fact that most of their updates have to be split into two or three while most 5 dev mod teams can make bigger mods in a few months for free, it really seems like all mojang devs do is do 30 mins of work for ever 3 hours napping.
The reason why the pig wasn't going toward it's path was due to the fact of how you were executing it as the entity, thus ~ ~ ~ would be it's local position.
I would bet that the initial commands "debugpath" and "debugmobspawning" probably generates a bunch of logs in relation to mob pathfinding and mob spawning, respectively. Wonder what you would see if you tried those again if you had a debugger connected up to it.
@@vladivascanu108 Actually double the sides since squares have 4 sides but one face. Don't try and be smart about it when you don't even know the facts properly lol
@@BouncyBonBon No need to be rude to someone just because they obviously don’t know what they’re talking about and are spreading misinformation There are kinder ways to have constructed that reply without such the condescending tone and putting the poor guy down so much, let’s try kindness
The testing command would be great for redstoners to test a ton of complex circuits. The reason tadpoles and so have a brain is because those are newer mobs, villagers where revamp so they also show
i feel like this mod will be helpful for the technical minecraft community, also the fact that mojang had all these strings in the games code but just disabled them with a "false" value is interesting. great video man :)
It’s not too useful as quite a few of them are implemented in mods like minihud (which is designed specifically for use by technical Minecraft rather than debugging purposes)
dev commands arent intentionally hidden from players or anything, they just arent usually needed for the average player, so they are removed to not be accessible edit, they are pretty much just used to test features
ok tht was smart releasing the mod early to ko fi members and then making it avilable when the video comes out makes it so that nobody doubts youll release it and everyones happy
honestly the unit testing part would be great when making mods, especially if you're touching redstone i make mods that touch redstone i want this i might actually make my own mod for it tbh
I love this, we're seeing into the heart of the silly block game and what makes it tick also yeah no wonder updates take so long to make, all this testing to make sure things run smoothly
that block update makes things more intuitive, it's like learning Differential Equations from book but your instructor actually explains how it all works and it isn't all formula magic
@@atmudia Well yeah but it would be way cooler if it was in the base game (unmodified). This would allow for a lot of cool things for people that have basically no idea of plugins but know the basics of commands.
"The monster spawn room is not a structure it's a feature" Monster spawn rooms are just so old that they are probably hard coded way before structures were even a thing
I've always wanted to develop games for Minecraft, but I never knew how different it would be from my previous experiences with game development. I am appreciative of this walkthrough.
Pretty sure village sections might be liked to how they are generated like a structure block making the first village section with jigsaws making paths houses etc...
As a software developer, its always really cool to see how different software is made and what debug features they make for it, especially games as they tend to have very specific debug tools that you wont see anywhere else. Great video!!!
9:01 What is happening is it shows how the game renders the world each time you make a world/Load a world in. each box is a "chunk/Area" So the game loads in this chunk/area all at once and the lines represent the game checking to make sure the chunks the line is touching. (just the ones next to the chunk its checking) Pairs together and isn't like a Mountion biome in one chunk all exposed and a plains chunk right next to it. That's why when downgrading a world abunch of stuff changes and that's why you get the wierd chunks. because as the game updates. they sometimes make bug fixes and what not so it breaks. 22:47 And the last one called world gen attempt Is also used for what a said. Im guessing the different colours of boxes show what is rendering in that "Chunk/area" Like A structure or just a normal Biome Most likley used to tweak Structure generation. to tell where a structure spawns. and where it is needed to spawn and other stuff Your welcome!
@@ChocoRainbowCorn Yes, Mojang is dumb. They rarely take ideas from the community, most of the time their implementations are accidentally/coincidentally the same as a modder's, or they are intentionally taken as a community idea and modified into something else to "one up" the community in a sense. Basically, they try and make something better than what the community wants, which sounds good on paper, until you realise if the community has a perfect idea, Mojang will butcher it to make something else. Good examples include: 1. Sharks: Mojang saw how in-demand sharks were and thought we wanted an underwater melee mob, and introduced the Drowned. 2. Hang gliders: Mojang saw the demand for aerial transport facilitated by gliding, and added the elytra rather than a cheaper vehicle item. 3. Mending nerf: Mojang saw the demand for mending to be less relied upon, and are currently experimenting with making villager trading way harder, without actually touching the enchantment itself to nerf it. 4. Backpacks: Increased inventory has been a massive request for years, and Mojang has decided to first use a portable chest box from an alien dimension (Shulkers) and when that didn't stop demand for a backpack, they are now experimenting with a bundle. There are many instances where Mojang heard feedback and has done something _different_ just ot be different, not good. Granted, sometimes Mojang is correct. Dyed wood for instance has been a massive request for years, and while we still don't have a complete set of 16 yet, these days every update comes with a new wood colour that functions exactly like "dying" the wood. In the case of vertical slabs however, it's just pure rejection. Not even replacing them with something else unless you want to count walls for some reason. A similar example can be made with wool/carpetted stairs, which Mojang also rejects. Both cited as "players can be more creative with these limitations".
@@EvilParagon4 Yeah, I can understand what you are saying, although for Shulkers and Bundles I can at least see this working out. Rest of the things, not sure if I got anything on that, but I do get your comment, so thanks for explaining a few things at least.
At 8:00, in games/software in general, culling refers to hiding faces from models/shapes that are blocked by other faces, mostly faces a the "back" side of a model. This will save a lot of performance, especially with minecraft having every block as an individual model.
World Gen Attempt sounds like it would be used to generate a map ahead of time, so they can use commands like /findbiome and /findstructure, to see if things spawned where they should, but with the whole map being generated ahead of time, so the tests can run without waiting for the map to generate as the tests load the relevant map portions.
This definitely gives insight to how many conflicting legacy systems Minecraft has under the hood, considering mobs introduced before 1.14 are still using the old goal system while almost every mob after the fact is using the Brain system, and how Game Events are only exclusive to the stuff added in 1.19 even though things before that probably could've used them well enough...
Disclaimer alert, technical comment Love how the only two games I know of that use this client-server structure for singleplayer worlds are literally minecraft and colony survival, which is a "minecraft, but..." kind of game. I wonder if the block/voxel thing has something to do with this. As a web developer, I always wondered why would any game use this kind of model, adding essentially a blackbox in one side to developers in the other, specially Minecraft, which is a videogame (which makes it hard to mantain and develop) uses java (which is really slow and methodic to develop) and also haves two versions, bedrock and java, which should be close to each other but they are in different languages and different operative systems. Minecraft seems impossible to code properly when talking about the technical parts. I just don't understand how it stands together
So. Mojang. Can you pls give all of that to us. Including the test command. Mainly the test command tbh. Maybe with your tests. But that nit a necessity. Just the command itself would be amazing.
@@moobqufad-ge8et maybe a gamerule or an entirely separate thing(like hardcore mode), as making it a gamemode like survival/creative/spectator would limit what you could do for no reason
Did you know Mojang comes from Swedish mojäng, and Swedish like most Germanic and Slavic languages uses J as /j/, that is what English spells with Y for some odd reason. Mo-Yang if you like.
Some of these debug tools are actually great ideas for things to use in other projects tbh! Generating simple names based on UUID is a wonderful idea for debugging any sort of entity system nicely.
8:09 given the name smart cull, I can only assume this toggles some part of the games culling. In games, culling is used to make sure youre not spending time on objects which are outside of view. Depending on the circumstances this can be stopping all rendering of that object, or it can be as far as skipping over all logic for said object. That being said idk what smartcull is but it probably is important to optimization.
i cannot get over the fact that at some point anyone may have interacted with a mob named FatSnail
Yup
i used the mob andd my dog name was stinkysnail lol
Lol
All hail the soup stone
@@misgogoThats CRAAAZZZY!!1!!
1:53 "nearly unplayable" I play with that kind of lag daily
☝️🤓
Fr 20-30fps
That is the condition of my main base and zombie spawner xp farm one
@@MrGodofcar For me it's my shaders but I don't want to turn them off because they look cool
That’s just how I play on pvp servers and I think it makes me better 🤷♂️
a couple months ago while poking around with modding i ran into the disabled debug renderers! i had thought to myself "this would make a really good video", but never ended up making it. this goes above and beyond, i love all the information in this. i am simply fascinated :O
Yoo legitimoose
hi moose
Is this the legit Legitimoose?
Intresting!
Legitmoose
In most video games, seeing these sort of debug tools is normal. I never once thought about Minecraft having them for some reason but there is something special about seeing it done in Minecraft. It's like the inner workings of my favorite video game have always been a secret up until now. Super cool! Thank you!
I think its cuz you dont really see minecraft as a game any more due to you getting used to playing it and stuff
Idk just speculation
I felt similiar on Oot for the n64, people worked a debug rom that can display hitboxes etc, very interesting, recommend looking into it
@@Exploding_Pencils14yea Minecraft feels like a world, not a game 😂
That poor villager at 14:20 is getting an autopsy while he's still alive....
"this man is already dead, he just doesn't know this yet🧑🎄🧑🎄🐱"
call that a vivisection
its called a vivisection
B
@@mepphin о, ник на русском
9:27 This is not a discontinued feature. It's simply not shipped.
They use ProGuard, which will strip out unused code. That code is probably controlled by a value in the constants file.
ProGuard will see that this code can never run since nothing can change that variable (except someone modifying the code), so it removes it.
I remember that during the last Minecraft Live, they talked about how they created new developer tools to make features. While they didn't specify if they were internal or external, it'd be cool if these were some of them.
Also, it's interesting how all of the mobs with special "brain" AI were introduced starting from 2019.
Not that interesting if you've been modding, the brain system is a new system they've made. Goals are old. Brains, at least imo haven't really asked what other people think, are the superior system.
I think its unnecesary for simpler mobs like tadpoles, armadillos and maybe goats, its known to create lag with villagers and piglins when they have a lot of things on their mind lol
@@cd7677 Goats need a complex AI to know where to plan their jump, but for tadpoles, I have no idea lol, but I'm not even a modder, so I'm bound to not understand some of their decisions. I see why armadillos may need brains though as their AI is more complex than the average mob.
I guess lag is just the cost of adding mobs with a better pathfinding. The solution would be optimizing the AI itself instead of using a worse one.
many of these seem very recent like the event one for sculck and allays or brains for just the recent mobs
@@cd7677I think it's just the newer system
Just as aa heads up, the unit test isn't performed by a human, it's often ran automatically when developers submit their work. It's a way to make sure your changes don't break a certain expectation of a unit test.
Nobody cares, real men test in production.
@@TheCommunistRabbit >:(
Something crowdstrike is allergic to
@@jesperkuipers9432 that one I have no idea how it didn't trigger errors on unit tests.
I still theorise the update itself died, the code was fine but the way the update was packaged and sent instead caused an issue.
I haven't looked at it ever since cause I just CBA lol. There's so much information slop that I can't get the exact details without the sources looping eachother
@@JonathanDavidsonn The root cause of the outage was a faulty sensor configuration update that specifically affected Windows systems. The channel file 291 update was never issued to macOS or Linux systems as the update deals with named pipe execution that only occurs on the Microsoft Windows OS. -techtarget
Also insider sources confirmed that they were not testing code due to lack of time
You missed one of the more interesting developer commands: /chase. It allows you to sync two or more clients from the same or different machines and when you move on the "lead" client the "following" clients will move the same way. It was added in 1.18 to help test worldgen changes.
You're right, I missed that one. Interestingly this command is still in code but never registered, that's why I missed it.
that sounds pretty amazing, can you do it mutually too, like A follow B, and B follow A at the same time? if so, then you could probably make fun multiplayer map setup, where you have to control the other person, and they have to tell you how to move, and you have different physical maps, normally the closest you could possibly get is like, constant teleportation, or something, which would be pretty janky
huh, are there more missed commands?
@@jan_harald It's not mutual, only one player can have control. It wouldn't be useful for maps anyways because it's just constantly running teleportation commands on the following clients.
@@EightSidedSquarepls teach me how to download modsss
This is really interesting! I especially love how the test command utilizes colored beacons to tell you if it was successful as well as "printing" the error message on a lectern. Such an out-of-the-box and hilarious way of displaying that!
Game tests, not unit tests - these are way too interconnected to be considered units. Good work piecing stuff together!
Your test failed because you tested for the powder snow immediately, and it doesn't appear until the game has actually ticked. Also, seeing game tests written with those mappings is extremely cursed 😄
arent mojmaps even more cursed than ie yarn?
no way actual mojang dev
@@unnamedbot2960 slicedlime is a minecraft dev, considering all their work is in mojmaps I think they'd find it more natural :P
Welp, we do what we can with the mappings XD, but it must indeed feel weird to see the made up names that we found
I appreciate the correction! While Yarn mappings are what I'm most used to, I gotta admit the official mappings have some incredible method names, like spawnWithNoFreeWill in GameTestHelper or tellWitnessesThatIWasMurdered in Villager.
22:00 ohh that explains 1 glitch in bedrock were a shipwreck can spawn super high in the air
i believe java also had this bug at some point but it was fixed
It was not fixed but I am not here to argue so have a nice day 👍
I was just about to comment that
Yep, most likely it doesn’t locate a spot to place it below so it places it at that box in the sky.
also the height map visualization explains why they spawn on land sometimes, because where there is no water the ocean floor height map defaults to land
I love how you can see how the code improved like how a spawner isn‘t a structure but everything else is. Really interesting to see differences between mojangs and microsofts work
I love how when a test passes, there is a little smiley face
Fun fact, sometimes you aren't smiling when a debug test passes, instead you ask "THEN WHY ISN'T IT WORKING?!"
@@ferenccseh4037 or "WHY/HOW IS IT WORKING?!"
although i'm a little disappointed they didn't change the plurality of the message when you only have 1 test...
@@almicc This is a common issue and developers often don't bother adding extra logic for that one edge case, so they either just leave it be, or put the s in parenthesis: "1 test(s)..."
@@m4rt_ i just think the opportunity to write those couple extra characters to handle plural strings is so uncommon anyway that you might as well do it when you get the chance, especially in a language like java where it's super easy to do in the same line with a ternary. the small details always elevate quality in ways we feel but don't realize.
I have a 1.19.60 dev version of Bedrock edition and it has an Imgui window with 100x more features. It’s got a ton of cool stuff
I just realised something: Almost all new mobs now use the brain system (1.16+ mobs) meanwhile the older ones don't (like the pig or the horse)
The glow squid was added in 1.17 but that is basically a re skin of the squid (which was added in Minecraft alpha)
Also the brain system seems to just be the ai technique called Goal Oriented Action Programming
It would be messy to update old mobs to the new system which is why I guess it makes sense to keep both around - imagine "refactoring; old mobs behave similar but different" note in a snapshot.
How bad is it that squids still feel new to me..
Every beast will be slain.
But villagers have the brain system too, and they were added before 1.16. That means they were "retrofitted" for some reason.
There is a command that was removed in some versions, it is /resetchunk command. It does regenerate chunk around you but quite laggy and slow. They might have remove it because of this. Great video btw! I would love to see more of this!
Wait a second, it was removed? I vaguely remember using this command in 1.15
7:44 youtube decoder is going crazy
16:35
huh I didn't know bees followed warrior cat naming conventions :p
saw those names and immediately checked the comments for exactly this.
This is actually really cool. Im gonna install it so my friends think i’m smart when i randomly turn stuff on and off and see the green boxes
wow cool green boxes
9:03 Section Visibility is likely to determine which sections to render based on whether it's visable from the one the player is. If you're strip mining you only render the chunks in the tunnel.
i fucking love squares that have eight sides
relatable
Octogon
real
@@hanjjaze thats not a square
@@ThatFlugiGuycheese
0:13 I think thats too many bread crumbs 😭
fr
True
Yes
Agreed
23:16 this is what it looks like when you view a decompiled half life 2 map in hammer
Indeed
True
I was not expecting more than one person to relate to this lol
wow this opened my eyes, I never realized how important all the debug & testing features in games really were until now. thank you for this vid!
I'm fairly sure the problem with the block test was that it ran the test IMMEDIATELY, whereas it takes like a tick to actually dispense the snow
and the testblockatend will wait until the test is "finished" and THEN test the block, in this case it'll first press the button and wait to dispense, I assume there's a time limit by default, for the tests, and it's likely also possible to manually finish them
14:43 this villager doesn't remember the last time he slept... same
Same
I think the debug path gives you a file with the specified mobs data/code dumped in it so you can check if something goofy happened
The fact he didn't check his file system is mind blowing
@@IndianNinja8299 he DID say at the start that he wont check out logs
16:10 bro just doxed that bee and his whole family 💀
Interesting that there's some debug tools they keep in the game, everything F3 related, but then there's others they decide to strip out for the public build. Really interesting stuff
I think it's mainly based on how useful the features would be to players (also removing the f3 screen now would definitively cause a lot of outrage). The f3 screen contains debug information, but it's mostly performance infos and details about block states, which are quite useful to have as a player. And the included debug renderers are still useful to players (chunk bounds, hitboxes). But most of the other debug renderers/features are more or less only useful for developers, so they're not included.
@@terra_creeper some of these features, like especially the brain debug renderer for example, would be very useful to mod devs who want to implement new mobs tho
maybe for performance reasons, most programs have dev builds and release builds which are optimized for users. As the video mentioned, some of the debug renderers had to send packets that the player generally would not have, this would severely hamper performance. Java as a language makes it extremely hard to completely remove code from a program, which is why I suspect the debug code is in the release build, it's just not ran for performance reasons.
@@lunlunnnnn There are enough remnants of these systems to reimplement them using mods, as shown in the video. And while it may take more effort at first, making a debug renderer yourself is ultimately better, since you can specify it how you want, instead of needing to conform to mojangs debug renderers.
For people who are not mod devs, these debug renderers are not useful, so removing the performance hit tied to them is the correct choice from a game design perspective.
@@terra_creeper I guess some of them would give the users unfair advantages. Like the burried tressure at 22:10
As a developer of many years who has written a Minecraft clone engine this was really satisfying to get a look into.
I've always wanted to be a Minecraft Dev, but I never realized quite how different it would look other than normal game dev experiences I've had. Thank you for this walkthrough.
Lots more napping and lounging for sure
@@BorzoiSpotProductionsfr
@@BorzoiSpotProductionsThey wouldnt be getting paid if they did that
@TheEmeraldClan i dunno bro, considering the fact it took them like 5+ years to add bundles, while modders who have significantly less tools than them have been making similar items like backpacks since 2016, or the fact that most of their updates have to be split into two or three while most 5 dev mod teams can make bigger mods in a few months for free, it really seems like all mojang devs do is do 30 mins of work for ever 3 hours napping.
@@Lordrockerkilleryou're slow if you think they've actually been working on bundles that long😂
20:39 bro sounded like he's working at news station in a village
LMAO
10:30 This was the case since Release 1.3.2, where, in a single player context, the client and server is the same set of programs.
7:36 man I sure do love 1080p AAAH
I remember messing around with these myself a few years ago. It's crazy to see how many more debug features have been added since then!
The reason why the pig wasn't going toward it's path was due to the fact of how you were executing it as the entity, thus ~ ~ ~ would be it's local position.
16:41 FireFox
I got fire fall
@@glitchyfruit2503 lol
FatWart
OAK WHISPER
I don't exactly understand how this all works.
7:49 youtube video compressor going insane
I would bet that the initial commands "debugpath" and "debugmobspawning" probably generates a bunch of logs in relation to mob pathfinding and mob spawning, respectively. Wonder what you would see if you tried those again if you had a debugger connected up to it.
They didnt work cus he didnt enter any parameters
1:22 rekrap2: look what they need to mimic a fraction of my power!
squares with double the sides have double the benefits
Acktually eight times since squared have 1 side - 🤓🤓
@@vladivascanu108 Actually double the sides since squares have 4 sides but one face. Don't try and be smart about it when you don't even know the facts properly lol
@@BouncyBonBon
No need to be rude to someone just because they obviously don’t know what they’re talking about and are spreading misinformation
There are kinder ways to have constructed that reply without such the condescending tone and putting the poor guy down so much, let’s try kindness
@@BouncyBonBon It was ironic. Nerd emojis should have been a dead giveaway.
I honestly think minecraft should have an option to enable all developer tools in the settings so that their more available to mod developers
7:47 GGs to Bitrate.
Haha real
1:26 rekrap is crying rn
"my frustum is quite pointy" that sounds interesting
The word “frustum” sounds like a word for something inappropriate.
YOU READ MY MIND AT 23:03 BRO I LITERALLY WAS THINKING OF THAT THE WHOLE VIDEO LONG-
The testing command would be great for redstoners to test a ton of complex circuits.
The reason tadpoles and so have a brain is because those are newer mobs, villagers where revamp so they also show
I cannot believe Minecraft bee naming system is nearly identical to the Warrior Cats naming system
tbh that unit testing sounds useful for mod devs too
Turning the UUID into a readable prefix and suffix is such an amazing idea by Mojang
i feel like this mod will be helpful for the technical minecraft community, also the fact that mojang had all these strings in the games code but just disabled them with a "false" value is interesting. great video man :)
It’s not too useful as quite a few of them are implemented in mods like minihud (which is designed specifically for use by technical Minecraft rather than debugging purposes)
dev commands arent intentionally hidden from players or anything, they just arent usually needed for the average player, so they are removed to not be accessible
edit, they are pretty much just used to test features
6:14 AAA ITS GOT MY NOSE I CANT BREATHE AAAA
ok tht was smart releasing the mod early to ko fi members and then making it avilable when the video comes out makes it so that nobody doubts youll release it and everyones happy
Eight is genuinely one of the most unhinged of my friends and I love it
I can’t imagine how he acts irl
@@Vivers01 Exactly the same ngl
@@SillviaTVXD
honestly the unit testing part would be great when making mods, especially if you're touching redstone
i make mods that touch redstone
i want this
i might actually make my own mod for it tbh
Modloaders already enable gametests.
@@burkino7046 do they ? i never noticed that, not that i ever searched for it to be honest
2no2name have a mod for that
@@pwouik9784 im in 1.7 and 1.8 though, just enabling it isn't enough, there it just straight up doesn't exist
I love this, we're seeing into the heart of the silly block game and what makes it tick
also yeah no wonder updates take so long to make, all this testing to make sure things run smoothly
The link to Henrik Kniberg's video about testing Minecraft is broken. Search "Testing Minecraft Henrik Kniberg Agile with Jimmy"
that block update makes things more intuitive, it's like learning Differential Equations from book but your instructor actually explains how it all works and it isn't all formula magic
honestly, I think game developers are the best most elegible people for speedrunning any game
amazing, now modders can do mojang's job even better! good job restoring some of these functions to the best of your abilities!
pretty much anyone who actually programs mods knows about these already, eight just did the job of laying them out to a casual audience
2:20 This needs to be in game for verified servers. That is such a great feature.
Servers already uses this as plugin
@@atmudia Well yeah but it would be way cooler if it was in the base game (unmodified). This would allow for a lot of cool things for people that have basically no idea of plugins but know the basics of commands.
You actually can work Minecraft plugins
"The monster spawn room is not a structure it's a feature"
Monster spawn rooms are just so old that they are probably hard coded way before structures were even a thing
I've always wanted to develop games for Minecraft, but I never knew how different it would be from my previous experiences with game development. I am appreciative of this walkthrough.
THIS IS ACTUALLY SO USEFUL
like the raid center. That would save so many hours for me looking for some random pillager
@@oazzies8450you can also just ring a bell to make all the pillagers glow
found ya!
@@redvortex_p okay mr red vortex
When im sad and i see your videos it makes me smile thank you
13:57 why does a minecraft villager have more things going on in his brain than mine-
Same
7:00 this could also be extremely useful for mod developers to do basically the same thing
7:34 yummy bitrate lol
Yunmy
Wow this is really cool. Also very useful in some cases, such as searching for underwater structures.
i really want to use the debug rendering stuff to make a properly functional Warden origin
I can’t believe Mojang gave bees Warrior Cat names
12:12 Quasi-connectivity.
Pretty sure village sections might be liked to how they are generated like a structure block making the first village section with jigsaws making paths houses etc...
22:29 „here is Sebastian“🔥🔥🔥
As a software developer, its always really cool to see how different software is made and what debug features they make for it, especially games as they tend to have very specific debug tools that you wont see anywhere else. Great video!!!
1:03 maybe it tells the mob to pathfind to a block, and since ur telling it to go where it alr is, it does nothing.
Wait... a command to control MOBS?
I want it!
9:01 What is happening is it shows how the game renders the world each time you make a world/Load a world in. each box is a "chunk/Area" So the game loads in this chunk/area all at once and the lines represent the game checking to make sure the chunks the line is touching. (just the ones next to the chunk its checking) Pairs together and isn't like a Mountion biome in one chunk all exposed and a plains chunk right next to it.
That's why when downgrading a world abunch of stuff changes and that's why you get the wierd chunks. because as the game updates. they sometimes make bug fixes and what not so it breaks.
22:47 And the last one called world gen attempt Is also used for what a said. Im guessing the different colours of boxes show what is rendering in that "Chunk/area" Like A structure or just a normal Biome
Most likley used to tweak Structure generation. to tell where a structure spawns. and where it is needed to spawn and other stuff
Your welcome!
17:03 WAIT A MINUTE! This means mojang already has the collisions boxes for vertical slabs, and yet they keep them away from us!
Uh yeah? It’s super easy to make the collisions, they just don’t for artistic reasons
They want players to be "creative". Vertical slabs (and wool stairs) have been rejected for that reason for years.
@@EvilParagon4 I still think this is dumb in all honesty
@@ChocoRainbowCorn Yes, Mojang is dumb.
They rarely take ideas from the community, most of the time their implementations are accidentally/coincidentally the same as a modder's, or they are intentionally taken as a community idea and modified into something else to "one up" the community in a sense.
Basically, they try and make something better than what the community wants, which sounds good on paper, until you realise if the community has a perfect idea, Mojang will butcher it to make something else.
Good examples include:
1. Sharks: Mojang saw how in-demand sharks were and thought we wanted an underwater melee mob, and introduced the Drowned.
2. Hang gliders: Mojang saw the demand for aerial transport facilitated by gliding, and added the elytra rather than a cheaper vehicle item.
3. Mending nerf: Mojang saw the demand for mending to be less relied upon, and are currently experimenting with making villager trading way harder, without actually touching the enchantment itself to nerf it.
4. Backpacks: Increased inventory has been a massive request for years, and Mojang has decided to first use a portable chest box from an alien dimension (Shulkers) and when that didn't stop demand for a backpack, they are now experimenting with a bundle.
There are many instances where Mojang heard feedback and has done something _different_ just ot be different, not good. Granted, sometimes Mojang is correct. Dyed wood for instance has been a massive request for years, and while we still don't have a complete set of 16 yet, these days every update comes with a new wood colour that functions exactly like "dying" the wood.
In the case of vertical slabs however, it's just pure rejection. Not even replacing them with something else unless you want to count walls for some reason. A similar example can be made with wool/carpetted stairs, which Mojang also rejects. Both cited as "players can be more creative with these limitations".
@@EvilParagon4 Yeah, I can understand what you are saying, although for Shulkers and Bundles I can at least see this working out. Rest of the things, not sure if I got anything on that, but I do get your comment, so thanks for explaining a few things at least.
At 8:00, in games/software in general, culling refers to hiding faces from models/shapes that are blocked by other faces, mostly faces a the "back" side of a model. This will save a lot of performance, especially with minecraft having every block as an individual model.
Imagine trading with a villager called dirt voice
14:20 the villager just minding his business just having a good day, but then he comes in 14:20
16:41 OAK WHISPER
World Gen Attempt sounds like it would be used to generate a map ahead of time, so they can use commands like /findbiome and /findstructure, to see if things spawned where they should, but with the whole map being generated ahead of time, so the tests can run without waiting for the map to generate as the tests load the relevant map portions.
This definitely gives insight to how many conflicting legacy systems Minecraft has under the hood, considering mobs introduced before 1.14 are still using the old goal system while almost every mob after the fact is using the Brain system, and how Game Events are only exclusive to the stuff added in 1.19 even though things before that probably could've used them well enough...
That's SUCH a cool video, thanks for not skipping over some details, thanks for the mod too, it will be useful for devs including myself
No way, EightWeekUploadSchedule posted
Disclaimer alert, technical comment
Love how the only two games I know of that use this client-server structure for singleplayer worlds are literally minecraft and colony survival, which is a "minecraft, but..." kind of game. I wonder if the block/voxel thing has something to do with this. As a web developer, I always wondered why would any game use this kind of model, adding essentially a blackbox in one side to developers in the other, specially Minecraft, which is a videogame (which makes it hard to mantain and develop) uses java (which is really slow and methodic to develop) and also haves two versions, bedrock and java, which should be close to each other but they are in different languages and different operative systems. Minecraft seems impossible to code properly when talking about the technical parts. I just don't understand how it stands together
20:51 They can track that? Why are they giving datapackers a hard time then.
Much as I would like to claim the name "GrimBeard" I have to be realistic, my name would be "SadJaw" as my mc skill is quite sad
So. Mojang.
Can you pls give all of that to us. Including the test command. Mainly the test command tbh. Maybe with your tests. But that nit a necessity. Just the command itself would be amazing.
they could make a new gamemode for debug and testing stuff
@@moobqufad-ge8et maybe a gamerule or an entirely separate thing(like hardcore mode), as making it a gamemode like survival/creative/spectator would limit what you could do for no reason
Did you know Mojang comes from Swedish mojäng, and Swedish like most Germanic and Slavic languages uses J as /j/, that is what English spells with Y for some odd reason. Mo-Yang if you like.
8:18 it sounds like "When I press F3 and you"
This video is so nerdy yet so well explained, I love it, great job
1:17 maybe it gives feedback in the code or there’s a cheatcode that opens a special menu.
That's what I was thinking
Some of these debug tools are actually great ideas for things to use in other projects tbh! Generating simple names based on UUID is a wonderful idea for debugging any sort of entity system nicely.
4:26 This is in bedrock and you can use the command freely
YEA
I commented that
8:09 given the name smart cull, I can only assume this toggles some part of the games culling. In games, culling is used to make sure youre not spending time on objects which are outside of view. Depending on the circumstances this can be stopping all rendering of that object, or it can be as far as skipping over all logic for said object.
That being said idk what smartcull is but it probably is important to optimization.
17:34 i actually guessed 5 for no reason lol
Real