Dev stream 33 - Godot engine development

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and we are live i think the help hello everybody it's friday i hope you are all doing well um so yeah uh today's stream is going to be a little bit different than usual in the sense that we have to flip some things around i'm not going to do a big talk at the beginning as i've been doing the last couple of weeks because in about two hours we are starting the official q a the monthly q a for godot engine with the whole core team or a big part of the core team and i'm not part of that core team so um they've graciously moved it at a time slots that's a little bit more convenient for me because normally it's in the middle of the night for me so um yeah so we're going to cut this stream short in about two hours a little bit less than two hours by now because i need a little bit of time to set up for the q a um and uh and then hopefully everybody join me in the godot uh youtube channel for uh for the q a i not sure if i can restream it if that makes sense um so i probably won't because i haven't had any time to really figure out uh how that uh how that would properly work um so yeah um it's around uh probably 10 to 11 my time here in sydney uh we will call it on the stream and then well yeah i hope you all join me in the q a afterwards um so in this stream for the two hours that we do have i want to have a quick look at what's on screen right now which is a sample project that clay john sent me uh something that he's been working on unfortunately it does crash at this point in time when i try to actually look at some stuff so we will not do that we'll just uh talk about what's actually happening and then we go back to our little uh a little game so that is the plan for tonight um so yeah having a quick look at what we're seeing here this is the uh oops the new sky shader in uh ingot oh um so the physics based shader that that i already showed off last week that's been in godot for a little while but with clouds added and and this is using a ray marching technique to render animated clouds uh and if you look closely you'll see that the clouds actually change it's not a static set so you see that they're slowly puffing in and out of existence now if it didn't crash when i would um try to investigate some stuff we would actually be able to change things like clown density cloud height and that sort of stuff there's a whole bunch of things in there this is uh loosely based on uh on an article by gorilla that they did a couple of well probably about two or three years ago by now where they discussed how they uh solved clouds hold on i'm just gonna change my camera a little bit sorry about that i need a better camera i think yeah now i'm actually in the middle um so um so yeah the gorilla had a really nice article about how they did their cloud system in uh in horizon zero dawn now their their system goes a lot further in the sense that they they support changing all sorts of weather conditions and stuff like that and have weather conditions come in because you know it's an open world a game that it has a continuous timeline and they go from sunny days to uh to rainy days and depending on where you are in the world the uh the weather changes but the core system the core way that the clouds are um constructed um that is uh that is they explained that really nicely and we added that into this shader so obviously once that is debugged and working stable and and everything like that because there's a bunch of things that need to uh that do need to improve in this system um then that will be up for grabs now the really cool thing and this is the bit that i really wanted to show off because you couldn't do this in in godot 3 is because this is now a shader that is then also used to update our reflection maps you can see that you actually have the whole cloud animation reflected in um um in the um in materials that have you know shininess turned on that have metallics turned on and that even works in uh in cubes now of course with cubes they they reflect a little bit more direct so uh you sort of zoom into to a place in the in the sky but it still gives a really nice nice effect and you can actually see the animations of the clouds really clearly reflected in there so um so yeah um really impressive work by by clay john um deco eventually yes so this is right now still an experimental project in clayjon um he's still working on this but it's based on the cloud shader in or the sky shader in godot four so eventually once godot 4 is fully you know once it goes stable this will probably be an add-on or it'll be just code that you can download and using your own project uh i'm still not happy about my camera it keeps i promise whenever i try to adjust my camera i move forward to it and i can't see where i'm going to end up when i sit probably um so yeah um it also looks tilted for some reason i'm not sure if it actually shows up in in the stream like that uh so yeah uh so he's working on that and uh well eventually whatever way that he releases it but i'm pretty sure that it'll become available i'm just testing around with it because i was working on the sky shader and moving stuff around and making sure that stuff worked uh the crash is in the editors nothing together with the uh the sky shader itself um but then again you know this is good oh for very alpha it's not stable at all so we are expecting those sort of things to still not work properly but i really like the way that it works you know how you know these these clouds look pretty damn realistic you can see a little bit of patterning in in here so we can see that some of the repetition isn't perfect and that's all playing with the number of steps in the in the ray marching setup it's always a balance between quality and performance because these type of shaders they are very heavy on the on the gpu i remember reading about the optimizations that they actually are listening to the presentation on the optimizations that they did on the uh on the ps4 where they really made sure that it does as little work as possible uh by making sure that and this goes for god as well by the way um the sky is rendered after the rest of your scene is rendered so basically your uh your apart path goes first so all your your opac objects are rendered then the sky is rendered in you know whatever background is left and then the transparency phase is done rendering all the transparent objects um so this is pretty much worst case where we see the entire sky with nothing obscuring it and again this is a pretty pretty fast laptop with a pretty fast gpu so i don't have no idea how this will run on on other hardware i don't know if you can turn our frame timing on here so you can see that at least on on my little gpu it's uh it's running a steady 177 frames per second uh which is really decent for this sort of technique um but there are ways to speed it up if you if you do run it on lower hardware one thing because of the way that clouds work um often rendering this as half resolution is something that is that is very often done so so that's that's something that's built into uh into the sky shader that you can do that um and the other thing of course you know once i finally get time to work on variable rate shading that is definitely something that would uh would allow us to uh um to take out some overhead by doing less detail where detail isn't required yeah these clouds are volumetric so this is all ray marching um and uh you know that's also why you can see the sun sort of going through the clouds and creating these nice highlights inside the clouds where where it really shines through and when you look away you can see really see the the darkness of the clouds because it's uh it's stepping through those layers and seeing that um more light is being obscured than shining through the clouds it's really cool so yeah it's a it's a technique that i am very impressed with um i've always you know i've done a few tests myself to try and implement something like this but uh yeah clay john really uh really spent the time to to make this work properly um and you can see how well it works this is anybody making um a game that you know a 3d game in godot that runs outside this is this is going to be a game changer for people to have you know properly looking animated skies is uh it's a bit of a holy grail in uh in open world games so thank you gorilla for sharing that information and letting us um you know copy those techniques over um so yeah anyway uh let's go back out of here and which one's my stable one and let's just go through here i got way too many things on my desktop really should clean up i'm actually gonna run three two three stable today don't really need it but i just wanted to make sure that everything that we're doing is actually uh running on on the latest stable version so um i've made a few changes throughout the week i have been playing around with this through the week and the biggest one actually is completely removing all that work that we did last stream to to get our fog of war working instead i decided to take out all the global lighting and purely base things on the lights that we have in the scene but i added some logic that is uh going to turn our lights off when we move too far away from here so obviously our little knight is still standing here while we can already see that when i move away from those lights they turn off uh but the lights near the the night are going to stay on but as i move my character through our scene we can see that any light that's near us is turned on and any light that we are away from turns off and the reason i did that is what i didn't like is all the lights were on everywhere in the dungeon and it became dark and it didn't make sense to the atmosphere you know obviously we want to do that because as we are moving away from tiles we don't actually want to help the player by seeing what our enemy characters are going to do what our npc is going to do so i really want to make sure that if i'm fleeing from from an enemy character who happens to be slow is i don't actually want to be able to trick and sort of anticipate what that character is doing if i have no way to know where that character is so by making sure that the lights are only on um near the any player character we are going to naturally obscure the enemy characters so uh yeah i thought that was a really neat little way of doing it and the way that i've implemented that is actually really simple so if we go into not not helpers into our objects and we go into our torch scene so here's our torch all that i've done is i've created an area node which i've called player detect oh the other thing let's quickly go there that drives this is then i've actually set up some layers so all my environment objects are in layer one all my friendly characters so the characters die control are in layer two and all the enemy characters will be in layer three so i've got a um an area here now obviously the layer of the area doesn't matter uh no we're not doing uh doing vr today we're doing uh we're doing my little dungeon today i am actually planning on on uh doing some vr probably next week or the week after again there's a couple of ideas that i'm i'm floating around um and i'm still having some ideas about what i actually want to do with this right now i'm just playing around with this project because i think it's a fun little thing a little i'm thinking about doing maybe one two tutorials around what i've done here um but we'll see i'm i'm not sure what uh where this project will end but i'm having a lot of fun with it um so yeah so what i've done is obviously the the layer that an area is in doesn't matter because the area it isn't actually a physical thing inside of the the environment so pretty much that is ignored but the mask that determines which objects we react on so i've only turned a friendly mask on so the only thing that this area reacts on is the player characters so in this case our knight and our um our main mage um i am actually thinking about that rahul i'm i'm playing around with either uh turning this into ar or turning this into a vr game um but i don't want to take that step until we've got all the mechanics in place because the nice thing about it is that eventually the vr side of it is going to be more a um a presentation layer and i haven't really decided yet uh whether it's going to be first person or whether it's going to be third person or um you know what sort of interactions we'll we'll do in vr it also depends a little bit because there's a couple of ar devices that are uh that are on the way um that would actually make this a really cool third-person game um but i really want to right now concentrate on purely the the game mechanics of actually uh you know playing a game right now we've we've done dungeon creation obviously there's a bunch more to do in dungeon creation uh we need to start looking at how we can make um doors in here so that we can actually lock rooms off so that you have you know to find a key or something like that or you have to have a character in your party that actually can pick locks or something like that um we need to start working on uh some enemies that spawn we need to start working on uh being able to detect things so the the things that i really want to do in this little dungeon thing is right now we've got the the basics of dungeon generations done uh today i want to work on player movement so right now i've just got my arrow keys moving the player which is completely not the sort of game style that i'm going for here uh so we'll be removing that today and changing that into a different moving mechanic and eventually you know if we do make the step down the road to go out of vr or ar with this then the mechanics will still be there it's just how you enact that action is going to change um it's definitely going to stay turn based uh i think that really saw suits this type of game really well um but again i don't know how far i'm going to take it whether i'm going to keep doing this on stream or whether i'm going to eventually take this off stream and turn this into a tutorial series or something like that i haven't decided yet right now i'm just playing around with it because um it's just something something new and something to figure out and and something that i enjoy doing um yeah you know one of the things that you know one of the things that i've been toying around in my head and was discussing with friends of you know what uh what we could do here is obviously uh vr makes it really nice that you can enact the movements right so uh um if you attack a an enemy you know actually swing your sword to initiate the attack and that sort of stuff um becomes more immersive that way although when you when you look at it as an ar game um then you know uh a good example for instance is for instance tilt five you know i'm i've actually got a tilt five on order um so i'm hoping to actually start playing around with the tilt five pretty soon uh that might be a a really good this might be a really good little demo game to uh to actually make work on the tilt five uh that's something that i've got in the back of my head whether that will happen or not i don't know i haven't brought it through that far yet um but that's for later um i am currently not planning on joining any game jams uh i do have that on my list um that i want to start making time for that um right now i simply can't justify spending more than a day on a project or day a week on a project like this once a couple of things are off my list from what i need to do for uh godot itself i might start doing some game jam so i probably will pass on brekkies um at least this time um but yeah i am planning on on joining some some game jams uh in the not too distant future of course the pandemic here in australia is really uh at a point where life has pretty much returned to normal um they're rolling out vaccinations right now so i am really hopeful that in a month or two or three we'll actually have some physical things happening and there's already talk of restarting the beer and pixels meeting which is a a monthly meeting here in sydney which is always a lot of fun because it's very laid back and and and free but the guys who organized that used to also organize the uh the game gems at the local safe so uh so yeah those things are on my list to uh to look at it yeah the did tilt five or level i didn't know that i thought it was it was first was cast ar um and i don't know what what was there before that or then again it's a small world over there in america um so i i know that you know we look at it as you know you got you got all these different vendors who are all competitors of each other but all the core people they're all you know they're all tight-knit they all know each other and they uh as i think one of the reasons why open xr is so well built is because these guys have uh put aside their you know that competitive ness of the different companies that they work for and actually put down a really really well thought out spec that uh it takes the best of of all these different systems and platforms so uh haven't been having a blast uh working on open xr and doing stuff with that so how many hours should we spend every day on game development that is a very subjective question um because that really depends on your situation you know how many hours can you spend on game development you know do you have a family you know i've got a wife and kids so um so for me it has been very difficult over the years to spend time on this so for me it was on a on a on a bad week i wouldn't spend any time on game development and on a good week i might put 15 20 hours in it all depended on what happened at my day job uh what was happening at home uh because i ended up working when my kids basically go to bed right that's when my free time starts so i'd be doing a full day and then i'd be taking care of the kids and then maybe about 10 o'clock at night i might get two hours which is you know not enough if you really want to make a bigger project you know for small projects or in other tutorials that i was doing or just working on vr in godot which is you know which did suffer from that um especially if in the weeks that i just didn't have the energy to work on anything because i had a busy week at my day job but that's also one of the reasons why i'm very happy that i'm now working for godot because all of a sudden the dynamic really changed and i can organize my day around around my personal life which is really cool it's been difficult i'll tell you that much because i basically work in two slots every day i work in the morning from 10 till 2 and then i work in the evening from 8 to 12 and especially the evening session usually is 8 to 2 a.m in the morning and then i need to wake up at 7 o'clock in the morning to get my kids to school again because my wife is a fitness trainer uh so she has classes in the morning so i'm the one who generally does the drop-offs and pick-up from the kids um but it does mean that you know i pick up the kids from school in the afternoon i have time to make them dinner i have time to take them to extracurricular ticket activities uh i've got time to help them from with their homework and uh and then you know my kids are in an age also right now you know they're both teenagers uh so they're in an age right now where they don't need to spend that much time with their dad so they're more than happy to do their own thing at night and uh i can start working again uh still trying to fit you know doing tutorials and and and other stuff there um but also you know i've only been working for godot for a month now uh so obviously that has my full focus at the moment once that sort of becomes more natural and and i really you know i really get some uh some momentum going on on the work that i'm doing um i'll be able to spend some more time on other things and that really is the same thing for everybody else you know it all depends if you have a family make sure they come first um you know and that that may mean that your game death dream takes a little longer because you have a little bit less time but then again if you don't have a family you know i i'd say uh get a nine to five job or if you can afford it get a part-time job and spend as much time on game dev as you can that's you know that's the the quickest that you can get a um a game done of course but it's really all um you know it all really depends on your personal situation whoa we jam today okay that sounds really cool hi you click by the way oh hi everybody i actually haven't even been saying hi to anybody deco how you going noobs gaming how you going christian fooger how are you going rahul how are you going cozy turtle yeah who asked for the brekkies game jam um grillvore so there's some new names in the chat and there's some some old names and jets hi jay how you going um all right so jerry started at valve i didn't know that all right so cast ar started as a as a steam project i didn't know that that was interesting because i know that didn't you know i i didn't hadn't heard of of jerry uh until uh i learned about tilt five and then you know obviously i caught up on some of the history of how they were working on cast they are and how that you know it was a successful kickstarter and then it sort of went the wrong way because i guess they bit off more than they could chew which is uh you know what happens a lot on kickstarter projects um but then they salvaged that attack and sort of went like well if we slim it down and we uh we give it a more specific purpose uh we might be able to make this work and that became tilt five and uh i unfortunately being in australia one of the downsides of it has been that i haven't been able to go to any trade shows or anything like that so i've only seen the videos and heard friends talk about their experience with the till five i can't wait to try one out it really looks like an impressive device obviously uh i was planning on going to gdc last year but that got cancelled it is what it is hi ishmael how are you going ismir i love your little car game of course i had seen it before but congratulations on the course and congratulations on going live with that uh amazing work buddy that that was uh that was really cool to watch uh i do not know if the reverb g2 has ar whether that has passed through um stuff because you know it is an inside out tracking system so they do have the cameras um but i imagine that it doesn't go much further than what uh uh what oculus currently has or their pass through so just a black and white pass-through um which is usable but um not really suitable for ar because also it just does tracking of the controllers right it doesn't do tracking of your environment so uh you can't detect if there's a table in front of you or something like that i don't have a reverb so i can't say for sure i wish i did but you need to record more of it we have a q a coming up ishmael so uh stay awake buddy um how much time are we having okay we're half an hour in um hi luke hi going yes co tutorial i am using pure gd script for this uh this project and i will stick with gd script for this project uh everything that i've currently um got planned is um will work work absolutely perfectly in dc script the only thing that is a maybe is what we're actually going to be working on today if i uh if i actually start working on it and not talk too much uh and that's a star godot has got a a really nice a star implementation which today we will not use and i'll we'll come back to the reasons why later but it's mostly just to uh uh to explore the the algorithm itself and start uh sort of experimenting with the algorithm but also because uh one of the downsides that i find of the the a star implementation is that it's um it's too strict in some ways so yeah we've got some some things that i want to do there can you get the ai in godot to record videos for me what and just wake up in the morning and have your next tutorial all done uh that'd be nice uh when you figured that one out then let me know and i'll go and do it anyway so back to what we're doing here so we've got our torch with our lights now in our script here i'm actually turning the light off to begin with i have got it on in the in the scene because when i'm setting everything up i don't want to be in darkness uh so it isn't until the game start that all the lights go off and then our area comes in so it is looking for any players and it has a simple collision shape which is a sphere so anything that enters this sphere uh will be detected by our player detection script or a node and we can react on that so on our node here we see that we have a player detect body entered and we have a player body detect exit so whenever our player enters our sphere it gets that send and whenever they leave the sphere the exited signal is sent now the nice thing what i really like about the physics engine in godot is that in your starting setup if your characters are already within the the area it will still do this signal so we don't have to do something where we need to initialize and say who's actually already in our signal because we're not getting an entered signal because they're not entering the sphere they're already there no as far as godot cares you you are entering that circle you know when the game starts you weren't in there before yes maybe you spawn inside of it doesn't matter you're inside that circle so when we look at those two all that i'm doing is i'm increasing my player count the number of players that is inside of that detection radius i'm increasing that by one and when i leave i'm decreasing it because eventually we'll have four adventurers so it's possible that all our four adventurers will be in the detection range of this light hence the count now i can omit that and simply call that right away because there is a method on our area where you can say give me a list of everybody that's inside but i figured just keeping a counter is slightly easier now on the check player account player count which is the function over here i am simply checking if the player account goes back down to zero i call my animation player and i play an animation called lights off and then i set this little um status to wasn't able to false now when my player account is bigger than 1 then the first time i'm coming in here while my light is off then obviously was enabled as false so it goes into the lights on play it will turn that back on and at that point in time my lights are on now if the second player comes in then obviously our player can go to two we go back in here but now was enabled is already true so we basically don't end up doing anything all the way until our player count hits back goes back down to zero in which case our lights are turned off again so that is all that you need script-wise to make this work is detect when your player enters the area increase the counter detect when the player exits the area decrease the counter and simply react on what your counter is if your counter is zero turn the light off if your counter is bigger than zero turn the light on if it's not already on and that's as simple as the logic needs to be now our little animation player um we can't really see much in here because of where we are and unfortunately because my lights off is the default one basically it turns the light off so we can see that our light energy is actually going from one which is fully on to over here uh zero so i'm dimming the lights over that one second period i'm just not not just boom it's off i'm actually doing it and the idea is that the flame extinguishes extinguishes and it just you know fades out uh at the end i'm actually turning my my real light off uh because now that the uh the strength is zero there's no longer a reason to keep that light on and uh that means that it's automatically taken out of our uh um out of uh you know being evaluated by by the renderer which is really nice and the other thing obviously that i'm doing is that i'm stopping my particle emitter right at the start so whatever particles are still in play they will do their thing um but it will stop emitting particles now when we're looking obviously at uh and our light on animation it's the obvious it turns the light on right away but our strength is still zero so it doesn't actually give any light but then as it progresses it goes all the way to uh to one so we get that fade in effect as our torch comes to life and we start emitting our our particles and now with that emitting our particles you know you get that nice effect where uh when the light is off you can see that it slowly you know goes off and when the light goes on you can see that it's sort of burst into uh into flame now there's a lot of things that we can add to this animation to make it even more interesting but that is where i started with uh with everything yeah guido 4 indeed it's it's still very unstable which is to be expected because we're still working very hard on the renderer we're at the tail end of working on the renderer it's actually pretty feature complete at the moment there's a bunch of things from mobile that that they've asked me to start diving into so so that's something that i'll be uh be doing in the next two to three weeks probably making sure that there's basically going to be a second version of the vulcan renderer that's a little bit more optimized for mobile um the way for instance that light culling currently works you know there's a clustered uh compute shader that runs to call the lights which is really cool because you can get you know hundreds of lights in your scene and uh um and and things will still run um but that that approach just doesn't perform a mobile uh that'll halt your mobile to uh uh drag your mobile to a whole if it even works because you might not even have the computer shaders available uh so we're going to go to a light calling system that's more akin to how things work in godot 3 and there's a bunch of other things that will be be changing up in mobile where mobile gpu architecture is just different and requires different optimizations to uh to run so that's something that that we'll be working on um i think uh jean is at a point right now where he's kind of winding down what he's doing on the renderer and he's going to start working on the backlog of bug fixes and stuff like that um because both me and uh and j phones are now on board now obviously for me my primary focus will remain xr i'm doing the renderer as uh something extra um because there's a lot of synergy between those two uh while j fonts i think now is being paid to work um i'm not sure if he's full-time or part-time but uh but his primary focus will be taking things over from uh from from john and uh you know improving the renderer and bug fixing and and stuff like that so uh uh so yeah that team's being expanded quite and of course play john has already been been heavily involved in in doing renderer stuff which is really cool so there's basically the four of us now which which is really nice um so yeah we are now in that in that stage where uh where we have the features that we want as far as the render is concerned and we're now really working on uh on making things stable so whether um when good of four will be released is still unknown at this point in time because it's just too early to see or to tell how much uh work is actually involved in fixing all the things and improving all the things but i think we're getting you know except for for the xr stuff that we want to do i think we're going to want to get to a point where we stop adding new stuff and really focus on on stabilizing stuff so probably you know by june july there might be a stable version or at least it might be finally in in a proper beta slash release candidate state that's the whole but don't hold me to that it could blow out it's all depending on what we find and and what the feedback of people are will be uh but i do think that uh probably in about uh two to three months we'll be at a point where where the really gnarly stuff is fixed and you could actually start contemplating um doing a project in godot 4 and uh you know as long as you you you don't plan to go in production uh but you're at the start of a project um and you're willing to suffer through the the rough edges you probably could make that choice in about two to three months that that would be my my guess um deco can we convert existing projector for without any issues not right now um there are a lot of stuff that's being refactored and renamed um you know just look at the the scene uh or the note 3 here uh the fact that all the the naming conventions are much more um much more useful so we have uh no two to e bone two d these are all new to these but on the oh i'm in the wrong one i'm sort of wondering why do i still see spatial uh let's go and very quickly start up let's just open that one up let's see but what so yeah now you can see so we got the note and here now we have a note 2d and we have a note 3 so spatial is being renamed to node 3d and you can see that we have that consistent naming between nodes that are 3d nodes and nodes that are 2d nodes instead of having you know um camera 2d and then camera well now it's we've got camera 2d and we've got camera 3d so that is very clear what you are using the only ones that don't have a 3d or 2d is when it's only available in you know so tile maps don't exist in 3d because they're there we have you know grid maps which are very different in in the way that they work so uh so they haven't gotten that suffix but it's things like that there's a whole bunch of things in gd script that's been changed so right now today if you take a uh godot three project it will try its best to rename as much as it can automatically but there will be a whole bunch of things that will break and that you will have to go through manually now by the time we get closer hold on one second that's all happening here interesting um when when we get further along it is supposed to do more and more so it's more the fact that right now nobody's working on the project loader making sure that everything converts because too many things are still in flux it would just be you know having to repeat the same work over and over again doesn't make any sense um but there is more work planned in making sure that as much code gets converted um but there will be things that break and that's that's just unavoidable when when there's such major changes especially around shaders if you make your own shaders it's very likely that you're going to have to edit them and and change them over um a lot of them are portable though it is it's actually quite nice how much of the godot three shaders still just work fine in good o4 um yeah i love grip maps too absolutely all right um rajay you're an ios developer can we get a live stream for ios plugins um maybe i don't know the problem that i have is i do still have access to a mac uh from my previous work because i'm still doing some on and off things for them from time to time but it's actually not my mac so first of all at some point i need to give it back but it's also something that uh i don't really have you know i don't have any recording software installed on it or anything like that so i'm currently not doing ios stuff um and as as a result i've also not you know i know that the plugin structure for ios has changed quite a bit they've been doing some really uh big improvements to ios over the last couple of months um so i'd need to actually spend time in and get up to speed with that so maybe if i if i get time for it and uh and if i uh if i still have the accessory mac and i can use it or abuse it for that for a little bit i do want to get back to mac at some point in time i do want to get back to uh to ios at some point in time um you know also to help out with the volca the molten vk port which is working by the way i was very surprised to hear that i didn't know that someone was already working on getting it o4 to to run on ios uh there are rough edges there are things that are broken uh for instance the sky shaders are currently broken if i understand correctly but you can actually run godot 4 on ios already which is pretty impressive in my opinion so yeah oh in a way four is a great reset but it's a good reset in my opinion because of the the vulcan renderer um but yeah uh openvr right now it will not work in godot four and will not work anytime soon my focus in the next two months is to get the basics of open xr working in godot um and i'm actually doing that in the core at the moment it might go back into a plugin so we have an open xr plugin and i recommend everybody check that out actually uh so it's on github good ovr godot underscore open xr there's a few things that the openvr plugin currently does at the open xr plugin doesn't do yet or it actually does it but we're still waiting until we can release a few things officially we're waiting on on permission for one or two things to to be open sourced um or put into the public domain i should say mostly your own assets um you know the hand meshes and stuff like that um and there is some work still need to be done on on because microsoft has done the uh the render model implementation so um that is something that we still need to look at but the godot 3 open xr plugin is actually functional it's actually working quite well and it's actually in many ways working better than the openvr and the oculus desktop plugins uh the quest plugin is a whole different piece because there's so many specific uh platform dependent stuff implemented in the quest plugin uh also considering that there's far more people working on the quest plugin right now that that's really ahead of the curve in in many ways but the open xr plugin is really working very well but for do4 i'm currently moving that into the core as a core module and i'm doing that because we need to do some very structural changes to the vulcan renderer and the way that we set up render buffers under under vr to make it render properly and and work nicely with that and trying to do that over the gt native barrier at this point in time is uh just a distraction now we are working or george feden is currently working on major enhancements to uh gd native and that's the other reason why i've gone down that track because i want to wait until all those changes and improvements are made before i start looking at okay how am i going to to make vr support work over the plug-in structure again and then we'll start looking at uh porting the other plug-ins over now there is a big chance um that the openvr plug-in will actually have an end of life nothing is certain yet nothing is set in stone but seeing how much effort valve is currently putting in open xr it is very possible that they will actually make openxr their main interface to steamvr in which case openvr will just slowly yeah stop being maintained i guess you know this is pure theory right i i have no idea what they're gonna do um but i have a feeling that if openxr is successful because this is the funny thing right obviously uh has worked together with us and now funded my work to do all this openxr stuff um and they are behind the scenes also going gangbusters with openxr but valve is doing it very publicly so yeah it really looks like they are they are going full steam ahead with openxr again that might change it all depends on whether the industry actually adopts openxr i really hope they do i so far i have been incredibly impressed with how well openxr works but you know it's up to the industry to actually adopt it because for instance you know if you look at the ar as far as i'm aware with maybe the exception of north uh north star project north star i don't think anybody in the ar field is uh oh i'm microsoft microsoft hololens is fully on the open xr bandwagon if only they supported vulcan only directx support for them so that sucks anyway i can i can very much recommend trying out the openxr plugin but yeah the for godot 4 open xr will be the only option at the beginning for at least the next foreseeable months um and once that's up and running and once the gd native stuff is done we're going to start looking at uh at putting the plug-in support back uh because we have to still have it right if we want to support tilt 5 for instance we're going to have to do that through a plugin so plug and support will remain it'll just will be disabled temporarily um or we'll come back i should say um so yeah that's a current plan and again you know in the long term it might mean that open xr will be removed from the core put back into a plug-in again i just currently i'm building it as a core module simply to just not have to deal with some issues and just have them as a big distraction right now hey francois how you doing um and yeah let's be clear right now if you are doing vr stuff stick to good other there is no point in uh in in going to kudo for you know today it doesn't work maybe in a month or two uh we'll have you know people testing with uh at least i actually hope that we're going to have a basic open xor built sometime next month it'll probably just do uh positional tracking only so only the headset but i am hoping that people can start playing around with it trying to find you know the bugs the things that don't work etc etc but for really making a game uh it'll it'll take a few months before we had a point that uh that we have enough functionality in there working the way it went because i'm gonna be changing quite a bit because the vr landscape in the three years that have passed since i um since i developed the original vr structuring at 03 the vr landscape has just changed too much everything is solved in different ways now um and the simplest example of that is the controllers the fact that in the current spec and the current way that we're approaching with the arvr controller node a controller has one position in space um in openvr right now with one of these guys there are five positions being tracked on this thing you know the center position grip position bottom top aim position and you want to use those but we don't have support for that in the core engine we only have supported that in the plugins so that needs to change um [Music] well theta not just monado openxr has vulcan uh monado openxr is responsible for the fact that we have open xr support and godot because your your good friend christoph is the one who started porting everything open to openxr so and and still very much involved what we're doing uh so i owe him a lot of debts and gratitude for for all his work um so yeah pretty cool stuff um and and that's the other thing right is uh when you're on linux uh godot is probably your best bet when it comes to working on vr right now in godot three obviously uh but pretty soon in in godot four as well because i i expect kristoff to uh to remain very involved with that as well um even if we're moving stuff to the core i'm definitely talking to him regularly um and sort of you know deciding to get her on on how we're doing stuff so uh yep uh francois um i actually would uh marcus on is is doing it as well um do i have markets um i wish youtube had a way to search within the people i'm subscribed to because trying to find someone in a list of uh of people that's not alphabetically sorted is a pain in the bell where's marcus sorry i'm just looking on my other screen for him for a sec uh i think it's marcus anyway hold on let's just go and have a look at the gazebo so many things uh on the goodell sites that he's probably there somewhere ng where are you where are you marcus come on wow he posts so many updates and i'm still i can't find what he's doing this is ridiculous because marcus has already been doing a whole bunch of testing with the godot for renderer and doing some really cool stuff with it um now obviously one of the biggest problems that you have right now is if you're coming from blender you know if you stick to gltf you're fine but the fbx importer you know has been greatly improved if you're coming from maya but you're going to run into problems when you use it through through blender i actually have a lot of crashes when it comes to using that which i'm fine with because i prefer gltf over fps anyway but it is a bit of a hassle wow this is crazy i always get updates whenever he here you go marcus wolfram okay we're sure where's your youtube channel buddy where is your youtube channel well you know what i'm just gonna go move that over here for a sec so yeah he's having a whole bunch of fun okay i am going to go and close you and close you because i'm streaming and i don't want personal messages popping up that could become very embarrassing if that happens um and i don't want you go away so yeah um yeah he's already doing a whole bunch of uh of his asset testing in godot 4 and having lots of lots of fun with it so for that sort of stuff and i'm not going to keep that on i was probably not the smartest idea to do that on stream that could have ended up really badly um yeah so yeah so yeah um so for that sort of stuff i actually recommend people start testing it out because it's it's it's valuable input to see if assets come across properly and like i did last week on stream playing around with the uh with the sdf gi and playing around with uh with the volumetric um fog and stuff like that it's cool it's really cool um and you know playing around with that and getting experience with that and and seeing you know how things work um will you lose your scene not very likely i think at this point it depends a bit on how far you go i think your biggest problem is going to be running into crashes or ui things that don't work one of my pet peeves at the moment is that the scene tree doesn't always redraw so sometimes you're sort of going like where is my stuff going but those are the things to be expected um just considering the where we are in the development cycle so it's just what we need to do right anyway it's almost 10 so i need to keep the a i out for this yeah so indeed akin is telling me i need to uh i need to be ready in about 40 minutes so i'm actually planning to stop about 10 40. something like that so we'll see how it go hey rodzilla how you going ah joshua that's a shame wonder why for isn't working for you that's always good to have some info about that obviously you know you do have to have a vulcan capable graphics card um i'm surprised by how many people are still trying and often succeeding to run guido and pretty old hardware um but yeah there is a limit to how far back you can go then again at the same time you know i do know that there are certain uh graphic cards that we're still having some issues with and stuff to sort out there's only so much we can test right to begin with anyway so yeah just to get back to where we were with this uh we therefore you know yeah so when we get close enough to that light you can see and i'm actually gonna load this up a bit that one goes on and the moment that we go slightly further off you see that fade out and have that little puff of smoke sort of disappear and when you come back in it just you know fires up it's not a it's not like boom there it is it actually has a nice little bit of an animation and i think there's a lot of improvement that can be done there one of the things that i really want to do that i'm still looking into is actually have the light uh maybe move slightly or you know have some random movement in there to sort of indicate that it is a moving flame it's not a you know a light bulb um but yeah it's one of those things where uh that becomes when we're much further down the line right now i want to get all the basics working and and work with that so the next thing that we want to do is obviously right now as they stand in i've got our character just moving around like crazy so obviously that's not what we want we actually want our player to um to properly move uh in cells so when we're actually looking at our tile set which is really nice even though these are four big tiles we can see that we're we've broken everything up into into these floor tops and there's also the tile size of this uh this tile set that i'm using which is really cool so that's why we can see that for instance this corner nicely fits on a two by two square so these are actually going to be the squares that we're really going to be using um where's my scenery the movie okay that one's good um yeah grill for uh yeah um that is the uh the problem always with development is um you know knowing where and what to do you know uh it's always easy when you watch someone who's already got a picture in his head how he wants to implement something um but if you're not sure of the right technique then you can get stuck very quickly long live youtube i'd say and long live discord and places like that where you can ask people and get some help getting unstuck the biggest thing and this is why i spend so much time at the beginning of the video on how this torch works when you look at something like this like turning the light on and off depending on player movement it looks incredibly complex when you see it right when you're moving around you know it looks like there's so many things in play and then you actually look at the solution and it's two signals and a counter and you know a start and stop of an animation um there's really nothing to it but you have to have that idea of it and one of the things that i find very interesting one of the most difficult thing when you're looking at godot or when you're looking at people who come from a different game engine into godot is is this that bit people are used to writing this in code when you look at many of the other game engines and you're looking at um implementing something like this the thing that you'll see most often is someone going to the player script or the script that controls the movement of the player write some code that figures out as the player moves whether the player comes into contact with the light or gets close enough to the light or a light then interacts with that light has some code on that light that will either turn that light on or off depending on what's happening um and you you end up with lines and lines and lines of code to do this and godot is structured to not work in that way godot is structured to be much more context based so i just have a node that uses the physics engine to detect when my player gets in range of the lights and i piggyback on all that logic of it keeping track of everything that i need to keep track of and you're sending me a signal telling me a player got close and sending me a signal saying the player moved out of range and that is something that we're going that we're seeing all over the place in the way that uh that stuff works so ah did i see canning software absolutely i follow actually i'm one of kenny's patreons because i love the stuff that he does i use so many of his assets i would have actually used one of his uh tile sets for this uh uh until akian showed me casework and i went like holy crap that's that's much more cute that's that's a much nicer set to work with right now um nothing bad to kenny i love kenny sets just as much it just this really fits what i want to do very well so uh that's why i'm working with this one uh but yeah his assets forge is an amazing piece of software and now the new one i forgot the name of that new little thing where where you draw a pixel art 2d thing and you give it some depth and it turns it into basically voxel type um 3d mesh uh yeah it's uh it's really cool um i really like what he does because it makes prototyping a game so quick um especially for people like me who are incredibly bad at doing artwork uh so yeah i love what he does all right now um we might go down a rabbit hole here i don't know i'm just going to be trying a few things um but it all starts with the tiles that we have on the floor so we're going to go to our room i've moved actually all our dungeon rooms into a subfolder so that we can have different styles of dungeons uh with different rooms and then have our uh our central code over here so here's our here's our now's base room so that has just that uh uh that helper down below that we're actually going to be removing that helper thing in a minute because we'll have something much better soon um because every tile is going to be the same that's that's a choice that i made in the way that my dungeon generator just works is it needs to have all the rooms the same size which is fine maybe at some point i'll make a version that can have different size rooms we will see but right now all the rooms need to have the same size so what i want to do is i actually want to create objects that help us do stuff here so i'm going to create a new node i'm actually going to add a new spatial node first which we're going to call grid and now i'm going to add oops i'm going to add a spatial node and i'm going to call that cell here we go and um we're going to save that in a minute but i want to go and create a mesh instance on this for now and that guy is just going to become a cube there we go and i'm going to make that 2x2 because that is our cell size but i'm going to make the height just be very small 0.1 and that also means that i want to move this up now our floor tiles are always going to be on the floor so i'm actually going to move this up a whole meter that should mean that this thing is actually in the right spot now the last thing that i want to do for this i actually need to go to top view is i'm going to make this sitting in the corner so that's going to be my uh my first oh actually i don't want that at all hang on i always do this wrong i'm going to move this one up we want to do that on our cell here we actually want to move our grid up to one i think there we go and now we can move our cell in position so that's going to be our cell i probably should have saved that before i did this let's actually do that first and save this to scene scenes rooms and we're just going to save this as cell i'm gonna just move that one and i'm just doing that so that these ones are going to be i can change these without them actually changing here because i also need to move that back from there um so i'm going to call this 01x01 and i'm going to move one more one more one more one more there we go so there we go one through six i'm gonna move this one and this is always going to be a little bit more work but it's okay because i want to make sure oops let's get rid of that for now because i want to rename this one first oops we're going to use godot's nice automatic naming for this now obviously i'm not going to keep the mesh the way that it is right now i just need it to have a placeholder i don't know that's going to be three i probably could write some logic that does this for me but that's okay there we go this is becoming pretty big that is what it is the reason i'm creating these objects is because i can start doing detectors on these to see if my mouse is actually hovering over i can start making effects that if my mouse hovers over i make it visible maybe make it a nice transparent cell or something like that um but also it means that we can react on these things being visible or not so we can start you know cells that we actually can't or don't want a player to move on we'll just make them invisible in the uh in the in the extender classes and that means that they're not going to be picked up okay i'm gonna have to just move it down at some point in time you know what maybe i should just uh nah i think note wise this should this should be okay because remember the thing is we're spawning these guys in um i'm just going to do it come on okay responding these guys in and it's when you're spawning in a uh a scene that's when there's a bit of overhead in updating the scene tree you don't seem tree hand get um can get a performance hits when you are adding stuff to it because of the way that allocation works and stuff like that but once it's in the scene tree it's actually a pretty efficient structure so uh i'm not too worried about actually having 36 of these objects in my scene because i'm actually going to be reusing that scene all over again it's also one of the reasons why this guy is i was afraid that was going to happen because of course i didn't save that in time and now it's in the wrong spot uh okay let's move you back where you belong buddy there we go so that trick that i did would have worked if i had remembered to actually save this guy all right that now means that i can delete my guide okay and then that also means that if i look at my dungeon and look at my room one we've got a whole bunch of things just overlapping everything over here cool now one thing that is probably something that we can always do oh i haven't saved it with a guide yet so let's make sure that we do that there we go guys it's gone good is we could probably always go and remove these corner ones so those are because we can never have our player there now i'm wondering if i should be even removing those from our base actually you know what a better idea is we are going to keep them in but we're going to hide them in our base because in most of our dungeons those will not be usable now i can imagine that maybe at some point we will make those usable after all i'm not sure so that's something that i need to figure out very good joshua happy to hear it hi david how you going good morning to you yep exactly vintex uh you cannot have two nodes of the same name so there's a nice numbering scheme in it and i am just abusing that it's doing that to number it in the way that i want to number it so i don't have to set the names all myself that's just uh being a little bit smart as we rebuild through things so there we go we now have our tiles in place um like that perfect cool all right now let's go and put a script on this guy create that was not what i had in mind no i'm not going to be using uh visual scripting guys very sorry for that uh close discard clear where are you clear boom this is what happens when you test something and it remembers there we go all right create a script and i don't want visual script i just want normal gg script while i do want to start doing stuff with uh with visual shaders because i really like visual shaders um i'm not a big fan of how well i'm not a big fan yet of how the uh visual script works in godot um i do have plans to at some point yeah i know i need to charge my iphone um i do have plans to at some point dive into that and see if i can help out and improve some of that stuff uh because i do think there is a big feature for visual script uh but not right now i've got enough on my plate already how are we on time we are closing in on our deadline i don't think we're gonna get very far today but uh let's just see how far we can get all right so one of the things that i want to do here is um i'm just going to rename this to [Music] tile why not actually let's call it amish now uh what was this question is there a reason they are named differently in editor and in the actual game with scripts uh they are not named differently um at least depending on how things go so if i run this what am i doing wrong here oh ah yeah we just removed our guide so no longer a thing right that's i'm going to be doing other things already so all right so obviously we have our our things now uh everywhere and uh hiding it but if i go to my remote view here you can see that uh our nodes are pretty much still named the same including on our grid however i think what you're talking about is when we're looking at these guys these are all the rooms that we spawned in and obviously they are getting random well not really random names but they're getting generated names to uh to make sure that they still have unique names as they spawn in so it all depends on whether you are adding stuff to your scene tree or whether they're there to begin with but the name should still be uh the way that they are so uh so happy with that all right cool so let's go back in our cell and what i want to do for now is uh file mesh visible find by default cool all right cool so now i'm it's it's a it's a square right now and we'll probably leave it as a square for the time being but obviously i don't want it to be a square in the long term we're going to make it something nice uh it might make it like you know something round or something i don't know the thing that i want to do right now that i want to want to start with even before we get our uh our a start working right now we don't have any of these tiles highlighted i actually want these guys to start reacting on my mouse now part of that i'm going to do in our central code to sort of um do a detector um so we're going to create a little mouse handler script might even do that as a as a oh that reminds me i wanted to do that that's right hold on for a sec as an auto script so we have a global state overload script here for our state but we might do a mouse handling uh one in there i'm not quite sure yet which way we're gonna go with that um but before we go there i wanted to try something else out after someone said something to me and said you know what that global state thing that you did here that may not be needed now let's actually go only two matches that makes life easy so what did he say he said that i could not do this and it works is it still working is it still doing my thing that works how cool is that okay so the moment that you autoload the script because this is the thing that i didn't know the moment that you order load the script that actually becomes a global variable name huh that makes it so much easier i wish i had known that ages ago because i was always accessing it uh where is my accessing it with the get gnome on the on the route where it's intensity but uh obviously we don't need to do that that is really cool all right so um i'm actually going to start with um with assuming that we're going to do a mouse handler here so i probably need to create that as a script first uh hold on where did i put my cloth script scripts it's a really good place for scripts so let's add a new script here new script and we're going to call that mouse mouse and now we're going to go into project settings and we're going to select our mouse handler why does it keep doing that why is that my default now i don't want that to be my default that is annoying a new script no a gd native script thank you that was annoying there we go mouse handler add it's enabled perfect there we go i'm going to go and close a bunch of things all right so there's our mouse handle now we'll be implementing some stuff there in a minute basically all i want to do with my mouse handler is actually i want to start doing a raycast from my mouse to detect where we're pointing and reacting to stuff hey misha yeah um i knew about outlaw loads uh which are really cool but i didn't know that you could access them that way which changes things a bit all right so all right area node um let's just yeah mouse object or not i'm going to call that pointer detect and we're going to make that have a collision shape there we go perfect and that's just going to be a box shape and that obviously needs to now be 0.05 to match that one and we also need to go up to b on a block um yeah i think that'll do um now the other thing that i want to do here is let's go here and actually i want to put that all the way at the end i like using my first 10 layers for actually physical things in my scene so enemies characters projectiles all that sort of stuff and i kind of like using the second half the other 10 to the things that are not part of my world that are part of the ui so i'm actually going to call that ui for now not quite sure if that should be different but we're going to put that into that layer and into that mask [Music] yeah being able to define a variable that's that's global would it would have some some usages now obviously you can create an autoload script and put a whole bunch of variables in there and they will be basically global just you would have to do you know global state dot hello world whatever your variables net so you could do it that way but uh yeah okay we actually have mouse entered a mouse i didn't even know that we might not need our mouse handler script if that's true very pickable if true cliche will respond to raycasts okay let's go okay let's actually see if that works if that works that makes our life even easier so let's go and say print hello all right i'm not getting any any mouse enters on these but i might need to turn something on for that to work um let's have a look monitoring want to roll so that's that stuff oh yes it's alex how you going um capture on drag that's not it that's just positioning well my microphone is in the way all right let's have a look at uh whether there's something in our help okay so that looks like it's actually gonna come from my collision objects emitted when the mouse pointer enters any of this object's shape emitted when the mouse pointer exits any of these object shapes we're hiding a tar mesh we're not hiding our pointer i'm doing a print hello mouse it's not going in there ah something's leaking that's interesting that needs to be sorted at some point well that's true to clean but there are some uses for them you know i i'm careful to use them but there are certain you know certain times where it just makes so much more sense although i think when you wrap them into into an overload you know you think about your score right the the game state is for all intents and purposes a global resource so that kind of makes sense i think all right not disabled um i don't know maybe we do need to do a mouse handling ourselves which is fine if we need to do that i don't really mind but uh yeah i would have expected it so anyway we won't do it that way that's fine all right sorry about that because that would have made our life a lot simpler now i don't mind in this case because eventually i want to be able to interact with these cells with other things than just a mouse especially if we do go down the vr road obviously i want to be able to do it with my excuse me with my vr uh uh ones so i'm not too bothered by the fact that that doesn't work and that we need to implement our own thing so what we're going to be doing here is we're actually going to create a function an input function so this is going to get input events and the event that we want to uh it's not is i think it just is um hello hold on one sec event what are my events oh input events that's why mouse motion so we want to react to the movement of our mouse so that we can detect what we're on top of oh four a.m uh joshua well um you're gonna miss a q a but uh if it's 4 30 a.m for you i'd say go sleep yes thanks for joining though thanks for uh for watching the stream for as long as you could yeah as alex i need to uh i need to keep a good eye on the time because i need to stop a little bit before that i probably need about 15-20 minutes before the q a starts to actually prepare and join in so so i will be putting an end to this in about 15 minutes and then we'll pick up where we left off next week um but let's see if we can at least get our uh our tiles to react to our mouse so the thing that we want to do here is we want to do our own ray cost now the nice thing is we can get our camera gets um is that where is that again i've done this a hundred times and i cannot remember it now on the viewport of course that makes perfect sense we get our current viewport and then get the camera on our current viewport that will give us um our camera input yeah everything that i've been playing with in good old four has just been absolutely amazing um let's actually go and go to our help for the camera um by the way for anybody who didn't notice because i only learned this yesterday either is if you comfort click on something in your script you go to the help of that object that you're doing um so yeah we need to um to get these our array normal and ray origin so that we can do a ray cast now the thing is i thought that was a actual function that did the right cost but obviously we need to get these values okay so var we've got the what the thing is called so we're just going to do it like this gets project ray origin that's the one and that's now event dots position so this is going to be coming array origin that's going to be our position in space where our camera currently is just keeping an eye out if there is anything coming in yet ritz normal position there we go and with that we should be able to do a raycast um that's the recast object well i guess we could move a an actual raycast object around but there is a way to just do it directly on our physics server [Music] intersect right that's what i'm looking for all right so how do we get to the space again um is that in our viewport as well do i have a get space here i might need to go through world and then space there we go perfect okay yeah reports up get our uh this is world then yep base why did that not autocomplete i don't know let me still have that open so we go to worlds oh because we just need no we need get space right oh we can just use space okay that'll be good there's a space no idea looks like it's property actually i need direct space states there we go that's the one that i need and that gives me a direct space state and that has my intersect function so direct space race and now we can do if space dot intersect ray from ray origin two ray origin plus ray direction and 10 should probably be enough and we're going to not exclude anything and our collision mask [Music] that's a good one um because that's mass 20 two twenty now it's one fifth twenty i think oh let's see if that works or not so um i'm probably using that wrong because that's indeed returning a dictionary there we go and now we can say if not intersect but it's empty all right um why one time oh we're getting close um var intersex type dictionary why does not like that maybe it's a reserved name no it's not why is it not like that oh ah because i still have that one in there uh well we name it hit this then you could bring a name back to intersex but that's right um really is is that a property it's a property okay cool um so going back to here and going back to intersect ray that is what we're getting so we're getting our collider object here i'm getting what all that stuff is uh but we care about a collider object so um that's actually going to be our point to detect all right that actually means that i want to have a script on our port to detect so that we can do something with that and this is going to be called um so underscore point to detect i think we're going to do that that makes sense that makes sense okay cool okay um go back to our mouse handler let's go and say our intersect with um so we're gonna put that as no okay so we're gonna say if uh else if there's x with actually that can be cleared now yeah here we're going to say it intersects with it's not equal to hit test and what was that called collider there we go and we're going to say it intersects there we go so we're going to keep track of what we're intersecting with perfect um so what we're going to be doing here is um we're going to have a function here called a enter i'm going to do it signal signal right so here we're simply going to say emit signal enter on ray exit emits signal three exits there we go and now we're gonna just duct type that one i'm going to say if intersects with as method on ray enter intersects with dots on gray enter boom and here before we remove it we're gonna do exit and i'm gonna just do that so okay cool that should do that um so now we should be able to hook up those signals stop doing that all that i'm going to do here it for now just to make it a little bit more visible is we're going to show it when array enter and make it invisible ray exits let's see if that wants to work okay is empty not on dictionary all right let's go and have a look at dictionary empty not is empty it's just empty okay and it's actually a function okay all right let's go have a look all right so i'm guessing that our um is that maybe bit 19 instead of bit 20 that could be no okay um the other thing is that oh here we go collide with areas is false that ain't gonna work um so let's go back to 20 and say true true all right still not heaven are we actually getting here are we using the right properties here maybe it is 90 national okay let me sink this through okay so this is in layer yeah it is bit 19 but that's bit zero five two four two eight eight five two four five two four to edit just in case oops that didn't work the shifting should work as far as i'm aware but that's still not luck and again that could be that we're actually doing something else wrong actually let's go and have a look first in our remote and we're going to go and have a look at our room and i want to look at my room on i want to look at detector that's the player detector that's not the one that i'm after great so okay that's the cell that's invisible that's right but this one is visible but it's a tile that is not visible very good and then our pointer detect is nicely in the right collision ray pickable is on all right oh i need to put an end to this guys let's go put that over here and see okay did that break yeah hit the breakpoint so array origin there okay you know what i just suddenly realized something that's the last thing that we'll do before we call it quits now i think my camera is more than 10 units away so i'm actually gonna make this nice and long to make absolutely sure but that's not our problem all right there we go so we're getting this nicely visible but we're not good that's a nice painter we can paint our thing all right so that means that this isn't working our on array exit andre exits ray exits is being called which is hooked up to this one and it says visible false all right so let's go and put a breakpoint there okay that's really interesting okay okay okay okay i get it now because the thing that we're missing here is we're saying if it's changed we're uh okay so we need to repeat this boom boom boom okay we need to make sure that if we had something that we're inter intersecting with then we obviously need to do that okay so let's go and restart this and then yep i am going to go and call it a end of the stream guys we have this working so our detection of which cell our mouse is over works next week we'll continue with this and actually make the logic that allows us to move the character so um sorry to make an end of it i'd say uh goodnight everybody uh please join me over on the uh there's my alarm also going off boom please join me on the uh on the godot uh q a um i'm gonna switch over a couple of things and i'll see you guys in about 15 minutes so thanks all and to be continued you
Info
Channel: Bastiaan Olij
Views: 654
Rating: undefined out of 5
Keywords: godot, vr, spacesim
Id: TCc-qnibTDo
Channel Id: undefined
Length: 106min 0sec (6360 seconds)
Published: Fri Feb 26 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.