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
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!
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 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.
@@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.
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: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.
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.
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.
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.
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
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
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 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'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.
6:23 Redstone moment. Redstone components only tick every 2 ticks so the test spawned in, pushed the button, then checked the block next tick, and then the tick after that it became powdered snow
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'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.
6:25 Because it takes a few ticks for the dispenser to dispense. What you coded has 0 delay, so it checked both things instantly, before It could even finish
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
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)
@@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
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
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.
@@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.
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
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
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!!!
@@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.
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
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
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.
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.
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 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...
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
7:12 also mod devs can (and should) take advantage of this. these systems usually are also designed to function autonomously without the full game running (so it probably is worth to check if it can do that, if you're a mod dev)
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...
"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 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!!
That poor villager at 14:20 is getting an autopsy while he's still alive....
call that a vivisection
its called a vivisection
B
@меффин о, ник на русском
''so lets dysect the brain of this villager''
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
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 🤷♂️
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!
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 😂
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
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.
16:10 bro just doxed that bee and his whole family 💀
love that comment
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
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.
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.
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
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.
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.
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
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
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 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 fucking love squares that have eight sides
relatable
Octogon
real
@@hanjjaze thats not a square
@@ThatFlugiGuycheese
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
@@gabehembling1088 tbh thats the average non developer mindset
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
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!
20:39 bro sounded like he's working at news station in a village
LMAO
it's amazing to me that there is an Age of Empires reference this deep in the gamecode
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
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
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
6:23 Redstone moment. Redstone components only tick every 2 ticks so the test spawned in, pushed the button, then checked the block next tick, and then the tick after that it became powdered snow
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.
7:44 youtube decoder is going crazy
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😂
14:43 this villager doesn't remember the last time he slept... same
Same
YOU READ MY MIND AT 23:03 BRO I LITERALLY WAS THINKING OF THAT THE WHOLE VIDEO LONG-
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
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.
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!
6:25 Because it takes a few ticks for the dispenser to dispense. What you coded has 0 delay, so it checked both things instantly, before It could even finish
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
16:41 FireFox
I got fire fall
@@glitchyfruit2503 lol
FatWart
OAK WHISPER
I don't exactly understand how this all works.
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)
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.
7:49 youtube video compressor going insane
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
"my frustum is quite pointy" that sounds interesting
The word “frustum” sounds like a word for something inappropriate.
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
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:26 rekrap is crying rn
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
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.
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
6:14 AAA ITS GOT MY NOSE I CANT BREATHE AAAA
This is honestly really interesting. I never thought much about the inner workings of Minecraft but this sparked that thought for me.
Its really neat that they use ingame mechanics for testing.
Beacon color for test status, and lectern for test output.
1:22 rekrap2: look what they need to mimic a fraction of my power!
7:47 GGs to Bitrate.
Haha real
7:36 man I sure do love 1080p AAAH
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
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!!!
tbh that unit testing sounds useful for mod devs too
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
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
14:20 the villager just minding his business just having a good day, but then he comes in 14:20
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
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
7:00 this could also be extremely useful for mod developers to do basically the same thing
0:13 I think thats too many bread crumbs 😭
fr
True
Yes
Agreed
Indeed
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.
Wow this is really cool. Also very useful in some cases, such as searching for underwater structures.
I honestly think minecraft should have an option to enable all developer tools in the settings so that their more available to mod developers
13:57 why does a minecraft villager have more things going on in his brain than mine-
Same
No way, EightWeekUploadSchedule posted
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.
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.
16:41 OAK WHISPER
22:29 „here is Sebastian“🔥🔥🔥
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.
honestly, I think game developers are the best most elegible people for speedrunning any game
Turning the UUID into a readable prefix and suffix is such an amazing idea by Mojang
This is actually incredibly interesting! I never really knew the finer details about how things worked, but now I do!
7:34 yummy bitrate lol
Yunmy
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...
i really want to use the debug rendering stuff to make a properly functional Warden origin
I've never seen how in-game unit tests look, it's so cool!
This was is such a fascinating way to look at Minecraft it explains so much of how im expecting the game.
The link to Henrik Kniberg's video about testing Minecraft is broken. Search "Testing Minecraft Henrik Kniberg Agile with Jimmy"
12:12 Quasi-connectivity.
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!
I cannot believe Minecraft bee naming system is nearly identical to the Warrior Cats naming system
I love those breadcrumbs at the start! Amazing video!!!!
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
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
20:28 EatGrassGoal 😂
omg you did a great job figuring this out and results are very much impressive! this is a valuable toolbox for modders
7:12 also mod devs can (and should) take advantage of this. these systems usually are also designed to function autonomously without the full game running (so it probably is worth to check if it can do that, if you're a mod dev)
Imagine trading with a villager called dirt voice
8:18 it sounds like "When I press F3 and you"
21:14 pov my ADHD
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...
"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
4:26 This is in bedrock and you can use the command freely
YEA
I commented that