Trying The New Features in Godot 4 Pre-Alpha (live stream)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
let's see yeah the kickstarter is doing well we're in the last few hours of our kickstarter campaign um during which we've been making quite a few videos on the channel and today we're going to be testing good at 4 which i have open here i'm going to have a bit of fun with that i just want to mention with this campaign a link to it in the chat thanks to the amount of funding that we got we'll be able to hire a developer to work on an area of good at fall the core developers can't get to due to the lack of funds uh i actually found a very good developer very good contributor to work on that so while looking to to work with him um anyway let's see will the new kickstarter tutorial cover the newer good stuff we will remake the calls for good at four um which is currently not available right it's pretty far from coming out so um that's when we will remake the course thanks to the amount of funding on the kickstarter we can make the calls for group three right now so you can just learn and use what's available at the moment gudeo4 is in pre-alpha so it's very unstable and next year when good at 4 comes out and it's stable and everything then we can make a new version of the course for it [Music] any questions i did not answer before we get started um i wanted to mention one thing so someone uh keppakinspinzmc asked whether uh they could export a blender material to goto without baking and you can already export the upper shader so if you use gltf i have an example here with the astronaut i just put it in let's see how it goes yes it seems to import fine so when i import a gltf file you can see that it imports materials and those are as made in blender right um so we just import everything and then how do we create a new scene from it i think right click new inherited scene right okay it's super broken and good at four let's see oh is it no it's the new lodc system okay so it's automated lods here let's see how we turn them off um skip import i'll have to to check the documentation quite a lot because today we are going to yeah you have the lod options in the new import tab here so what i want to say is that the i heard from juan's presentation that they are looking into a way to make it so you can work in blender and you can design materials and just export to godot and the materials just work right now it will work if you use the upper material from blender it will work fine so let's see these new options i'm going to jump between here and i have the official docs there because the developers are maintaining the docs pretty well for this version um can we build google for frame source yes can you tell me about your system in os it's a pap os it's a laptop from system 76 or linux normal split angle normal merge angle there are no uh tool tips yet generate save to file okay okay so normal split angle normal merge angle i think probably it's in the scene that i have to go get the meshes and let's see the leds in there yeah i think something like visibility range geometry lod bias right but if i increase the bias yes you can see i can increase the lod bias to kind of change the distance from which i have to look at my character to to uh get it like that so this character here already was imported just as gltf i didn't create materials in godot i didn't assign textures or anything it just worked right so gltf already gives you that from blender to godot uh why is the ui so big it's on purpose it's for you on the stream especially for people watching on small laptops tablets and mobile phones so they can see uh the things right so this is really something we do for tutorials for because there are about 10 of people watching on mobile devices and there's a question would that be an arabic version of godot yes it's already the case and godot is one of the few engines that supports right to left text um so there was a recent contribution adding the ability to write in arabic use uh is it indian [Music] text that that is a right to left so you have support for that and probably where is it i think you change the language uh okay i'm going to save that as my astronaut if i go back to the project picker you can see here you have english and you have arabic right here right and in the project uh picker hey jill um we have um agile is the developer behind the tile map editor so everyone uh knows okay maybe we can look at that first so here's the list of features i wanted to show a set importing navigation tile map gd script physics in 2d and 3d the new navigation server for real-time pathfinding culling and 3d performance right to left text i wanted to show it no promise because i don't know arabic so i'll need to find some sample text and all uh uh sign distance fields not certain i'm going to put it at the bottom right um uh four shaders and those kinds of things particles uh the new interface with the window system the inverse kinematics because someone asked about procedural animation and you have more tools for that the new light mapper the real time scale sky shades is the improved profiler and the dots generation all right let's get started with the tile map already because i worked a bit with it for a video and this one is really cool so you have the good for video the new features that shows you a bit of those but what i want to show is setting the thing up again from the start um and i'll see if i remember everything so we're going to create a new scene and i'm going to um create nope i want okay control z didn't work this time other node tile map to create the tile map you'll see it works a bit differently from before so here i in my inspector it doesn't want to okay can't drag it right now okay the tilemap editor was pushing it to the right all right i'll create a new tileset i remind everyone that again this is pre-alpha this is a fresh build and the the expect bugs crashes those kinds of things would those would be normal so here's the new uh tell map and tell set editors you have two tabs in the bottom panel when to create the tile set want to paint the game map so the way it works now is you can drag and drop your textures say let's see the textures the flaws for example so i'm going to go back to my tile set and click and drag the new texture then it offers me to automatically create the tiles in the the texture atlas you click click yes and there you go you have the tile map setup right so um you can very easily navigate it select multiple tiles like that and paint multiple at once that's one of the the new features you can still um draw in various ways okay that's a starting point that's nice now what if i want to have uh other things if i want to have trees like here i'm going to go back to my tile set and the nature of tileset i'm going to do that but this time i don't want to automatically create the textures because the tiles in there are some of them are larger than one cell right so what i want to do is go to the how do you do that i can click and drag shift click and drag right wait wait wait wait um i can shift click and drag and i can make larger tiles right tiles that are several cells for my trees and even even larger like groups of three trees like that right um so i'm going to just do those and then you can click and drag i think to create individual tiles right of one cell all the plants for the little rocks we have here and i'm pretty sure there's a control perhaps let's see yes you can control click and drag to create all those individual tiles very easily right control click and drag and i just created 12 styles at once all right um so i can go on my tell map and one of the new things i have access to there is layers so um one thing to to know about the new tileset editor is by default it doesn't have too many features inside the tileset results and the way you add them is in the inspector so when you are in the tile set results you have those folded sections that allow you to add only the features you need to the tile set for example i'm going to want collisions not on the floor right but on the trees i'm going to want collisions so i'm gonna go to physics physics layers and add one right and you can set the collision layer and mask for this physics layer uh so let's say uh it's just on layer one and it doesn't have any collision mask it's only going to block the character and i can leave it that way you have other things like navigation you can create custom data which is very interesting for all kinds of games and so occlusion for lights for example one i want to create already is a terrain or no we're going to do that in a moment first i'm going to go to editing the physics of those trees i want to add a collision shape there so i go to the paint brush select the property i want to edit in the drop down i'm going to expand this window um click and what i want to change is the physics layer there so you can see it allows you to edit the the collision shape of the trees so i can edit a shape in this little editor right now and i think jill is working on allowing you to edit it in there uh i'll let him maybe confirm uh in the chat so what i can do right now is i have my shape and i can click and drag to add it to all the tiles my control z is not working right now so uh seems to be a current limitation of my build okay so one thing you can do once you have the view here i can click and drag to edit my collision polygon i can create one like before so i could delete and add points and so i'm going to do that i'm probably going to add let's see can i add a point just right there right there okay or do i have to draw a new polygon does add to right click doesn't remove so i have to select the tool and click okay i'm not sure um how the editor works exactly i'm just going to keep things that way for now all right and it seems there's a grid as well so right now it's snapping i don't know if it's snapping to the pixel grid by default seems so uh although it feels a bit sub pixel at the moment and i don't know where do i edit the grid at the moment okay we'll be usually saying uh and um with his next pull request you in the select mode you will be able to do to set up the shape in the tile inspector so i guess still in that one because then right now i can't do it is that it yeah if i just use the selection mode and i can resize styles and all but it seems i can't draw a shape is that this one um okay so i'm just going to draw click and drag to draw this on the trees and maybe fold those i would need different shape right um one thing i need to understand no i think what i'm seeing here is the texture offset region okay that seems to be it all right so i can play some collisions uh that way one thing is if you want to remove the collision from the thing you clear you can select the clear option and then you paint right so you remove the collision shape from here and then you click and drag on the tiles again to onset yeah i think that thing it's the same as for the terrains um it's not intuitive at least it's in a thing like that i think uh something like an eraser icon or something with uh maybe just an eraser that's global here that just knows that it's just removed the property for terrains for for everything right um would be easier to understand um but anyway the the painting and all is really good um and so we have some collisions for our trees so now we can go place them on our tile map and well if you place them on the same layer right it's going to override one of the tiles yeah i think my control z is not working at all uh in this build ui undo control z uh that's going to be problematic i'm gonna have to find maybe another build well i'll finish with the tile map and then i'll go maybe i don't know download the build or something so what you can do now is add rendering layers where is it already you had them that was rendering or no perhaps it's on the the tile map node right layers yes and so the first layer we're going to call it ground you can see it updates in the drop down menu there um you can why salt elements on the layer if you put scenes and all in there so this is very convenient and i'm going to add a new layer called trees let's use the dot oh no the grass the grass is better for that i have a bucket fill right there okay um and so i have my new layer called trees i can select it which grays out the background you can toggle this behavior using the icon there you can also toggle the the grid view which takes a bit of time to update right now but it does work yeah you can see sometimes it takes a bit of time to update and then you can draw the trees so right now the the trees draw a bit like centered on the cell and this is not what i want i want to offset them to do that i go back to my tile set i'm going to nope i didn't want to do that and my control z doesn't work great uh okay i'm just going to leave it like that for now uh and so i want to go to the texture offset and i can offset a given texture so tiles are 16 by 16 so i think i need to offset just four pixels no eight of course uh i offset the texture of my tree by eight pixel and so the tree will take one cell but we'll offset up you know uh to be to have the base centered on the cell which is what i want in this case uh and for those i'm going to have the base of the three trees centered on the cell so if i draw one of the big sets it's going to work like this right so i can choose when i make big tiles like those i can choose how they draw and how they align with the cells um all right do you still use affinity designer no inkscape um anyway those are from an artist in the guru community called pixelboy uh free and open source those ones i think uh well and uh creative commons if i remember correctly okay the next thing i wanted to show that's really nice in this version are terrains so if i go to the tile set to my nature tile set here um and to my tileset results in the inspector i can go to terrains add a terrain set so this is um the new auto tile system if you want i think we want to use match corner and sides right now and i can add a new terrain so i can say something like i want uh the dirt terrain i'm going to add another element and i want the grass here i'm going to use overlay colors the colors are going to be overlaid on the tile map so things like pink works well and this i will have to test to see but okay i'm going to go to the tileset editor bottom panel to set up my terrain so i go to the terrains select my set select what i want to paint so let's say i want to paint the grass right and then i can select the tiles that are going to be part of this auto towel like this right and then i can paint my bits so i'm going to zoom in a bit uh i want to fold that a bit right and crap because i can't erase yeah i think uh here uh control shift like right click to erase would be very nice like it was on the tile map editor uh because right now to erase you have to select no terrain and then you have to draw no terrain if you make a mistake and i need to go there um and then go back and select the grass you can't just erase with some kind of eraser tool let's say so i'm going to draw the grass in there um i'll try to go quick i think that's how i'm supposed to draw it basically the way terrains work is you draw the parts where you have the texture you want to to auto tell so in this case with the grass selected i tell the grass right all right and i'm holding ctrl shift to um make rectangle selections for those styles uh i think i need to draw those and those corners right because i see some grass in there so i'll supposed to tile like that then here i'm going to draw the area all over the grass um and do it there there there takes a bit of time to to set up but um at least it's a lot more convenient and faster than the existing um tileset editor in guru 3 because you can click and drag regions i wonder if there's maybe if jill is still here if there's a way to just um to access that from the the plugin api because then you could um you could just um if the tiles are always sent the same way you could just say by a plug-in like generate just the tile areas right generate the bit mask yeah i'm going to use um some 3d textures um it does work if you don't set up the the dots the the way it works right now um is going to be something like that so last test i did at least it's that if you use a single thing um maybe in in that case i got it yeah i probably got it wrong um which part is it that i got wrong or maybe in that case do i need to to draw like that this is grass and then in the top left there's dot no because there's also dot on the right and upside so no no i think the yeah in this case i think as you say jill i need to set up the dot for the two to interact properly i've done one test i think it's uh if i set up the dot in this case instead of the grass because it's the fill in the center it will just work um yeah anyway i'm gonna set up the dirt as well then so you can see the bits from the grass stay and now i can just set up my dirt and paint the parts that are not grass that's it and chosen a different color um but yeah this is definitely a process that i would like to automate same as in uh good at three actually it's you know the kind of stuff you don't want to be doing by hand for every tile map [Music] thanks joshua for the the the support uh you're saying spending hours every day learning the dough uh you're struggling with getting art to make your own game for friends spreadsheets etc uh the best one is going to be kenny assets uh vklens is asking why the center bit mask is always empty uh this is by design in this one i must say um it's been a bit uh also unsettling for me but uh that's just that it's ah and i can't undo uh let's see i'm going to yeah i don't know why my undo is not working today uh i made a fresh build for this one and uh perhaps i'll after working with the tile map because i have extra features that jill has been working on um then i will re-download another another build where control z works or is it my keyboard no control z i can't get it to work we'll see okay okay okay well getting there almost there um i would expect definitely in those cases for example the center bitmap to be painted in dot um uh because it's clearly dot right and it's not grass um but uh yeah it's just uh by design right now uh the center bitmap the the yes center bit represents the current tile i guess and so it in practice it only checks the surrounding ones right to o2 tile so it makes sense um there we go that's jill is explaining just that right it's not taken into account by the algorithm so this is why uh but it it's true that um it being not drawn uh needs some explanation at first uh okay let's see with the terrains now what we can do all right can we get some dots in there so um what i downloaded today is this ability to um that gel added to make rectangle uh selections when drawing terrains right and so the way it works you can see i can select the grass and the dirt and they will interact with one another very naturally so this is something you don't have in good o3 right now uh which is a new feature of the the terrain that jill's jill worked on uh one thing i want to fix is uh in the grass i don't think i have to go to terrain i have to go to probability right and and and i made a mistake here on the terrain right because it's drawing those uh oh yeah but it's because it's all grass with dots in the middle but this is also all grass right um huh how am i supposed to paint this one i think i have to set the terrains icon or something i don't remember why you do that um was there an icon option okay one thing i can change is the probability at least of the other grasses i can click and drag so this is going to give me random strands of grass right one thing i would like to to mention about that i think an improvement would be those are currently uh using white noise i believe like purely random distributions and a blue noise for that would be ideal um okay and jill if you can remind me how you set you can see it's drawing the the holes in there how can i uh set those right i remember there was something i did in the last video that you showed me but i don't remember what it was yeah regarding the bit mask jill it's really it's really just a ux thing so it it's not so much about taking it into account in the algorithm as much as uh although i don't know because maybe this this if you want it's that it works differently and displays uh more importantly differently from the current uh one you may want to set it uh that's basically what is support for a center bit would help i suppose yeah i i guess i guess yeah that's a current limitation um all right so let me see i need to go back to painting terrains no probability zero i i i remember doing something like that so uh but i don't know i don't know for the video like there was something that allowed me to not paint this center tile but maybe that was just that setting the probability to zero so you can see uh distribution of random grass in there based on the probability i chose and note that you can use that distribution anywhere right so uh one thing you can do is select a couple of uh grass styles in there right and you can say place a random towel uh one thing we're going to do it like that i'm going to draw a big square of grass right and then i select the strands and i can place a random tile so if i do an area it's going to place those strands everywhere but one thing i can do instead is use the scattering option which is very cool um so i'm going to say 10 it's like place one every 10 tiles on average of course so there you go if you do it in an empty area you will see it just place some random tiles but yeah there i think uh correct me if i'm wrong right but i think it's a it's just random placement uh like with white noise um but you can do that then uh using for example i can select those plants i can do a big scattering like 16 at least at the as a starting point can just randomly place those and of course i didn't properly work on different layers so i have to do that um and well i'm saying all that of course like the the things that could be improved and all but honestly this is such a massive improvement over the existing uh editor it's already much much welcome jill has been working on it for a very long time okay so if i go like that and place random tile on a separate layer you can see i can place um some some vegetation in there right uh someone is asking someone asked about improvements to grid map and i i don't know that there have been lots of improvements um and um uh it does gridmark have a similar random scattering feature uh i don't think so right now i don't think it got a lot of work yet for good for all right so there's really a lot to the new uh editor you can set up navigation rendering um one thing i do want to show maybe is how you can now add scenes right um so say i have some characters in there let me just remember how you do that uh scene collection right you can add a scene collection and i think you can't drag and drop scenes just yet this feature is missing um so you have to create a scene and drag and drop it into the inspector there right and so i can say i'm going to select the other scene here and add it there and i can name the scene i guess i don't know this is the collection so npcs can call it npcs so now if i go on my tile map i can create a new layer on the node i'll add a layer and i'll call it uh interactive and so unlike before in good o3 i can just place characters on the map um so uh how is it now i have to remove place random tiles and i don't go on the trees i go on my interactive layer and yeah i'm going to to place my characters there right i'm going to place a dog and please don't mind that it's blinking because it's a bleeding edge version i'm putting i'm using right now of godot so there are some some bugs of course you can see the character blinking and i think it's because it's on this layer and yeah i don't know why exactly it's happening but um yeah so those are just scenes that you can edit in godot you can directly place them using the map editor you could place moving platforms you could place npcs that you can talk to those kinds of things all right if you want to see a bit more of the tile map in action i'll link to the youtube channel uh one of the last videos this one uh okay [Music] you can see the character blinking might be missing it because of fps no i don't think so it's just a display bug probably i don't know what i did what i did that could have caused that but one thing i see as well is now i think it's this version that i just downloaded something happened perhaps to the bottom panel that prevents me from pushing uh this one i think i could fold it more easily before all right now it seems to have a large default size default width um okay can godo make multiplayer cross platform games yes um and yeah um i i think sheila is getting to the to the end of uh his current batch of work on the tile map tileset editor uh it's a massive undertaking like it took a very long time for example for the free and open source program called child um to get to that level right it really took years and um it's it's a very complex thing to bring all those features uh jill did it in just one year uh it's a really complete rewrite of the of the system so from there there are some like small things that can be improved but that's something um others can improve as well uh xavier why my donations are not showing you you did a top chat um and it's not showing yeah the bottom toolbar constrains the size okay i see um and yeah regarding multiplayer the crashes is saying the multiplayer api is really nice and it's getting a lot of polish um yes i will be doing some 3d uh could you show us what's new in the ik feature yeah i'm going to go over the the more the features that might be of interest to more people and then i will get into ik a bit later uh like the the things start a bit more niche so okay went over the tile map we're going to go over assets imports uh okay i'm going to rearrange those things uh sky shaders we're gonna do quite a bit of 3d all at once uh light map maybe no like map i think it's more for the the end of the list but we're gonna do a bit of gd script and and and and uh lighting i didn't put it in there it's um new rendering features in 3d one thing i'm going to do is um i'm just going to kill this one i'm going to see if in my files i do still have the 4.0 version no i need to re-download it so i'm just going to do that um it is on the official website they posted it i think not right i think i can put it on twitter so let's go on twitter friends um and we're gonna go to uh akins account right um and so we need to go back because there are quite a few tweets let's see uh or if someone can uh can post the link i'm not sure where i can find i want the pre-alpha because i remember control z working right um like there was a build that was shared on twitter yeah there are so many tweets someone has it uh that'd be most welcome i didn't didn't see the control z issue so um wow so many posts oh it could be in the good engine accounts now there are fewer tweets there yeah i don't know why it's uh not working it should be it's the the latest master look i'm going to uh upstream master okay rebuild and let's see but sometimes it's with my keyboard options because i use international us english keyboards i've noticed that uh some things on my desktop sometimes have a few issues um okay so i'm just going to finish recompiling this warm up my coffee and i'll be right back all right hi hi um to the german community i'm pretty sure we have a couple german uses here um the light twitter hurts my eyes um what program are you using for the to-do list it's e-max which i don't necessarily recommend uh i do recommend maybe one called obsidian that's also an open source program using markdown uh it's uh easier to use way easier yeah where's everyone from by the way so france here but currently in central america okay while the program links let's see how the kickstart is doing i actually have people who have been monitoring this amount much more than me but as well getting to the last few hours it's going up like crazy um yeah uh 120 000 it's insane okay oh we have someone from living in japan or from japan um usa canada argentina australia oxiteny um netherlands portugal italy mexico spain brazil hungary wow we have we have people from all around the world we have another another person from costa rica here well i'm not from costa rica but i'm in costa rica from nigeria we have people from africa here vietnam slovakia yeah all right i'm gonna open the new build uh it's a fresh one we have here let's go and now we're going to move on to 3d russia romania egypt belgium bangladesh wow welcome everyone your pronunciation of mexico is perfect especially [Music] so i'm used to i'm used to the pronunciation but french people would say mexico normally okay welcome to 3d and guitar i'll just ask for one thing so tell me if the stream slows down or something the reason i'm asking for that uh is because my graphics card is not the most powerful and i'm using that for video encoding okay i'm just going to hide the skeleton uh drawing in there there you go this is little tokyo from the sketchfab contest it's under creative comments um yeah i see a bit of tearing maybe i'm gonna use the other chunky knight scene for now because it should run a bit faster so i had set up these 3d scenes for the the video about the new features in a good fall but what we're going to do is remove the environment remove the light and this is i think default stuff right so we have a floor a character and this is the default sky i know that now is it in the view menu where is it no it's probably here right you have the three dots and now you have a much better default sky uh and setup for the character the grid looks nicer it's really so much nicer than previous versions of godot so now i can uh set my default lighting in the view a bit more easily right it's a bit like what they did in um in um blender right there they have those nice um settings in there so you can choose if you use ambient occlusion it's hard to see it's only on the character's feet um you can change the the default color of the sky you can see the sky at the top update um and it's going to change the the color on the character max distance from four shadows uh you can move the sun the sky is a procedural material you can use and you can generate an environment from that actually you can add the sun as a directional light 3d i don't know if it's i think it's not like that in godot but look at i find that thing amazing so um where's the directional light let me select it okay add it to the floor so if i select my directional light do we see the sun look at the sun if i turn it the sun turns with the light i think this is new right so you can use that to make a day night cycle probably i think the the sky shader the procedural one is much much faster um uh okay let's see the are you one of the maintainers of godono all right so let's look a bit at the new lighting options i'm going to keep my directional light which i can use to control the sun so you have some familiar options for the shadows and all one thing i want to note is the shadows look much better by default already uh that's an important fix the shadows are also enabled on the directional light by default which is very useful because typically you use them that way uh you still have some options so you can blur the the shadows right you can make them sharper you have some interaction with the the fog that we'll look at in a moment if we can uh and you can change the shadow color you can change the bias to extend them in case they don't touch the floor like you don't have the contacts you want you have a couple of um you have a couple of nice options in there um i mean similar properties to good three what changes really the visual quality now another thing that changed is if we add a world environment node right so the scene turns black because we don't have an environment but we can add a new environment in there by default it's going to give you a gray background and this affects the indirect lighting as you can see uh camera effects i haven't tried so we'll have to check that but if i expand my environment i'm going to edit it straight in the inspector edit doesn't work right now okay um i can change the background to a sky right and then i need to create that sky so it's first a sky resource and then the material you have to choose panorama sky i think is going to be a texture right then you have the old procedural sky this is similar to what you have in guru 3. i think it's faster and a couple things like those but um the other side it kind of works the same and you have that thing also uh let's see i think it should work you can turn the light to move the sun right so the directional light when you use a procedural sky is now your sun which makes a lot of sense uh this is really cool but you have a new physical skype material right and this one is a more realistic kind of lighting so you have a few options to change how the the light works and let's see i'm not sure about what the different parameters do can change the exposure the strength um you have a night sky option i was testing it the other day it's really nice you can put a panorama texture uh for when the sun goes down right instead of having it all black you could have some starry sky and some light from there but you can see the the new physical sky for one it's very fast the shader uh this is updating in real time of course um and when it goes down you really have the the haze and the colors that change uh now what i wanted to test is i've seen something with clouds in there and we're going to go look at the the documentation to see if we can do that and how it works i just want to look at a few other features so we have the rayleigh coefficient that changes a bit the the the way um the it makes the light more blue when we when we uh take it down uh and gives us a bit more of that uh haze at the bottom i don't know if that's the right term but when we pull it up eccentricity i'm not sure but i see that i can make the sun look more like a disk with that and the coefficient uh okay expands the sun it seems i'm trying to put it in concrete terms right now we're gonna go to the docs and let's see if the such helps us there sky shaders um okay without the highlight please i think i had stole the link in emacs for this one right yeah there you go um no it's the same it's the sky shades you can draw a background i will be called for all non-included fragments on the screen uh for the background subpasses it will be called for every pixel of the subpass all right so i can write some shaders wait wait wait wait generate clouds is that a built-in function or i would imagine not that you have to write something but that that is very interesting that use half res pass so you can for example you make clouds which would be expensive like volumetric clouds with whatever ray marching or some other technique uh and that you can do them at half resolution for performance right so that's really cool uh well i imagine uh this is not going to work but let's try uh new shader material it's called gds now the the file type uh okay so generate sky yeah i know the the functions don't exist of course uh i know it's idea i direction uh nope shade type is sky okay let's see that's in our read only time position radiance at half res blah blah blah blah light x python sky built in so the eye direction should be a built-in for that kind of shader excuse me i need to bring this back up for the chat so uh the choppiness of the shadows is still uh present um [Music] yeah there's there's uh some so there are more features to smooth them out uh the choppiness is present when you take the sun down a lot i think there are ways to fix it at the moment with uh better quality settings or things like these uh can i access the pre-alpha yup well i've compiled a version of godot but i think you have builds on uh hugo lozio's website um so yeah the eye direction i can't get it working right now um even though it's i'm using the shade type sky but if i close the scene and reopen or open the shader again now it says the i direction um built-in is not valid so that might be a bug like might be a known issue as well um okay so we'll we won't find much on that but yeah i'm pretty sure these functions don't exist anywhere right i just wanted to see if there were my instruments built in but yeah okay so if you want to make a sky shader you have to code the sky and that makes sense um ah it's void sky okay and uh generate clouds exist no there's no function name for it right all right all right so the the docs are a bit uh outdated thanks uh chaosis is a core developer who who um made contributions to the visual shader editor quite a lot and probably two shaders as well right rendering okay anyway i'm going to pass on that one uh let's see is my control z is still not working right what if i go to the japanese keyboard nope nope nope nope nope well it's fine um so we're going to go back to our physical sky and just turn the the light here one thing i want to show is all the world environment options so let's keep moving forward um okay so the source of ambient light can be the sky or the background i guess it's the same i guess you can have a sky and a different background so you can choose which contributes to the ambient light reflected light you can have different sources you can disable it okay so this is for gi i guess the tone map will take a look at it in a moment but the first thing i want to do reflections let's see the new reflections should be much nicer so what if we take the floor and we make it reflect what is orm material what does it do wow that's a bit weird uh okay let's see what we can do with that uh i want to see in the dock what that is because i don't know about this uh is 3d optimized and good for yeah in general good is getting optimization all around even good three orm opacity roughness ah makes sense um sorry ah control z is working here okay cool it's because you have the standard material so i i would like to know what's the difference between the two uh let's see no docks on this one yet okay um all right well now there's not much documentation on that they see orm texture i know i see all the options from the standard material so there's clear code the rim the those kinds of things so i see that you can turn stuff on so i'm wondering if it's uh just because you have the standard material for compatibility and maybe this one is with my look because if i go to an oran material and standard material the difference is that orm section um so i don't know maybe it has some optimizations or things like those now because there you can enable the stuff as well i know i'm not going to use real remap what i want to do is uh set it up for reflections although right now the the rendering those are the the reflections right still just a bit broken at this moment um let's see what can i do here sub surface scattering refraction detail sampling shadows um i can change the sampling of the textures that's a there are new things in there i feel um if i change the roughness i don't see much difference okay uh what is a node okay so first please don't um okay i'll just do a temporary block uh don't spam um and then what's a node it's just that thing you have in the top left we have a video on the subject uh on the on the channel uh will dynamic assets import be implemented as far as i remember rm is for the materials imported from blender okay how expensive would it be to make weather effects with this like sunshine and running clouds um i guess you have to you have to write the shader like it depends entirely on how you write it um what that was spamming just asking what a note is but like uh eight times i guess all right so uh the reflections right now uh i don't know looks a bit a little bit broken to me uh so it might be a temporary bug all right so we're going to turn them off uh screen space ambient occlusion you won't see too much here one that's interesting is the sdf gi the new global elimination this one when you use it it can take a bit of time to update i wonder why it's not uh updating yet what do i have to use read the skylight nope ah yeah you can see it takes some time to update but see the global elimination gives you that smoothness at the bottom um of the character uh yeah someone mentioned the shadows were a bit choppy uh it's i think it's because i lowered the blur on the shadows right there we go that's by default you have that blur and then you can uh improve the shadow quality the shadow map size to have a higher quality one but uh they'll do for the stream again i'm using my graphics card for video encoding so if i push things too much um it's not going to be too great so that's new global elimination you just press a button and it just works and it looks good you can see without now if i turn it back on it needs some time to calculate the the gi again uh generally when you move the camera a bit it will update right so this is especially uh in the editor but you can see the the smooth shadows and all it looks really great this one um i really like this and it just works honestly it's uh it's pretty cool um okay on google home page takes a single texture occlusion roughness and metallic parameters so the rm material is like a takes a one texture that has occlusion roughness and metallic uh in three colored channels i imagine um yeah for the uh reflections uh someone's saying turn on the turn the steps up to 512 but you can see now that the lines you have here are just um there's something that's off right there shouldn't be that um that's why i was saying this probably a bug abound performance is far better than 3.4 well there are constant performance improvements too good at three and good at four some things yeah will be more performant the the 3d side yes by default like out of the box um the rendering is is um is going to be faster but uses vulcan so you need somewhat recent hardware like a graphics card that supports it anyway um one thing you can do is save the node uh there our world environment open the littlest tokyo here i already had one but i'm gonna remove it and then i'm gonna get drag and drop my environment in there right to see the effect of the global illumination uh in that scene and i want to hide again the skeleton where is it uh it's not physical bone it's the skeleton option so it's down there okay uh what's the is shift f right to walk in the scene so you're going to see some choppiness and all i'm screen uh recording like encoding on a laptop with a laptop gpu so uh it's going to be necessarily a bit slow i think i have i haven't tlsing in there maybe i'm going to remove it just to keep things smooth this is the new the new project settings so by default that's greatly simplified you don't have too many options the main scene the window options and those kinds of things the layers and then you can turn on advanced settings to get everything and really tune your project a bit more also you can see i can move things i can dock them and all because everything is using windows now i want to know what's a node i'll just link you where is it we have a getting started series uh there we go this video i just link will explain um nodes scenes those kinds of things right it's it explains several concepts about uh godot all right but nodes are that thing you see in the top left down like lego blocks you used to to build you're good at games that's the simplest way to present it so anyway uh i want to go to anti-aliasing now has a section um and we have the msaa disabled should give me no it doesn't give me much more performance in there uh alright so we might as well keep it at least uh two times yeah that way it won't be too too bad all right so um you can see how uh it's very interesting so the the light is entirely real time right now the global illumination and if i go um if i go down there in the street right uh the bounces like there's no direct light in there so it's all indirect in real time because things are close to like the walls are very close to each other you don't get a lot of light but um [Music] this is not if you want uh pre-rendered to a texture so this new gi looks really good um if i go to my environment here probably screen space ambient occlusion will make more difference you can see i can add some contact shadows with that it's very subtle by default you can tweak the radius make it a bit larger intensity is also going to make the shadows more intense and then you can choose the light effects uh to add shadows in the light areas but it doesn't make so much more difference i can change the the curve here the power curve to add more or less and it should be yeah it makes more difference right okay an important uh feature to use in your 3d games is the tone map in the environment this allows you to um if you want to remap the the pixels uh to [Music] when they are rendered on the screen so it tells you concretely to add contrast or change the exposure adding or removing brightness uh can i add the fps counter to this scene yes um again uh on this computer it's probably slow so let's see frame time wow yeah when i turn the camera you see my fps goes down i don't know why exactly but there you go uh when i'm static it's going fast and let's see just one thing is if i turn up the sdf gi yeah then it stays stable it's just when you turn with the sdf gi it's recalculating uh the lighting kind of in real time uh let's see what if i do four cascades no what if i do minimum cell size yeah if i change the minimum cell size i lower the the quality of the gi and now it's really smooth but also i get uh i get more light in there that's nice uh maybe the the resolution was too small let me set it to two yeah the lighting is good and and the frame time is good i do get frames going down as it recalculates the global animation as i turn uh but it's looking really nice add occlusion culling uh yes we'll look at occlusion calling um so uh uh uh uh by default you should have more occlusion calling like built in but it's between objects so yeah you have lots of objects and meshes in there it's probably not rendering things we can check that with a wireframe now there's no occlusion happening right now we put the overdraw it's always drawing everything i don't know if i need anything to set that up if i need to change um if i need to change i know that there's like some built-in occlusion calling right now uh that's kind of automatic so there's always the thing like if you look there or something that the faces that are not in the view are not rendered of course uh like there is in good three as well right uh occlusion calling in that sense but that's basic one let's see if i try to open the scene importer what can i find in there so i have something for level of details uh i can probably change the bias uh later to do that the materials um [Music] yeah there isn't much i can change in here what if i go to the meshes and i select them all yeah i think one problem with this scene for occlusion culling is uh the way things are split i don't know uh it's not really designed or used in a game like it's a pre-made scene for display but you can see that by default you have some occlusion culling options some options for global illumination the visibility range uh what if i lower the lod bias those are the generated lods right so making it so if i zoom out right i go away it uses a level of detail so that's one optimization it got the auto generated ones have some errors in there but some are working fine right what else do i have casting shadows transparency overriding the material for the mesh now i don't know about the uh default culling i know that jfonz was working on it but yeah uh would as efti work when goodell works with gles no i think it's really using features for vulkan all right when it comes to occlusion calling one thing we can do is uh occlude uh instance 3d i'm going to add an occluder so that you can do in good old 3.4 already right um so let's see we're going to add uh is it where is the option to is it broken right now and good at four um so i show it and okay i can make occlusion shapes in here wow that are a bit too detailed i think and this will occlude things behind the meshes okay so display the wireframe display the overdraw let's see the change much i don't see much change on this object again this scene not designed for game so if you have multiple different objects uh it might also be that the the calling i've seen someone showcase it on youtube so i know that it was working uh and without doing too much like the the built-in one um [Music] uh but that was in a previous build so right now i don't know uh but that might just be this scene right um [Music] the main thing i noticed is the the occluder node uh i i can it says bake them but i can't normally you can in growth 3.4 you can add spheres in there manually you can attach them to to nodes that are moving around but uh here okay i don't know what i can do you also have the the portal calling now um is it not room manager okay it's not available in good of four right now so it's in guru 3.4 uh you need to activate it in the project settings okay let's see occlusion culling uh raise per thread bvh build quality use occlusion culling all right um i still get quite a lot of overdraw uh let's see the wireframe yeah you can see because there are some small meshes in there uh so i don't know can't quite get it to work uh right now but it turns out there's an option uh in the project settings to activate the occlusion culling well as i couldn't get it to work i'm going going to leave it at that um well sky shaders would just trade the sky culling and performance we looked at that rendering and lighting i just want to check a couple more uh things we have the sdfgi uh we played with the tone map it's the same thing the new aces uh fitted which is higher quality is not available yet uh in there but uh yeah when you change the tone map compared to the the linear mode you can get quite a bit of contrast and looks really nice i get some really bright sunlight in there um this scene looks really good i think the original author made it as um under creative commons and then changed the license but other people had redistributed it and uh creative commons so i thought was not available anymore but it is and yeah you can see the global elimination everything update in real time i see some i know there's a gap in there okay there's a bit of a gap uh in this mesh all right all right all right well that does it for the tour of the rendering and lighting uh what are we going to do next the interface with windows was a mind thing but you've seen that some things pop to windows i wonder if i can detach anything like that right i don't think i can detach the uh the inspector nope can i right click and i click here and pop something make floating okay so i can make a floating inspector and put it on my other screen how do i dock it back i don't know okay close the window and it pops back and good oh but this one in the middle like the the help and all it's floating windows now um so the docks i can make float but the bottom panel and the center area not yet right um so that's how it is for now it seems uh what is portal culling uh it's a feature that allows you to define rooms and not render the the rooms that are not visible so um it's uh i showcased it uh in the 3.4 video so i would recommend watching that it's the easiest sorry to see uh well i'm going to to pop it there and let's see streaming a video let's see where is it that we show that there you go around here you're going to see that this is the the calling in general in in good old 3.4 so you can see a couple of things um uh uh this is the the calling that goto does kind of by default right when something is outside the view um what i'm showing in there uh it's not going to render what's behind the camera but then the portal calling is something like that we define two rooms in this case so you define boxes or areas and you define portals between them so kind of like doors or an entrance or something like that and when you do so the engine can really optimize the rendering because it just has to check it considers that you can only view through this portal right so that could be two rooms in a house or something like that and we'll very efficiently check what is behind the entrance to remove as you can see we have different objects in there it hides the walls and all the coins in the other room we made the walls transparent so you could see that so you can see uh shadows which might look weird but this is because shadows are calculated like they are somewhat baked to a texture that is then drawn on the floor but it's not rendering the wall in there and the object and you could imagine you have characters you have lots of very detailed furniture all things like those it will very quickly discard them from rendering greatly improving rendering performance you can use that outside as well but you have to use some clever tricks like putting a canyon or something like that like putting some some things in your level design too to kind of separate the areas and be able to very quickly because if you want with portal culling you can have a huge area in a box and just if you have a very large world very very quickly if through the portal you can't see that area it's going to hide the entire box um okay is the new physics uh engine in this build it's an improvement to an existing to the existing physics engine um would enemy ai physics still be simulated in cold areas yes it's just about rendering right then you can use the visibility not fire node like before to turn off processing on a hidden node or an invisible node or turn off everything outside the view those kinds of things um but so the the best thing to do when you have a very large world is you don't want to have things too far outside the view so you just not have them in the tree and you just spawn enemies and all when you get close right um any other questions um okay uh someone is asking a question about the the kickstarter and the course in learn to code from xero with godot will we learn how to optimize performance like that as well in the course um so i i don't know if some people don't know the the project right now but i've been uh hammering it so much so in this course this is a course for beginners while finding on kickstarter right now and so this is to learn to program from absolutely zero but using goodwill we will talk about some things regarding performance but don't expect like a course that's in-depth about how to optimize stuff because it gets very advanced right this is not something you can learn some things as a beginner are just overwhelming and not relevant as well until you have some experience yes we'll talk about some very important things the most important one being when it comes to performance you have to test right you don't make assumptions which is something beginners make a lot that's all like um you know if i remove the if and i use a variable something like that does it change the performance and um very inexperienced people tend to focus a lot on those kinds of things that don't make a difference at all uh unless you're doing this operation or running this code millions of times a second perhaps or even more so um [Music] we will talk about very general strategies for optimization uh in the context of goodu this is uh in general you test the performance uh you don't make assumptions um and you measure things um you use built-in features as they run on fast c plus plus code and then a couple of things you can do if you ever encounter performance problems like where you can search all right what feature do you think you'll personally get the most use out of very clearly uh for me it's going to be and for the the entire g quest team it's something we're going to look at next it is gd script the new g-script language uh g-script version 2 if you want speaking of which we're going to make a new scene and i have some assets in there so we're going to go 2d this time we looked a bit at 3d time to go 2d the default window is very small let's go to the window settings and go i'm gonna go the good old uh 920 1080 and let's see full screen when we launch the game all right do i have a background in there so i have some 2d assets i pulled in from yeah okay i see what i did all right i'm going to instantly add okay a canvas layer with adding nodes and all right now in this build is not as responsive as i'd like it to be in as it is in godot 3.4 you can see the new color picker uh so we're going to make a sky color in the background and canvas layer i'm going to set the layer down like that all right then i'm going to use some of the assets uh from the the project while making uh this one should be free and open source uh not should be it will be free and open source like a community game maybe i'm gonna set up another uh tile map i'll see if i can do this real quick uh it's pretty fast in this new version so okay i'm going to add the tile set go to tile set editor at the dungeon and it wants to create the atlas but the size is not right yet so i'm gonna go was it 128 what we did by 128 and we have a grid here that seems to be of a different size no it's still okay so i changed the size here this is cell quadrant size uh this is used for batching so i think you can use the tile size at least then if i go in there to toss it editor aha the grid unless this is a bit bothersome uh do i have to this is a bug i think yes i had to re-add the texture to do this all right so now i have my tiles done i'm just going to very quickly i'm going to add layers to my tile map i'm not going to add collisions just yet just a visual layer so this is going to be ground and walls so that way i can draw the walls on a different layer on the ground i'm going to go with this to start with i'm just going to put some ground walls uh there you go and tom up should be at the top like that and we're going to draw some walls on the walls here um i need to [Music] i want to get maybe i don't want this line i want to get those all right and that way i can sample those two and i can do a line of them uh and i'm going to sample those two and draw the angle and now yeah it's so much faster to make a to make that so now i can sample those and put them at the bottom i have two walls okay let's call this our level um on topic of optimization will there be pointers in the new scripting language no no no points are definitely not coming to gd script that kind of low-level stuff if you want it you'll use the gd extension there you can use i mean you can use multiple languages right in godot and so gdscript is really for fast and easy use let's say and so it's not going to get um very low level optimizations all right i'm maybe going to turn on pixel snap i guess uh just to avoid the current issues 2d snap versus the pixel to the transforms to pixels nope uh where is it i wonder if it will maybe not show in the game right now okay um how will writing a plugin for 4.2 be different from 3.x i mean just the api is changing a bit but um yeah about the same okay so i'll add uh i made this a sprite but we're going to make a kinematic body 2d uh it's called character body 2d now right and it has new options you can see now some of the things this is really cool this is one of the many um not so small but the many improvements and polish that you're getting uh and good at four it's lots of things you would add to scripts every time and uh those aren't now just property and you can just call move and slide and you don't need to specify all the properties so okay we're going to have a character the sprite and we need a collision shape 2d um do we use a capsule in there why is it not drawing my capsule is and okay wait the body is there so i need to reset the character's position down here and we're going to update the collision shape size ah capsule editing finally finally is like that this is much better before it would grow the height when you edited the the width um how can i get guru for pre-alpha okay uh let's find the links because the the link because multiple persons are asking so i think uh hugo lozio right i think he has those unofficial good builds let's see which version is that i think those are currently less optimized than the official release also debug symbols um i guess that should be good for right that should be the master build um there you go uh although is there something about plugins we'll be able to write them in different language and others will be able to use them without um i think so um [Music] the [Music] the this version i think has c sharp built-in so i think there won't be a different version for c-sharp anymore i if i understood it correctly i heard juan talk about something like that and uh zero wolf if you're trying to put links i think now uh youtube just blocks them it locks lots of things like you you can't even put the message or something i'm not seeing any links in there when someone puts a message that's an insult or something like that will instantly be removed by the like youtube does that now uh but um yeah i think for links it just blocks them all right so i'm going to save that as a scene right there let's see in 2d and we're going to start working with both uh gd script 2 and physics i think so the completion sucks a bit right now if i remember correctly um but let's see what we can do so one thing the main thing you're going to see in here it's um going to be it's going to be uh very similar to the previous version of godot and at the same time a bit different i'm going to see if the settings maybe it's just my settings that that sucked a bit so completion delay idle pass delay i'm going to go 2.8 something like that completion delay zero uh auto brace complete okay it's finally on by default i type hints yeah i'm a big fan of type hints and i want to show them because it's part of the the new features enough in um uh should arrows be reported to hugo no clearly not it's to the issue tracker and you need to check that um you need to check that they don't already exist because there are thousands of them and you don't want to create duplicates which happens very often uh regarding new kickstarter will you be changing it and updating it to work with new changes that work with good it for also will you do c sharp in good for c sharp i'll say it straight away no this is not planned yet uh and the new change is for good four yes when good at four comes out we intend to we plan to redo the course for group four but we'll be making it for the current stable version uh right now okay uh what are we going to do why am i writing the ready function i'm getting a bit uh sidetracked like i'm losing track of things so we're going to write physics process and what do we want for the character we want a speed uh all right i'm just going to calculate a direction and then i can get the new there's a new feature and go to 3.4 i forgot it in the video there's a really great new feature well it's a small helper but you can now um get a move direction with a joystick in just one function call i'm just going to add action so i have the ui actions which are built in now i'm going to add move okay left move right move down move up um okay i'm going to do a w ah wow this is cool you just have to to do an input now and this is a nice this is a really nice feature you don't have to you don't have that drop down where you have to use different uh way you have to tell um if you're going to use a joystick or something like that so move up um okay actually i'm going to go get the game controller we're going to see if it works with the the xbox gamepad be right back okay let's plug you in um okay let's see so we're going to move left i take the stick left yeah i'm uh pressing directly there oh this is so much better this is cool there are lots and lots of small things like these that the developers have been thinking about right um which will be so much more convenient moving forward so uh get uh uh it's called get vector get get vector is it negative x positive x negative y positive y yeah i think it's it's this one uh so it's a string name parameter okay uh so i guess it's move left uh move right it's not completing them now okay i'm just going to do boom boom and this was the third argument um positive negative y positive y and dead zone right i guess a y positive y uh out left and right not working at the moment uh negative y up and positive y down all right now we can just do move and slide uh direction name speed expected at most zero what moves the character based on motion velocity wow so you have the velocity built in now that's cool i do motion uh velocity is equal to direction time speed and i have a character that's it uh look the get vector thing also seems to normalize that you don't need to normalize the direction i don't think i'm moving faster if i go up or right or diagonally hey that's cool so just those couple lines of code right and it's so much better than before this is really good you have the up direction there you have the motion modes what are they uh defines the behavior of movements like okay well i need to go to character body 2d and okay motion mode apply when emissions of walls seeing and flaws are relevant uh the will react to slopes acceleration and slow down okay so i need to go to the free mode for a top-down game the speed is constant when you slide against colliders right with this mode okay free mode minimum slide angle minimum angles in radians while it's shown in degrees here the display has the degrees now for the angles this is really cool when it encounters a slope the default value is 15 degrees okay um moving platforms so what do we have we have some settings um okay so this is the inertia you can choose if when you you're on a moving platform and the character jumps for example inside scrolling game you can say uh apply the give the inertia to the character only going up or always even when going down or on the side so if you're moving on a platform and you jump you will get the velocity of the platform plus the character's velocity probably okay you can choose which layers you can interact with with this character the collision safe margin um i think the developer maintainer of the physics engine told me now we're moving to um go to physics by default and go to physics to save margin you just don't need it uh what do you have collision layers and masks pickable uh disable mode what is it behavior when the process mode is set to disabled remove makes static keep active so i think this is for when you pause the game because now the this is also another thing uh the process mode like the pause process tells you if you can pause this um a process when paused always process uh or disable i don't know what the difference is exactly but have more flexibility in the past system that's built into godot motion velocity includes the delta yeah it's a velocity so it will it's a speed in a given direction and so you don't have to multiply by delta anyone can use go for yes you can you can test it we have a link above in the chat for that if anyone can reshare this one uh for when people ask for for that for the download okay okay okay um so now um difference in the language it's you use this at the these annotations to um to export variables and you now have specific exports depending on what you want to do in the inspector multi-line text note path uh placeholder i don't know what that is a range a minimum and maximum i guess you have the ability to add an icon to your class in there with an annotation on ready variables uh tool mode for the top of your script to make your script in tool mode rpc for online but you can see color without alpha um exponential easing file to have the the file picker when you click the property in the inspector there we go those kinds of things right and i don't know the hints how they work now if i go in parentheses i don't know multi-line no i don't know property hint multi-line text this kind of property hints i don't know if you can use them um not sure because it seems those are the export modes method script property of variant type and pointer max i don't know how you do the the range now i would expect uh okay let's see what it says with the error requires the most okay the annotation doesn't take arguments but i know how you define the value ranges like before but so now i need to save i have my speed i can edit now i would like a slider or something like that which you can get when you set the minimum and maximum and go to three but right now it's not available so um ah this is cool you can now select the currency there are really lots of small improvements okay so i have a moving character all right let's um add some colliders to the talmap right so i'm i'm gonna go there i'm gonna move the character as well to be more in the center of the screen and now in the tile set gonna add some uh physics right some um a physics layer it's going to be on layer one and you can attach materials now to the physics layers it's not just a collision box so if you want to change the physics properties or use rigid bodies and have some bounce or friction all those kinds of things um you're going to you're going to have them applied through the tile map uh okay i'm going to go to the tileset editor all right can i i can't drink that yes i can okay expand this and go to paint select the physics layer and so by default it makes the square so i can just paint it on my walls just going to do this real quick over there if we use those maybe not but there we go uh collision's done all right much faster than before so much faster we're going to do visible collision shape and test the scene and there you go this is blocking my character now one thing i can change as this is a top down game i'm going to use perhaps a circle shape right make it a bit smaller because i don't want the head of the character to collide with the walls there you go uh the next thing we can do of course is add a camera 2d to our character any changes in there let's see nope this is all uh like before for now we can have smoothing in there with a high speed drag handles nope uh camera is still the same i mean it works well so uh some renames there i see ordering now uh i don't think it i think it was named um z index and yeah the y sort now there's no node anymore right you can use ysor directly on all 2d nodes this is good um there's i think there's an ad range tag or something okay so this is what the range thing export range and let's see it's going to take two arguments so between uh 100 and 1000 i guess and now we're going to get the slider probably yeah yeah now we get the slider oh i need to click the little slider down there ah it's not working right now clicking on the slider thing uh doesn't get the slider to move like before uh well i guess okay searched a bit about gi uh gles2 wasn't able to support gi and what it's one of the reason they won't support it uh yes it's correct that uh gles2 is very limited in terms of the feature set it's made for mobile phones and also there you would use the new light mapper which we can maybe take a look at a bit later all right camera camera is not current and the character is slow because i greatly reduce the speed uh camera needs to be made current yeah now with the the camera or getting the smooth motion problem that is uh messing with the tiles um jiel the the developer behind the talent told me that yeah he wanted at some point if he was able to do that like had the time look into that technique that consists of uh adding some padding around the tile textures so you you duplicate the surrounding pixels and blur them and this completely this is the ultimate solution to get rid of what you're seeing the blue leaking behind the tiles uh surprisingly enough it's something i've used in games right that kind of making textures like that and the trick is you use something like a photoshop or or whatever and you take your tileset you add some padding between every tile so some empty space you duplicate the the whole texture and blur it a couple times and blur it and duplicate the the blurred version a couple times put it in the background that's how you would get rid of this problem because then it's a texture sampling issue so this happens with all texture sampling all engines right um it's not specific to good although i think wasn't there a way to clip uh rendering uv clipping i know it has some issues but no it doesn't work all right another thing we can do is go get the texture in there dungeon uh where do we change this is in the import right and we're gonna go with uh nope it's not a texture like that um we can't change the texture filled uh here i know i think the texture filter is now a property of everything anything that uses a texture right i think they change that which makes more sense to be honest but why would i change that on the tile set texture filter nearest right repeat nope i don't think you need some repeat in there yeah with nearest filter you're going to still get some artifacts right because it's it's a bit too sharp with the smooth camera so now i guess uh linear nearest mid-map isotropic nope i don't think that will help um so let me see uh pusinella [Music] let me see because i didn't see your message all right gi won't be in good for uh at least not right away no no it's already there uh if you're talking about uh gles2 specifically jelly s2 won't have gi uh just because it's a very limited standard uh but so yeah the the clear answer is um gi is there already global elimination i showcased it earlier in the video um all right so that's for uh 2d physics what are other things well we started using a gd script as import i showed it at the start physics in 2d and in 3d let's um look a bit at that so i haven't tested into the the um excuse me i'm getting a bit tired i didn't have too much sleep um the yeah i didn't try the rigid bodies in 2d which we have of course i'm going to stop the running game and we're going to make a simple 3d scene with the default sky will do the job and we're just going to have a flaw which you make with a mesh instance we're going to make a box uh can i i don't have gizmos to edit the box interactively right now so let's go 40 40 in the z axis and move it down and that will be our floor all right now we're going to uh add the sun to the scene there we go so we can just turn the view around but uh what i want to do is now get my astronauts in there let's see yeah the problem is it's from okay uh this character is made in guru 3 so i can't use that probably the script has yeah it's the it has lots of issues but just want to be able to copy and paste some code okay we have the ground now we're going to add a character so character body 3d and we're going to add our mesh as hr of it uh the mesh has the lod bias issue so uh let's see how do i do that maybe i need to make uh okay it won't let me oh it was deleted but not updated instantly so i'm going to make a new inherited scene uh and what i need to do is you have the new level of that are automatic but they are too violent in this one so i'm just going to remove extra call margin okay i'm just going to crank up the lod bias to not have the lods kick in and not destroy the character this is going to be well our model all the character and wall games um okay and why is my model not displaying in here okay it broke it's kind of one of the issues um okay what broke it was working moments ago the size is problematic uh so rude scale that's one possibility one possibility is it's way too big uh import the animation light map um ah can i turn off i can turn off generating lods so that's good uh still broken right the mesh got lost so okay clearly we have a bug in there let's see the errors uh yeah i don't see anything particular well it's pre-alpha stuff so that seems to be a bug okay just going to forget about the character model i'm going to use just um a regular capsule or something for the character uh otherwise i'm going to lose too much time uh height of 4 radius of 1 or 0.5 and two is going to fall supposed to be really easy or really hard to understand well what i'll say about it is um it's it's uh really powerful so it has more features than goodw3 but it's simpler in general does it have vulcan yet yes and did you try the decal node yet no that's a good one i'm going to add um to there so let's add a static body uh i'm going to put the mesh in there and i need to add also a collision shape in there just to have a floor to collide with wow uh and it's going to be a box shape and the box shape is going to be of the same size as apparent box roughly okay now we have a box shape we have our capsule um mission sense and i do want to change the material just to change the color so it pops right i'll use pink blue there's a blue background so i'm more going to go towards those kinds of colors right that's where it will be more visible so let's look at the camera setup behind i need to add a collision shape of course all the character body and it's going to be a capsule hood i thought same 0.52 okay and maybe i'm going to move this back down uh let's see i need to go out of the mesh and into the transform position okay um and then i'm going to move the two here up one unit okay perfect uh so we have a collision and i want a camera because we need that for 3d so i have a camera but i want to see if i have uh the spring arm okay and i'm going to attach the camera to the spring arm someone at the start of the stream was asking how do you do a camera that moves away from the character well it's pretty simple you use the spring arm it you can see the line it draws in there it's going to push the camera there i'll make the camera current and we can get a preview i think it should position at the end of the the arm let's see there you go okay i need to add the environment to the scene otherwise i'm going to get a black background all right and you can see the even if i move the camera forward okay so the colors the color of my ground is not really helping to visualize everything so i'll change that right now albedo what do we use blue ground no i'm going to use a dark blue this just so we can see all the lines i'm also going to remove the grids and the origin i don't really want those just so we can see the the camera and everything else right maybe reset the default layout note that we haven't been we haven't had a single crash we've seen some bugs but um i've seen videos of people doing stuff and a good o4 would crash but we don't really have that that so right now we have the spring arm and you can see as soon as i test the game the camera moves back and this is the strength of the spring arm that's going to push things back okay let me save that to a scene 3d character body and add a script to it um and so i think the character body similarly to the 2d one now has lots of settings built in right how it moves on moving platform the snap vector like the snap vector length you don't have to create your own variables for that um all sorts of things if it stops on floor and those kinds of properties and where is the motion it's not exposed maybe it's not in the inspector so it seems you need to set a property to move the character now into the like in 3d since there will be some update uh in gd script well your website tutorial will still be uh will it still be accurate but we'll do updated content for good at fall basically we'll have to update a lot of stuff we'll have to see if we do like keep the guru 3 stuff and yeah there's someone doing a um automated uh project translation so like porting the code to gd script and all which is probably not going to be perfect and it's not going to work for very large games i would expect but someone has been working on that project conversion tool um ah crap okay um so let's code our character real quick and um but yeah the the tutorials and um and uh like it will take time to point everything too good at four because we have massive amounts of content and this will be the same for everyone else right it's not something you can do overnight um but we'll do our best to be very reactive with that all right so i'll go with physics process we're going to have a move direction uh same thing is going to be get back to input.getback actually i'm going to copy it from characterbody2d because it's the same thing right i need um an input direction i'm going to call it input direction because the move direction is a bit different right you go move left right move up and down and in 3d it's a bit different from 2d actually i'm going to work on two scripts in parallel on the character and on the camera let me just see so okay uh the spring arm if i rotate it yeah it rotates and it's going to rotate the camera at the distance from the character and who was it um would you mind trying out animated texture decal node if you do test decals well you were saying that this doesn't work so probably it's it just doesn't work right um maybe there's a bug maybe it's not implemented yet i don't know if you've looked at issues because it's when you want to know if something doesn't work it's the place to look and then if you can't get it to work you need to report the issue like if it doesn't exist okay um so i'm going to make my camera in there and the thing i want to do is use a and handle input um if the event is a mouse lotion uh event then we're going to store the event and let me see it has x and y how is it pressure i know it's called relative okay so we're going to have there a mouse offset it's a vector 2 0 and i kind of have the microphone in the way wow um mouse offset equals event.relative right and that's interesting it does complete it even though all i said is this is an input event mouse motion so keeps track of the the type interesting um all right so in physics process we're going to rotate the camera uh based on that mouse offset so um we have to do around the x-axis and the y-axis right um if there's if uh male suffset dot is equal approximate to 2.0 what why there were two arguments in there no okay maybe it's the epsilon that you check against um okay so male suffset is equal to prox vector 0.0 uh you return otherwise we're going to rotate the camera so rotate uh y around the y axis and it's going to be mouse offset x multiplied by some constant so uh well we can do an export mail sensitivity i'm not going to do the oh yeah i'm doing keyboard and mouse now well it's okay because i could do the the joystick yeah i'm gonna use the joystick you know what i don't want to i want to play with the gamepad so let's do that sorry it's a bit messy this is the last day of the kickstarter i've been working for more than a month straight so with some very long days uh please be kind to me yoroshiku onegaishimasu as we say as we say as the japanese people say hey sakuras um thanks for dropping by i'm testing the 3d stuff now okay so we're going to um how can i call that rotate camera right uh it's a long name but let's go with that uh oh just rotate right i'm going to keep it a bit shorter uh okay rotate left rotate right rotate up rotate down and now this is uh very cool uh if you haven't tested um good at four yet i was showing this earlier this is how you set up the input i just have a game controller i just say add an input just use it touch the button done works with the keyboard i guess it works with the mouse all right so with that we're going to forget about mouse support for now just do for the gamepad so uh the move direction i'm going to copy the input direction um is going to be based on that new get vector function but instead of move it's going to be rotate uh and maybe i made a mistake now that i think of it that i've done it without reading the controls let me check left right up and down no it's it's okay um so i have my input direction and based on that i'm going to rotate the camera so i'm going to do the same thing if input direction dot well we can do length length squared or is equal i guess right vector2.0 then we return we don't want to rotate otherwise we're going to rotate y and the angle is going to be input direction dot uh x multiplied by some uh bar rotate sensitivity i'm going to do it as a vector to let me think do i want a different sense no i don't want different sensitivity on uh the x and y axis so we're going to say uh five okay let's see if this works so input direction dot x times uh rotate sensitivity times delta um okay and we're going to do something similar uh rotate uh so rotate y is going to be like this and uh the tilt i guess it's called tilt uh is going to be rotate around the x-axis and it's going to be our vertical input direction times rotate sensitivity times delta now we do need to set the transform that angle is it in the transform position rotation does a rotation property simpler rotation dot y is going to be clamped right clamp uh rotation.y between zero and uh it's in radians right it shows it in degrees now but uh it's in radians so want to go uh 90 degrees maximum then we're not going to go that high right uh it's going to be minus 30 degrees okay we can do deck 2 rad for the conversion 30 degrees and we're gonna go up to 80 degrees there right i'm going to clamp it uh what's the error back two rounds is in there uh found colin instead oh excuse me i put a column equal all right for the x rotation we're going to clamp the x rotation oh no we're going to wrap it right it's going to wrap float uh rotation.x and the minimum is going to be uh minus 2 pi and 2 pi right we do a full turn and we wrap okay minus two uh times pi uh two pi oh no we just go between zero and two pi that's one full turn okay uh any questions um any questions no need to clamp y only x no you definitely need to clamp y otherwise the camera can tumble right so you need to limit the rotation oh excuse me it's the opposite of course um uh wait rotation no the y rotation is around the vertical axis right and the x rotation is the the tipping right uh yeah so of course it's um i inverted the two right ah come on rotate x is around the x-axis let me check this is the y rotation this is the x rotation uh so yeah you need to clamp the x rotation like that uh and to wrap the y rotation like that wrapping the y rotation it's just so the angle doesn't accumulate indefinitely you won't see it if you just let the character let me show you the effect first we're going to try the scene okay i need to try it here okay and wow wow wow wow yeah i'm it's local x and y i'm turning here okay so this is not good but i need to fix that this is interesting but this is just so if you keep turning you don't accumulate the angle right it resets to zero every turn uh it's interesting that the rotation is doing the the axis like that um what did i do wrong again um so first the x rotation should be limited right i can't hmm where's it does yeah it did get clamped when i did that but no um i think rotate y and x does it yeah rotates the local transform so this is the problem so now i'm going to do this instead i'm going to instantly plus my value right and this is going to be a clamp this plus my value is the rotation local rotation part of the local transformation right um how do i get the global i have the global transform um it's weird we did because the problem is when you rotate one axis the other axes uh do that i can rotate it based on the motion vector right but i need a an amount of degrees which i have here um so on the spring arm okay i'm just going to do that for now no changing the property you can see it works but so why do you have to limit this is for this right you don't want the camera to to tumble um to to start to roll over okay uh go back to the camera and i got those wrong uh it's because minus is going up right so i need to go between uh minus 80 and plus 30 degrees and now i'm going to change my default scene in the project settings now while working with this 3d scene where is it application configuration nope where is the run okay run okay and i can change the main scene here i had to use the advanced settings uh do you know if it's possible two two two two uh export custom classes and gd script two uh depends on what you yeah as uh wendrick is saying you can already do that in good old 3.2 people i really need to go to the to the restroom i'll be right back i'll just leave a little message in there go go enscape open up uh and i'll be back really soon i forgot to prepare this one before i also need to refill my water okay okay be right back back um all right what happened um all right uh sorry i just noticed uh i hadn't rotated the table like the camera was not necessarily the best view um well we could simplify those lines but that works for our camera which means we can now uh do this move our character and we're going to need to move it relative to the camera so we need to get the camera uh no i want the spring on in here right and so um how do you do the input direction relative to the camera you do it like that you i guess you do camera dot global uh transform that base is the x form the input direction what this is doing is we have our 2d input direction does it work if we this this is going to give us a 2d vector and i think now we need to do it a bit um raw direction is going to be a vector3 right and it's going to use components from the vector2 so let's see the axes local axes on the character blue is forward red so it's x and z so my x direction is going to go to wait the x direction and the y is going to go into the z so it's going to be input direction yeah the completion of symbols is not working right now uh zero uh input direction dot z right and maybe we need to flip it uh let me see because move left move right uh so let's see with the transform if i move x this is positive i know but the camera will be there so negative positive yeah but the z is positive back in negative forward so i think i need to go minus input direction.z uh the minus input direction dot y sorry in the z slot then i'm going to transform that input direction based on the camera and it's going to be uh it's going to give me the direction relative to where the camera is looking uh secure is asking when are you coming back to japan um so well right now in costa rica uh we're going to france fast and then we will have to see my partner is going to to study uh pastry to be specific and we don't know what the future will be like because that's going to take a few years right um i really miss in some ways living in japan but also living here uh made me relativize uh france a lot uh in some aspects like security uh like safety infrastructure the transports and all that we have although well of course i feel very close to the japanese culture but the the thing is uh for my uh partner it's a bit more difficult the tatemae those kinds of things anyway um well direction is going to be this right uh ah excuse me it's raw direction dot uh wait this is correct right could not involve type because the initial value is a variant uh it's because okay i need to set the variant type or i'm going to do vector3 right i want to pick vector3 back uh control clicking on next form doesn't work it works on in other places but somehow it didn't work there yeah my my partner loves pastry she's a professional translator actually japanese translator uh japanese to to spanish english right um but uh she wants to study pastry and so france is a very good place to do so um uh her dream is to is to was to do that uh so yeah we we are going to to do that i mean in france it's very easy to study right there are lots of jobs as well um does native scripting work yet yes um [Music] but here for example for example she made our wedding cake and it was really good um i was going through good of all for 2d i couldn't figure out the auto time maps features yeah you can go back in the video uh the start of the stream was about time maps um okay so now we need to go this is motion velocity now the new way this works i need to add a speed variable it's going to be equal to uh this is in meters per second so let's say four and motion velocity is going to be equal to speed times direction then we can call move and slide and now this is all we have to do right this is a yeah this is crazy this is good uh and movement slides is bullion now let's see um returns true if the body collided oh so now you can check if the body collide this is much better because one problem is you had before well you could go loop over the slight collisions but now you can say var collided etc i guess it automatically updates the motion velocity now so you don't have that weird thing of uh having to store it back into the the property yeah this is so much simpler look i i think um okay i can't use the x volume on the basis uh let me say what was on the basis there's no x form in there i no so this is going to be uh on the transform all right this is fine we're not going to scale our camera transform the text form what uh transform 3d uh okay securas actually if you come next year uh just let me know if you go intend to go around switzerland and uh you can uh come to to our place so you just uh uh you can get in touch i'll be i'll be there x form was deleted okay so what do we use now to transform a vector do you multiply them ah finally we can oh that's much better as well than having a method uh transform the basis times ah this is cool we have the operation now so that's it that was just that okay uh all right my character okay so i got the axes wrong all right uh first the speed is too little so let's go with 20 20. uh yeah thanks this is yeah the syntax there's look this would take at least double the amount of lines uh in the current version maybe maybe not i need i mean you need the snap vector you need all kinds of things all right so um uh what is it i got wrong in here is it the raw direction so i said so you have move left and right uh we're going to do those one at a time move left and right works it's just okay so the z uh is not good uh the problem is the transform when i rotate the camera then it starts to go bad i should have prepared something for the stream why when my camera rotates that doesn't work uh you're welcome now the problem is i'm uh a bit too okay so now it's going up indefinitely i wasn't pressing anything but uh okay and motion velocity well one thing i can do is motion velocity y plus equals and we're going to add a gravity right there uh and plus equals gravity uh times delta right because this is an acceleration ah no it needs to be negative because it's the opposite of 2d of course alright what's happening in there is my character going up uh have a good night sakuras what is going on okay so what if i go with raw direction velocity minus equals gravity times delta uh since it's currently in alpha stages i'm assuming everything currently implemented in gro4 is subject to change i would say uh isn't it because you're using the camera local transform yes of course thank you okay one thing i don't understand though is what's happening with the character going up to the sky right question velocity especially if you want what i don't get is if i have a vector zero zero zero character goes very fast uh okay so if i remove the gravity what is happening um i have no idea what's happening right uh let's use a high snap length no the character is going up in the sky like crazy and it's it's it's gotten worse with the tests this is what i don't get uh so it's somewhere in the matrix multiplication because you can see without that it's fine right why use kinematic instead of rigid body why not gives us a simple control like over you can see it's just a few lines of code i like the more reliable physics i'm making a simple uh simple rkd controller any chance of using a vector to fold direction would solve this no you need the the vector 3 because we are in 3d in here uh globaltransform.basis um okay seems there was something with the scale i know i'm still using the raw direction uh so okay speed times direction now i still have that problem with the character going up right depending on where i turn i don't get it i'm getting something off that's for sure but i don't get what okay i think that's the kind of code i use normally how do you set the up vector if it doesn't take any parameters now and uh you go on the character body and the up direction is here okay so i'm going to restore motion velocity dot y minus equals gravity times speed now the the the things are definitely off um [Music] okay i don't know i don't know i'm too tired all that right now global transform basis dot z times input direction uh yeah the forward axis instead um so you multiply the the forward vector so would it be the global transform maybe yes let's see can't multiply it by i need the that broad direction yeah no it's still not working uh okay forget it for now remember to reset the gravity when colliding sure thanks for backing the kickstarter let's look at where it sounds uh where it's at uh no crashes of good at fall so far um do you know there's a chance the character body 3d will have a step height like the character controller does for stairs and small obstacles uh i don't know is your name jan is this correct um i would say right now i think it doesn't have uh you'll have to check if there's an issue and someone who's planning to work on it let's see whether the kickstarter is at what time is it uh it's going to be 11 already i think we'll have time to wow we're above 120 k's yeah this is going up fast cool thanks for everyone who's backing the campaign it's it's really big for us um okay i want to go back to emacs and just move forward a bit let's say we tried gd script uh we tried physics in 3d with failure but um we have a couple more things to do i think i won't get too to everything i'm getting too too tired and well you've seen some things are buggy all take some time yeah no crashes uh in two and a half hours download it for just to check this and you can't export custom classes directly yeah i wonder uh i don't know what exporting custom classes would mean um i mean there's a class name thing in gdscript that makes the class register as a type globally in the project and you can add classes to godot from gd extensions right uh what do you think is it safe to use the alpha build for a game jam that starts tomorrow nope uh 2d sdf it's the sign distance field you now have access to in shaders and all um it allows you to do things like uh casting shadows or fog or detect proximity between the surfaces um no i don't think it's safe to use the alpha build i mean for some people it crashes right did you cover o2 tile mapping in 2d yes around the start of the stream uh will the full recording be on the channel after the stream yes and will your calls for beginners be free excuse me uh nope this is a paid product uh what will be free and open source is the app to learn g script syntax right which is a big thing because they'll come with a course basically uh interactive like codecademy all those kinds of things so that will be free but the the product that people are paying for on kickstarter uh no it won't be a paid product um i had to make a step height feature it's not too hard to do with a few raycast nodes but yeah would be nice to have that built in for kinematic bodies uh definitely definitely um i trying to pull to a good old three project will probably lead to lots of issues hyphen hi uh to everyone uh watching from portugal okay what can we do right now okay gd script docs generation uh if it works it will be very simple um some tests okay vector three dot uh axis y and uh okay let's see the dox generation if we have it here because i've seen it used from gt extension just don't know how it works maybe i need to register invalid argument wait what do you need argument ah yes the axis y is not a vector it's a given around the up vector okay so class name player now what i want to see is uh if huh there you go dog's generation works automatically you you put dog strings around your things and it creates a docs page for your custom class this is really cool this is really really cool cool wait so i can use the app to learn gd script if i'm a beginner at programming yes this is the the idea while making an app that will allow anyone to learn the gdscript language in their web browser so kind of really small practices and challenges that will teach you through practice um two flower games okay someone's asking about the the pledges for the kickstarter so i'll go over that real quick uh yeah so if if you've not seen it i showcased what we have right now regarding the app i'll just uh share that in the chat there's a devlog on the channel this one and you can see it a bit in action um so there you can you can learn a few things uh the problem that we are trying to tackle and it started uh this was a presentation from a very long time ago about there we go so yeah you can you can see some things some plans that we have okay on kickstarter uh we have a pledge here where you get the calls from this kickstarter uh support the project and the cookbook the cookbook is something we made already right there node essentials and this one i can show you a few a few things how it is and how it works well this is the online version it's not as good as the you can download the offline files right it'll be a bit better as you can see the the style with the white background doesn't always work too great anyway this is going to go over each node this uh or many very important nodes and teaches you to set them up specifically their key features you know what's the most important features you want to learn first about a node and how to use the node in practice with concrete examples but recipe style recipe it's not like step by step it's the the we call that cookbooks in programming which is uh this is going to teach you how you do this game mechanic but uh here's what you need to know to make it it's not all the steps to make it so this is not for beginners beginners right i would say that if you want to really go far into making games with godot uh this is very valuable after you learn programming so you first need uh good programming skills to make the most out of it because this is going to if you have questions about the certain mechanic you want to do like this one for example you're on the 3d character in a2d world we're not going to teach you all those things in the learn to code course um because those are very uh how can i say they are more specific right in note essentials you're going to find lots of things for different projects i can give you an example there's a someone making games in 2d and then went on to a 3d project so they used the 2d part of node essentials first and for their new project they are using the 3d part right um [Music] yeah so what i would invite you to do is perhaps check a free sample of this do we have one that's accessible instantly if you go to this address and enter your email uh i'll post this if you go to this address and enter your email down there you're going to get at least today like as soon as you register the kinematic buddy 2d guide right so you have a bit more information there but there we go uh because the the thing is this mailing series sends you one guide a day for four days um but there are from the node essentials and it's the complete thing right for free so you can see if you find it interesting and valuable okay um so how does said get work in good fall now it's uh uh how was it i forgot about the syntax do i have did i keep something around there nope i don't have it let's go back to the docs okay uh this one and we're gonna go down to scripting and we go to gd script reference okay and we'll go uh do we have uh there we go like this i'm gonna put it on the side just to show you so we can do like colin at the end and then we go with uh set and uh we need to do to put a property name so every time we get a value we're going to say rotate sensitivity equals value right this is your set of function you can put it there um and then you can put the the get for example uh here and you can return the rotate sensitivity there we go so that's the the simple way uh the most direct for small setters and guesses this is good uh a change that's very important i read is when you finally when you you do rotate sensitivity is equal to one it's going to go through your setter always there's not the difference between using self like before um like that or not so you don't need to have the separate function named function that you call every time all those kinds of things but you can also do it like that if you want to do it like before function uh set rotate sensitivity and it's going to take a value that's going to be a float just do my function definition um let me scroll a bit and so you can say rotate sensitivity equals value uh and then here it's going to be what's the syntax it's set equals uh set rotate sensitivity there you go and you can do set comma get or get comma set that doesn't work in any order equals uh whatever you can point to a function although uh there's an error because this one takes a value so it's not a getter and it doesn't return anything so let's complete the the thing get rotate sensitivity and it's going to return a float and return the rotate sensitivity there we go no why did it complete itself return rotate sensitivity um white set rotate sensitivity okay so i think the older like you have to get before set or just one of the two uh set rotate sensitivity can't be used because of its signature okay i don't know what what that issue is about but that gives you an idea of how you do things you can use named functions you can use anonymous functions right before below the property okay i'm going to move this this is water all right um okay what do we have to test next that is done yeah i think i'm going to cut the stream soon which one do you want the most between those navigation server ik i think i can't test it right now like there's quite a bit of setup right um navigation so uh pathfinding we can try in 2d uh right to left text particles the profiler light mapper decals uh i forgot to rename the set on get okay that was why that was the issue so what do we do a bit of particles for something uh simple particles we have one particles navigation pathfinding yeah the ik won't get to because you need to set up the skeleton and all i need to to learn the basics i'll we'll showcase it at some point of course it's just for this stream i'm getting a little too tired it's been three hours so okay uh well we're going to do some pathfinding i'm going to go 2d just because i couldn't make the 3d character work next time i would prepare a working character for the stream so back to the 2d scene um [Music] will you ever give away your ultimate bundle did you even do it already uh giving away we've already done uh but it's in very very specific cases right in general it's more like a course for someone in a difficult situation on non-profit something like that right will that be 2d particles with collisions similar to the 3d system not sure not sure to be honest um all right let's see the navigation region yeah the reason for the 3d well i can i can try to test it afterwards so okay we're going to make a navigation polygon there we go because the interesting thing to test here is um how you you get to how you can have things to tell not if i understand correctly you can have navigation regions like that that are not completely connected or i don't know if if they're overlapped can you move between the regions okay so we're going to try with the character right um i'm going to go with a handle input this time and if event dot is actually pressed we're going to add a click event in there so i need to go at it to click i'm going to try left click ok so if we press the click event target position now target position we need to add a new variable going to be equal to event.position okay and we're going to go set physics process to true and we're going to set it to false on ready there you go this is so we click somewhere we get a target position and we start processing um to move the character to the target so um uh global position.distance to distance squared to target position is lower than some threshold we're going to say 10 pixels then we set physics process to false we stop the character let's see the there's an option to scroll past the end of file right for you to center the the code a bit more um set physics process to false and return right then when we click we want to store the path i don't know well let's see negation agent 2d obstacle 2d it's something probably that moves navigation polygon okay i need some ducks see this is why i'm going for 2d 3d is probably similar right but legend needs navigation data navigation agentity is physics safe okay so target okay it does stuff for you already okay um so do i need to add a node in there navigation agent2d distance threshold before a target is reached uh the radius of the agent so this is how large it is for avoidance distance to search for other agents so they avoid one another that would be interesting max movement speed um could go for recreate navigation mesh on the fly like when a strategy when you create a new building yeah it seems because look down those they talk about dynamic obstacles right navigation obstacle um for collision avoidance so you just put an obstacle and you you block the way uh that that was why they remade the whole system right because this is not possible this is heavy and good at three now i need to understand because i don't think you move the navigation agent directly so i guess it's a class that you call into how do i set the target location i can set it and then is target reachable how do i get the position because it's a node it's not a node 2d so it needs to give me okay let's see uh set the target location we set the desired uh this clears the navigation path then we sense the passing velocity to collision avoidance algorithm it will adjust the velocity to avoid collisions we'll see it will emit the velocity computed signal okay okay you can get the next location you can move to that point making sure that there are no static objects in the way the agent doesn't have a navigation path it will return the position of the parent okay but uh this when they say navigation path it's okay so if i understand it well we'll see if that works uh the agent is going to be negation agent 2d right so i think this still holds fine but we don't have to store the target position instead we say agent dot target set wait okay we'll have to use things a bit differently um okay so the agent as navigation agent 2d let's see if casting helps in here so uh set the target location it's going to be event dot position um i wonder if this is does it say it doesn't say if it's global right so all right then we set physics process um if uh what is it uh is navigation finished uh it's on the agent of course so let's say agent dot is navigation finished uh we return and here we just want to to do that we set the target location if agent dot is destination reachable is target reachable and we set physics processor true is navigation finished will return okay uh is it real the gltf import is still very buggy uh i've had a character like the model disappeared the data so i don't know why it was working fine at the beginning but then disappeared okay um so we're going to say uh agent. velocity set velocity to up okay next point is agent.get next location okay and we're going to move uh the we're going to do the good all steering thing uh desired velocity is going to be uh equal to next um next point no uh level position dot direction two uh next point so we calculate the direction multiplied by some speed right and we set it the velocity the new velocity to the target velocity okay uh and that is it so we get the desired velocity every frame and we're not going to try and do any smoothing or anything like that i need to set the default thing to run again here it's going to be no 2d yes main scene no 2d please okay let's send the debugger cannot get the path of the node as it's not in the scene tree uh node not found let's see does it work no you still get the air cannot get the path of the node as it's not an asynchrony let's see it's right there uh okay facing a new bug uh what can i try to do instead i'm going to do it like that let's see if that works navigation agent to the add new and i'm ready i'm going to add it as a chart okay okay so now when i click um i guess so then i need to do await agent dot computed well what was it name of the signal target said distance was the signal signal negation finished path changed target reached velocity computed well this is the 2d agent where is the vector3 okay so we wait for the velocity to be computed i don't think i should do that though so instead i think i'm going to connect to that signal right agent.velocitycomputed.connect you can use signals like those and you connect them to a function you can use a lambda function that's a way to do that so say velocity i'm going to use one letter stuff just to scare everyone velocity oh no no no motion velocity uh equals and so it seems it returns even from the 2d agent it returns a vector 3 so log into v x v dot y we'll see hopefully that that should uh that should work but here you can do one line uh lambda functions like that right it's pretty nice uh and you can create a function and all but um i'm just going to keep it short here for this so uh anyway i'm going to move and slide and that's it right and we're updating the motion velocity from here and that doesn't work so let's see okay uh let's see here with a breakpoint what why is it not working so maybe i'm going to show the navigation and put them behind the character then when i'm here i can see the thing okay why is the click not working excuse me okay so maybe i can say if event is mouse uh input event emails button and event dot pressed something is the color rectangle blocking the mouse of course there we go okay we're going to sorry i uh press the wrong button i'm going to remove the breakpoints and i'm going to go back to his action pressed click okay let's see now crashed all right uh okay so when does it crash breakpoint going to add a breakpoint breakpoint breakpoint breakpoint crash do i get an error message in there ah okay i have no idea what that means all right the api looks nice then i mean let's see it should get there does it crash at set velocity does it crash it move and slide okay set velocity move in slide and crashes at move and slide motion vector velocity equals desired velocity is a problem nope okay i don't know what's happening right now i think we're going to close it here if you don't mind it's been a long stream starting to lose my voice a bit so and i don't know how to fix this um uh you're welcome friendly soul all right um yeah any questions before before the we end the stream anyone wants you to know anything uh let's check where the the kickstarter is at uh yeah unfortunately i didn't have the chance to um i didn't have the chance to test every feature before the stream so this is why some things went re the ones i had tried lighting and all um went well and uh the thing is um the thing is um we didn't have any crash over three hours of godot itself just right now the navigation servers the the code is crashing um our website says only one hour left uh this is probably uh snap it's probably a time zone issue it's weird because the before me it says nine hour left uh this is a problem with javascript dates normally the times are set to utc so the calculations should be correct but probably there's a time zone conversion happening somewhere for you how long have you been uh i have will your app help with coding in gd script uh yeah yeah yeah that's a goal but uh you shouldn't wait too much like you can try to find some uh tutorials calls and all to not have to wait because the app will take time to create uh is guru 4 now recommended to work uh on a game nope uh nine hours for me in sweden okay that's also the the that's good to him it means it should be working fine hopefully for most people the problem is between browsers it seems dates don't work the same way that's what i was reading about javascript and what else what else how long have you been using budo of four or five years now yeah i would say the the best thing right now i know uh right we i explained that in a series uh based on the official documentation right so right now there are no really great complete course for gdscript and so we have a learning path for beginners and it's going to explain how to get started and give you free resources to do so how advanced will the kickstarter calls get i mean it's a course for absolute beginners to learn to program so we'll cover quite a bit of ground when it comes to programming skills but of course it's not going to teach you how to do multiplayer online games or or advanced algorithms or things like those right so um it's really hard to answer that question um we're going to give people all the tools they need to to program independently i just i'm just going to open the door all right any other questions seems like it was a good stream will you make a multiplayer tutorial um at some point probably yes the multiplayer api seems to be changing lately so for those things we're kind of waiting for like well focusing on the things that are more or less stable uh otherwise we'll have to redo everything when good of all comes out so we're focusing on other things now but i'd like to get to it at some point um what's your impression of good old for over overall uh yeah much much better um it's much more usable like there are lots of very important fixes that once it's stable will make everyone's lives much easier right are there also tests in your courses normally there are some uh i'm not sure what you mean by tests if you mean unit tests in the code no for the most part we don't use in the app we'll use some we have what we call validators um and tests like uh how can i say if you want to do a certificate right something like that we don't have those kinds of things uh anywhere certificates are if you get them on udemy or they're not worth much it just means that you went through all the videos like at least you click them and you mark them down done and if you mean like something graded right we don't have that if you mean assignments in this course at least there will be plenty of challenges of things you can do my philosophy when it comes to that is that in games uh if you have a portfolio you can get a job right this is the most important part most of the time they don't really look at curriculums maybe in larger companies but uh for most jobs it's if you have a portfolio then your curriculum is not very important so um uh i'm more in this call of uh selling yourself through your game's portfolio what have happened to make good work on switch that depends on the console manufacturers right so i think that was the start of a discussion at some point i remember something like that uh uh i remember something along the lines of there were discussing the possibility but um i don't think it it um ended anywhere right now right and the other manufacturers well xbox uh xbox because it's using uh it's microsoft stuff you have the universal windows apps so uh there's kind of support for xbox consoles playstation i think sony is not never going to allow you know gutter to have some public export for playstation so right now you need private companies that are authorized by playstation for example uh to to get that service but i wonder if godot is going to move towards the same model as the blender foundation with a company and a foundation a non-profit and perhaps they will be able to provide eventually console support uh commercial just like unity game maker everyone else is doing uh because you'll have to do that right you need to register get a dev kit and those kinds of things like publishing to consoles is difficult regardless of the engine why default can build stuff on switch but good can the the problem is um godot can't put the source code of the switch and include that in godot in the github thing and i think nobody can that's what's happening right and so when you want to make a game full switch you have to contact nintendo you need to get uh you make a contract with them you need to buy i guess a development kit which is special version of the switch with debug features i know someone around here who has that who's doing it with godot and so uh it's none of that is available publicly i think for any engine uh if devil has it i'd be curious to see that and how they did it but yeah as far as i know it will be the same as with unity it's you need to get the contract with nintendo and then you need to get the contract with default or whoever publishes to switch or gives you access to that right the development uh software development kit so yeah right now there are two main publishers all not publishers but persons who can port your game to consoles with godot or allow you to there's lone wolf technologies lone wolf technologies and there's pineapple works so one is just giving you the technology to pull the game i think like you pay a license to be able to code the switch version uh and uh they they give you an sdk or switch support for all the features and those kinds of things but you have to code the the you have to take care of exporting to switch and test yourself and the others pineapple works is more like a game publisher and i think they will pull the game for you yeah and maybe publish it for you as well it depends on the contracts okay i'm gonna close the stream thank you everyone for joining um have a good sunday sunday night and aya geotm has been talking about doing supporting switch ports as well a very good note but with that i'm going to close this with the stream be creative have fun and i'll see you in the next one bye
Info
Channel: GDQuest
Views: 47,974
Rating: undefined out of 5
Keywords:
Id: swQ0QfHTT_k
Channel Id: undefined
Length: 201min 47sec (12107 seconds)
Published: Mon Nov 01 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.