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
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
@@cd767 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.
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 wanted to write the same haha, just searched for the video! Also AgilewithJimmy has an nice video about that features in an in-depth-interview with Henrik Kniberg (the creator of this feature)
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!
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.
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.
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.
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.
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
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.
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
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'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
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!
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
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.
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)
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.
yeah from memory, they did it because for every feature they'd have to write some of the code twice, one where the "client" and "server" parts of the code could directly access each other, and another where it had to be encoded in packets. this lead to a lot of bugs or just different behaviour that would only exist in multiplayer or only exist in single player. this also had other benefits (better perf as the client/server could make better use of multithreading, open to lan, and chat/commands in single player)
This is fascinating!! Having recently gotten into mod development, seeing these dev tools help me understand some of the code better! I’ll have to enable these when I’m debugging 😂
@@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
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.
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
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
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!!!
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
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
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
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.
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
"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
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.
@@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.
This is awesome. A lot of these would be really just in game. As someone who has made datapacks it would be sick to use the resource pack and entity data features
@@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.
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'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.
So insight full ! That would be quite usefull to have most of these commands in game for redstoners to see how a snapshot affect core mechanics and basic farms and contraptions
Super interesting! Thanks for putting the effort in to repairing the renderers to make this video. I think Mojang should leave the working renderers in the game, but they probably don't want to have to officially support it for the rest of time, which is why they disable it and leave it undocumented.
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...
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)
At some point in time, those dev commands were actually a part of the game. A long time ago, they used to be a part of a command called debug, which was used by the devs for debugging. It did two things: log information, and print data to a debug file.
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
This is super cool! I don't know why I assumed the "Cheats" were the extent of what you could do with commands, and never even considered a special debug system, but it's really cool to see! I imagine this will be very useful for people making adventure maps, or even mods & plugins.
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
@@g0gus_sThats 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 🤷♂️
16:10 bro just doxed that bee and his whole family 💀
love that comment
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
@@cd767 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
@@cd767I 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.
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 😂
3:55 this is now accessible in vanilla!
I wanted to write the same haha, just searched for the video! Also AgilewithJimmy has an nice video about that features in an in-depth-interview with Henrik Kniberg (the creator of this feature)
@@KCodeYT That talk is mentionex in the video and listed in the description...
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!
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.
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.
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
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.
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
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.
i fucking love squares that have eight sides
relatable
Octogon
real
@@hanjjaze thats not a square
@@ThatFlugiGuycheese
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
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!
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
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
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
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
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
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
I can’t believe Mojang gave bees Warrior Cat names
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
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😂
7:44 youtube decoder is going crazy
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
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
4:14 no way did we just get this in the latest snapshot
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 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)
14:43 this villager doesn't remember the last time he slept... same
Same
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.
omg you did a great job figuring this out and results are very much impressive! this is a valuable toolbox for modders
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!
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.
yeah from memory, they did it because for every feature they'd have to write some of the code twice, one where the "client" and "server" parts of the code could directly access each other, and another where it had to be encoded in packets. this lead to a lot of bugs or just different behaviour that would only exist in multiplayer or only exist in single player. this also had other benefits (better perf as the client/server could make better use of multithreading, open to lan, and chat/commands in single player)
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.
1:26 rekrap is crying rn
This is fascinating!! Having recently gotten into mod development, seeing these dev tools help me understand some of the code better! I’ll have to enable these when I’m debugging 😂
"my frustum is quite pointy" that sounds interesting
The word “frustum” sounds like a word for something inappropriate.
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 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
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
14:20 the villager just minding his business just having a good day, but then he comes in 14:20
You’re telling me my Minecraft dog I named John could have been named “SoupWart” the whole time?
16:41 FireFox
I got fire fall
@@glitchyfruit2503 lol
FatWart
OAK WHISPER
I don't exactly understand how this all works.
I cannot believe Minecraft bee naming system is nearly identical to the Warrior Cats naming system
bro i spent so long looking for this comment
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
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!!!
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
6:14 AAA ITS GOT MY NOSE I CANT BREATHE AAAA
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
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.
tbh that unit testing sounds useful for mod devs too
1:22 rekrap2: look what they need to mimic a fraction of my power!
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
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
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.
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
Since its based on the UUID you could make an online generator that tells you your minecraft debug name :D
7:36 man I sure do love 1080p AAAH
"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
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 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
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.
YOU READ MY MIND AT 23:03 BRO I LITERALLY WAS THINKING OF THAT THE WHOLE VIDEO LONG-
This is awesome. A lot of these would be really just in game. As someone who has made datapacks it would be sick to use the resource pack and entity data features
I adore how a tiny happy face appears after an exam passes.
I adore how a tiny happy face appears after an exam passes.
0:13 I think thats too many bread crumbs 😭
fr
True
Yes
Agreed
Indeed
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
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...
7:47 GGs to Bitrate.
Haha real
Turning the UUID into a readable prefix and suffix is such an amazing idea by Mojang
7:49 youtube video compressor going insane
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
The link to Henrik Kniberg's video about testing Minecraft is broken. Search "Testing Minecraft Henrik Kniberg Agile with Jimmy"
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.
So insight full !
That would be quite usefull to have most of these commands in game for redstoners to see how a snapshot affect core mechanics and basic farms and contraptions
Super interesting! Thanks for putting the effort in to repairing the renderers to make this video. I think Mojang should leave the working renderers in the game, but they probably don't want to have to officially support it for the rest of time, which is why they disable it and leave it undocumented.
7:00 this could also be extremely useful for mod developers to do basically the same thing
7:39 RUclips compression hates this.
i really want to use the debug rendering stuff to make a properly functional Warden origin
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...
8:39 They used it for the Creaking
18:16 that helps me a lot as a developer
honestly, I think game developers are the best most elegible people for speedrunning any game
No way, EightWeekUploadSchedule posted
22:29 „here is Sebastian“🔥🔥🔥
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)
At some point in time, those dev commands were actually a part of the game. A long time ago, they used to be a part of a command called debug, which was used by the devs for debugging. It did two things: log information, and print data to a debug file.
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!
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
12:12 Quasi-connectivity.
This is super cool! I don't know why I assumed the "Cheats" were the extent of what you could do with commands, and never even considered a special debug system, but it's really cool to see! I imagine this will be very useful for people making adventure maps, or even mods & plugins.
I've never seen how in-game unit tests look, it's so cool!
21:14 pov my ADHD