How to Create a Game in Unreal Engine 5 - UE5 Beginner Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone if you are new to under 5 then this tutorial is for you in this tutorial we go from knowing nothing about unreal engine 5 to creating this game you see right here so as we can see on the top right hand corner we have a timer and the goal of this game is very simple basically we're just trying to hit all the targets that are in the world before the counter hits zero so it's basically a competition against the timer and then we have one more left so it's four out of five and now we're five out of five and we get a win screen we also get a restart button that's how the player can restart and replay the game if they really want to so it's a very simple game we're going to be going over the basics of programming and specifically blueprints so it's a very important note that i have another unreal engine 5 beginner tutorial series that is 5 hours long but it focuses more so on the environmental aspect of unreal engine 5 while this one focuses on the programming aspect of unreal engine 5. so i recommend that you do check out that video before watching this one but if you don't that is completely fine we do start from scratch within this tutorial also if you did watch the 5 hour long tutorial then you're going to want to skip ahead about 17 minutes into this video because we are going to repeat some of the fundamentals some of the basics of unreal engine so with all that being said let's start programming so first we are going to download our real engine 5. you can download it through the epic games launcher you can get from their website and simply come to the ue5 tab and click on download when you are done downloading if we come into library we can see that we have right here unreal engine 5 and we can press launch or if you don't want to go through the epic games launcher we can click on the drop down and click on create shortcuts this will create a desktop shortcut and then we can double click on it right here to open it that way keep in mind unreal engine 5 is currently in early access so if you're following along with this tutorial you can expect some glitches and maybe some changes in the future if the changes are big enough then this tutorial will be remade so double check in the description that i haven't already remade this tutorial if you're watching in the far future so this is what we should see when you open up unreal engine for the first time as we can see we have a list of all of our different projects now your projects are probably going to be empty right now but we can create a new project by coming over here so right here we have a collection of different templates now of course our template will be located in games and of course we're going to be building on top of the first person shooter template epic games is nice enough to include a bunch of templates that will help us get started with whatever project we are trying to create and then down here we have a bunch of defaults we can set so i'm going to uncheck starter content and uncheck raytracing and make sure that i have blueprints and not c plus selected since we will be using blueprint for our video game and then down here we can set a project location i like where it's set right now that is my desktop and then we can name my project so i'm gonna go ahead let's name this first game and press create we can see that my project just opened up but also on the left here we have a folder that was created if i double click on this folder we'll see all the different data that make up my project and if i let's say exit out of my project right here to open up my project again all i have to do is navigate to my project folder and double click on the executable with my project name so that's one way of opening up the project without having to go through the epic games launcher so keep in mind we're going to go over the very fundamentals of unreal engine so the user interface and the viewport right here so if you already watched the unreal engine 5 beginner tutorial the long one then you can skip ahead to the blueprint part but for everyone who hasn't i'll just briefly go over what you see right here so of course in the middle we have our 3d viewport the viewport is simply a window into our world from which we can fly around grab objects move around and create a level and then to the right of this we have the details panel details panel allows us to edit the properties of objects i have selected within my level and keep in mind i'll go over how to navigate and the viewport in just a bit and above that we have the world outliner now the world outliner is of course just a collection a list of all the different objects that are in your world so this is another way to select objects without having to select them right in the viewport and above everything here we have our toolbar so our toolbar is a collection of very useful tools we can see right here that we can switch in between different modes so let's say if i want to create a landscape i click on the landscape icon right here and now i'm in landscape editing mode or i can go into foliage and paint some foliage and so on we also have different shortcuts so shift two we can quickly switch in between our different modes so shift one is a default mode which is place actors shift two landscape three foliage and so on so i'll just go back pressing shift 1 to our place actors mode and then we have the play button if i press play we can see that now i am walking around my world we are playing in game in editor and we could use wasd keys to move space to jump and i'm gonna shoot a ball and i'll just fire just like that so by default we won't have first person the reason why we have our first person character here is because we selected the first person templates so unreal already has a bunch of content in here for us i'm going to press escape to exit out of play mode and right next to play we have platforms this is where you would compile and build your game for final product so this is where you come in and build it for windows or for mac ios and so on so we won't be going over how to build and compile your game within this tutorial and to the far left we see we have a bunch of other drop downs so you could create cinematics blueprints which we will go over in just a bit because this is the point of the tutorial and then we can have the crates where we can drag in new objects i'll go over that in just a bit and you might be wondering where do i get new content where can i see pretty much all the assets that make up my project and that is with control and space within the content drawer the content drawer especially right here we can see all these folders are what currently make up my project so we're going to be creating new assets editing assets and all of this is all the data that my unrealistic product is using so all your levels materials programming are stored within the content drawer so we can press control and space to bring it up just like this or we can press the content drawer button right there bottom left hand corner if you don't want to always have to press ctrl space to bring up we can click on dock and layout just like that which will move my content drawer to the bottom and that's how we don't have to press control and space if i want to quickly navigate through and grab an asset also if you forgot to select first person template you can always come to add scroll up go to add feature a content pack and then select the first person template from here so right now there's a glitch and the first person template isn't here so it should be here in a future update so you should see it i'll just exit out right there now before we can move on how to fly around in our world and move objects i just have to quickly go over how we can customize the user interface so we see that all we have all these tabs right here if i left click hold i could drag my tab around and just dock it wherever i like so let's say if i prefer my details pin over here i can move it right there and scale windows just like this i can also come up to a tab and right click on it and then go to collapse to tab well that will just hide my tabs let's say if this tab is taking up too much space right click collapse the tab well and if you want that tab back we can click on the little blue triangle top left hand corner also i can move this details panel so let's right click it and i can move my tabs to the sidebar so now that's on the sidebar i have to come up and click on it to bring up the details panel we can also bring up new windows new tabs since by default on religion doesn't show all the windows by coming up to windows and selecting something so let's say if i want my levels then i can click on it right there and now i have my levels window that i could just drag and dock anywhere i like so let's say if you customize your user interface to the point of no return you have no idea what's happening no worries we come up to window all the way down load layouts and then load our default editor layout just like that and now we have back our default layout also we can press f10 it will move all my tabs into the sidebar so that's a good way of quickly increasing the size of your viewports speaking of viewports let's go over our camera controls that's what we can fly around within our world so first off you want to hold down the right mouse button so with the right mouse button held down now we are able to look around my world by just moving my mouse button and using the wasd keys to move around just like any first person shooter we can also use e to go up and q to go down so w asd e and q to move around all the while holding down the right mouse button so this won't work if you're not holding down the right mouse button and that's pretty much the gist of camera controls in the ue4 we can also come up here and change the speed of my camera so say if my camera is too slow then we can just speed it up and bring it to eight and our camera is really fast and this is a good tip if you're ever really lost and now you have no idea where your world is and you want to jump back to it no problem all you have to do is select any of your objects within the world outliner let's say this floor and then press f that will snap you back to your world so if you get lost in your world you can always snap yourself back to it so we're gonna come down also you might have noticed that all these widgets right here are disappearing sometimes that's what the g key the g key stands for game view so right now we're in editor view this is the view that we're going to be looking at if we're editing our world let's say if we want to see our viewport the way our player would see then i just press a g key and it would hide all those editor widgets and just allow us to look at the world as if we aren't editing it let's go over some viewport settings so up here we can change the perspective so let's say if you want a top down bird's eye view of my world i can click on top just like that and now i can use the scroll wheel to zoom out and hold down the right mouse button to pan around so now we can see our world is we're looking at it from a top-down perspective and we can always come back up here and go back into perspective also let's say if you want to isolate out just your base color you come to lift and click on unlit just like that just to see our color you notice that for a lot of these settings if i click right here under view modes we see that we have a bunch of shortcuts so if you hold down alt you can use alt 2 3 4 to cycle in between those view modes another thing i like to do is let's say the show flag show flags will allow us to turn on and off the visibility of certain things in our editor if i press g to bring back my game view mode that's how we see our editor mode and oftentimes i don't like this grid right here so i'm going to come to show and select grid just like that deselect it and now we no longer see it in our editor mode which is exactly what i want so with the viewport and camera controls out of the way let's go over how we can move objects if you select an object and if you press the w key that will bring up the translation widget so with this widget all we have to do is just move it around just like that so hold on the left mouse button on an arrow and we can move around or if i hover over in between the arrows on this box we can lock it in that access and you'll also notice that when i'm moving this object around it's right now snapping it's snapping every 10 centimeters we know it's snapping every 10 centimeters because we've got up here it says 10 if i click on the 10 i can set this to 100 centimeters which is 1 meter and now this object is snapping every 1 meter or if i want to turn off snapping i can select this icon right here that's how it's no longer blue and now we get smooth movement we are no longer snapping same thing with rotation so if i press e i can bring up my rotation widget and now i can rotate around it's snapping every 10 degrees i'm going to turn off right there and finally the r key is to scale so with scaling you can see right here that it is set to snapping so every one fourth i'm going to click it right there that's what we're no longer snapping now we're getting smooth scaling and of course just like any other program i can press ctrl z to undo any edits and within the scale i can scale it on individual axis or on two axes by hovering over the line right here like this or on everything by hovering over the white middle box just like that so that'll scale everything uniformly the controls are w translation e rotation and r to scale how to create new objects well two ways one we could just duplicate an object and two we can drag in a new object so to duplicate an object all you have to do is hold down alt and with the alt key held down we're going to drag using the translation widget from it just like this so again hand off the keyboard press alt again drag so that's how we can duplicate objects we can also delete objects by clicking on them and simply pressing the delete key just like this so one thing i normally delete within the first person template is this word right here because obviously we're in the first person template i don't need a text telling me that i am so i'm gonna press delete key and then if we come up to create we see we have a drop down of a bunch of different options so i can drag in a new shape let's say like a spear or if i go to create i could drag in a light so like a point light so pretty much crate is where we're going to be getting a lot of our objects or if i delete my light right there and delete this if i press ctrl and space we can also drag from the content browser so let's say if i go into fp weapon and mesh we see that i have a gun thumbnail right there and if i drag from it i can drag in a new gun into my level just like this so that's one way is to just drag from your content browser or content drawer so i'm going to delete that right there so let's say if you have an asset but you have no idea where it's located with your content drawer because i know because this exists within my project that this exists somewhere within your content press control and b so control b at the same time and that will jump to that location of where that asset is located within your content browser so i can see it's located right there and we can drag from here and now we have two first person characters i'll delete one keep in mind when we're pressing play right now we are basically possessing this object so when i press play we take control of what we just saw right there so before we jump into blueprints let's go over some of the content that is included within the first person template so if you press ctrl and space and if i click on content we can see all the assets that make up my project right now and they're divided into folders so in geometry meshes we have some of the 3d objects and materials that is currently making up this level we see right here so keep in mind that 3d objects are also called static meshes within a religion so i'll be using the two interchangeably then we can go to fp weapon and of course this is just the weapon that our character is holding so this is the materials the static meshes and the textures although they're called skeletal meshes and skeletal meshes are basically static meshes but they have bones you can animate on them and then we're gonna go up to first person bp and here are some of the blueprints that we're going to be exploring and building on top of to create a more complicated game than what we have here and we also have the maps if i double click on this map let's go save selected we can see that this is where this map right here is stored so the map that we've been working on is stored right here in content first person bp and maps and we can also see the name of the map by coming up here and this is first person example map and we don't need this overview so i'll just delete that basically if you double click on that then it'll just give us an overview of the blueprints but this is what this tutorial here is for and then we have first person first person is all the assets that make up the arms you see right here so if we go into character mesh we can see that we have our arm and keep in mind this isn't a static mesh necessarily this is a skeletal mesh and because it is a skeletal mesh that means we can animate it so if i come out into first person animations and then if i double click on this we can see that we have some animations that are currently being used by that skeletal mesh so we will not be going over animation within this tutorial that is a tutorial for another day we are exclusively sticking to the basics of how to program a game before we move on to blueprints we first have to grab some assets and move it from one project to another so right now i have target game asset project you can download this project link in the description below for free and make sure you unzip this project so to transfer assets from one project to another we first have to open up both projects and don't forget you can open up a project within a project folder by opening that project folder and double clicking on the executable and once we have both projects open i need to find the location of this content folder you see right here within the project i'm trying to move my assets into so of course if i open up my project folder my content folder is right here and then i can highlight this ctrl c to copy where that content folder is and then we're going to select the assets that i want to move and i know all my assets are within the target folder right here so i'm going to right click on target and then scroll all the way down and we're going to click on migrate it'll ask us if we want to migrate these assets and i'm going to press ok so now we need to navigate to the content folder of the project we are moving these assets into so i'm going to go and control and v in that location that we found it from and now that we're in the content folder and it's the content folder of this project folder right here i am going to press on select folder just like that so that should move the assets in and we can see within first game that we have target and we have our static mesh within the project we are working in also keep in mind that you can rotate around the static mesh within this editor here by holding down alt and the left mouse button and also with hold down alt with the right mouse button you can zoom in and out so alt right mouse button zoom in and out alt left mouse button you can rotate around and holding down the l key and the left mouse button we can view our static mesh with different angles of our sun now it is finally time to start talking about programming and what i mentioned programming probably the first thing that comes to your mind is someone sitting at a desk and typing out hundreds of lines of code and while we can program games that way in unreal engine with the language c plus plus unreal engine also gives us the option of their own visual scripting language called blueprints so instead of writing hundreds of lines of hard to read code we can just get little boxes and stream them together called nodes and logically and functionally there are the exact same thing as typing out code it's just it's another way to visualize your program and in my opinion it's a lot easier and it is a lot faster so a common misconception is should i learn c plus plus or should i learn blueprints well ideally you will learn both but even if you are gonna be using c plus plus you're going to encounter blueprints since blueprints is everywhere in unreal engine one way or another you're gonna have to know blueprints even if you're an environment artist and that's exactly what we're gonna do right now we're gonna go and jump straight into blueprints so let's open up a blueprint and specifically what is probably the most important blueprint in our level right now and that is the character right here so the first person character that we go around with and we can fire bullets from so if i click on my character if i press ctrl and b to jump to that character's location the blueprints location we can see that all the blueprints that make up my game currently are located within content first person bp and blueprints so i could double click on first person character right here but a shortcut and i'll just exit out real quickly is that you want to have a blueprint instance selected in your world and then if you press ctrl and e that will automatically open it up for you so now that we have our blueprint opened up i'm going to go hold down left mouse button and let's dock this window right here that's how we can switch in between our level and our blueprint just like that and now the controls are scroll wheel if you want to zoom in zoom out and the right mouse button if you want to pan around so scroll wheel and right mouse button so right here this might look very complicated if you're opening up blueprints for the first time and that's completely understandable blueprints can be pretty intimidating for newcomers since after all we can make entire games using it so right here we see all the notes that make up this logic right here we can see that as this character i can walk around look around fire spears and then if i press the escape key on the top left hand corner we can exit out of play mode so keep in mind we can play our game coming up here and pressing play right there so we don't have to always be within our level editor if we want to play our game so before we continue exploring blueprints let's go over what all these different windows up here mean we can see that in the middle we actually have a couple of tabs we can switch in between and one of them is the viewport so the viewport is a good visual representation to see all the different objects that make up our blueprint and we can see at the top left hand corner we have a components window and you could think of the components window as basically like the world outliner so it's a collection of all the different components that make up our blueprint right below that we have the variables and functions don't worry we're going to go over what these are in just a bit and to the right here we have the details so of course with details it functions exactly like how it does within the level if we click on our object we get a bunch of properties that we can edit and then we have the construction script we won't be going over the construction script within this video but i have a video it should be in the right hand corner that does go over it and then to the right here we have the event graph so the event graph is our main graph this is where our main logic will be stored within our blueprint and above everything we have the toolbar so the toolbar is essentially just like the toolbar within our level it has a collection of commonly used tools and it's very important that we come into class defaults and class settings so if you want to change let's say some default values on your blueprint then you can come here and you can enable disable change different properties of your blueprint as a whole and all the way to the left here we have the compile button the compile button is a pretty big deal because whenever we make a change within our blueprint we want to make sure that we press compile in order to actually see our change but it's also important to know that if we just press play then everything will be compiled anyways now is finally time to go over how we create our own nodes stream different notes together and create our own game from scratch so do not worry i know this looks very complicated right here i only have this blueprint open right now as an example we will be creating our own blueprints in just a bit so the way blueprints works and this is very very simplified is that we have these red nodes right here and these red nodes are events these are the nodes that would fire and all the nodes that are connected to this red node will be fired so we can see that right here we have input action fire so this is our left mouse button and then we see this white wire right here this is an executable wire all the nodes that are connected to this executable wire will be executed in sequence if we press the left mouse button then pressed will fire an executable it will come all the way right here and then this montage play which is the animation of our gun firing will play and then it will shoot from here and then it will spawn our spear and finally then it would play a sound so as soon as we left click first it plays our animation then it spawns a spear and then it plays a sound so that's the very very basics of blueprints essentially we have events and then we have our normal blueprints in case you are confused of what just happened we can visualize these blueprints and this executable wire in real time so we can visualize what is happening within our blueprint while we are in game and this is one of my favorite features of unreal and this is something that is not possible in coding so let's do it right now so i'm just going to go ahead and let's let me dock my window right here and let me give myself some space and let's zoom in on this location and i'm going to come up here and press play so we can see that i have my window and you know i can walk around and then as soon as i fire my gun hopefully you saw it also it's very important right now our mouse is locked to our game if i press shift and f1 at the same time so shift f1 we can get back that mouse so we can move our screen up here and i'm just going to make it even smaller and then as soon as i fire my projectile that white wire turns orange so this especially noticeable right here with jump that as soon as i press jump we can see those white wires turn orange and that orange is indicating that that executable wire is firing so when i press fire right here we can see that executable wire telling our montage play to play that animation and then if i move it right here we'll notice right after when montage play is executed then we're gonna spawn an actor specifically our sphere and then finally we are playing that sound all the nodes you program in unreal engine you can see the logic that's going on behind the scenes and that's absolutely incredible it's important to know that if you aren't seeing these orange wires you want to come up here and then you want to select first person character since sometimes nothing will be selected we want to specifically tell unreal that we want to watch our character that we are inheriting right now so we come up here and click on first person character and now it is finally time to create our own nodes so of course what no do we need first we need the event node we need the red node right here and we can grab an event by right clicking on any empty space within my graph so right clicking will give us our node explorer so we can search for any nodes within a real engine and i'm gonna do keyboard and f just like that i'm gonna press enter and we created our first event so from here we want to connect this to another node and i could right click here and type in the node we are going to be using a print screen and select it like that or i can left click and drag from the output let go with the left mouse button and that will automatically bring up our search bar so then we can type in print stream right here and grab it like that and it will automatically connect it we can break a connection by holding down alt and simply clicking like that to connect up two nodes you just want to left click hold drag into the input and then let go of my left mouse button and i'll connect it just like this so the in stream we could call this anything let's call this my first node and then press compile keep in mind we haven't been pressing compile so far but unreal will automatically compile for us if we forget to press it and then press play so now we will see that whenever i press f on the top left hand corner we get our stream and also it appears that our blueprint is firing correctly so we can see that this node is being activated whenever i press this event so that is pretty nice and now it's time to create our own blueprint completely from scratch so i'm going to highlight both of these and press the delete key also it's important to know that we're not going to be touching this blueprint again in the future i will create a tutorial on how we can create a first person character completely from scratch but not on this one because then this tutorial will be a lot longer than expected so i'm going to press compile and save and let's jump back into our level to create a blueprint is pretty simple there are several different ways that we could create a blueprint but the way i'm going to do it is the most simple way and it's the way that gives us the most control because our blueprint will be empty by default and that's exactly what i want because i want to show the full process so if i press ctrl and space i need to find a location within my content browser that i want to create a blueprint i'm just going to keep it under blueprints folder right here and then in any empty spot i can right click and i can come up to blueprint class and simply select it like this and now we want to pick a parent class so i'm going to pick an actor because an actor is essentially anything that is in our world if there's an object if it's in a world if you see it in the world outliner then it is an actor and that's exactly what i want because we are going to be creating our target blueprints and target blueprints are just targets that are floating in space in our world so i'm going to click on actor and then we're going to name it something i'm going to call this bp underscore target keep in mind you don't have to name this bp but calling fbp and underscore is just the general naming convention that everyone uses when creating blueprints so i'm going to press enter and now we just created our first blueprint so i can double click on it and we are going to open it up so right now our blueprint looks very boring because there's nothing inside of it so let's actually give our blueprint a static mesh and of course the static mesh i want to use is the target static mesh so i'm going to press control and space to bring up the content drawer and let's navigate to our target remember if you don't have the target that's because you need to import this from the downloaded assets and then i can simply just left click and hold and drag it into my components just like that and i'll let go so now we can see that my blueprint has the target right there and if i hold down l and left mouse button just like in the static mesh editor i can move my sun around and view this from different sun angles so i think this looks fine right now but you'll also notice especially if i zoom out actually i'm gonna press compile and let's save this blueprint and let's jump back into first person example map i'm gonna press ctrl space and let's bring in the blueprint that we just created drag it in just like this so now we have our first blueprint that is in our world so when we press fire when we fire into it nothing happens so let's set up an event that will fire whenever my projectile hits it so i'm press escape and then i can jump back into it by coming up here or if you remember if i press ctrl e that will automatically open it up for us but since our blueprint editor is already opened up we don't need to so now let's create an event that will fire whenever we hit this static mesh so let's come to event graph and we'll notice our event graph isn't empty there are a couple of events already set up by unreal that are very common now we don't need these events right now and don't worry we will go over what these events are in just a bit but i'll highlight these and delete them just like that so to create an event that will fire whenever anything hits this we want to click on our static mesh scroll all the way down and then under events we have on component hit it's the first one i want to click on this plus button right there and that will create that event for us so to double check that everything is working let's drag from here and now i'm going to type print stream and in big letters let's say target hit just like that and i can click on this arrow which will bring down some advanced options so some nodes have this arrow that contain even more properties that we can edit and let's make this text color not blue but let's make it red that's how we can much easier see what it is and press okay now i'm going to compile save and i'm going to just bring this down again let's rotate this and then we'll press play and now whenever i fire into it we see on the top left-hand corner we see target hits so this appears to be working but now there's a bug because i only want this event to fire when a projectile hits it now if i walk up to it as a character i just jump into myself we can see it says target hit right there so that's a bug so to make sure that only the connected nodes right here will fire when a projectile hits it we want to drag from other actor and then we're going to type in cast to first person projectile just like that i'm going to press enter and now we're going to get the cast and then i'm going to hook it up like this so casting can be pretty complicated but all you need to know for this purpose right now is that on component hit we're going to check that the object or actor that is currently hitting this static mesh is a projectile so remember projectiles are this ball right here that we're firing from our gun and then if it is then we're gonna do target hit if it's not then we're not gonna do anything so we're just gonna leave this output here blank so now if i press play let's see if that bug is gone if i fire we can see that target is hit and then if i jump up to this we see that the vent is firing but the cast right there is blocking that executable wire from hitting my print screen that is exactly what i want and i'll press escape right there now we need some way to track how many targets we do hit so i want a way where if i press play and then if i hit this target we are keeping track of the amount of targets we have hit so if i press escape we can do that by using the game mode so the game mode is what you expect it's a blueprint but it handles a lot of the game features so if you're playing capture the flag then a game mode will keep track of how many flags each team has and if we press control and space we already have a game mode right there but i want to create one from scratch so i'm going to right click let's go blueprint class and we have game mode right there so i'm going to go ahead and let's click on this and i'm going to name the gm underscore target game just like that and let's double click and go into this game mode game modes are pretty special because we're able to specify what some of the main blueprints are of our game and we can see right here that we have our pawn class our pawn class is essentially our character class our pawn is the actor that we are controlling and right now set the default pawn in the drop down let's set this to first person character just like that so i'm going to press compile and save and with an example map i'm actually going to go ahead and let's delete this character right here and press the delete key and now i want to see the settings of my entire level because i want to tell unreal that i want to use this game mode right here and of course since we just created this game mode our level isn't using this game mode to get the world settings i need to come up to window and click on world settings just like that which will show it right here and then under game mode override instead of first person game mode let's do gm underscore target game which is the one we just created so now if i press play everything seems like it's working our first person character is being used right now and if i press escape if we go into our game mode and if i click on this arrow right here which will reset it to its default value of default pawn and if i come back into first person example map and press play we notice that we don't get that character so that's why it is pretty important to specify within your game mode what our default character is which is the first person character also i noticed that we're missing our crosshair right now so let's bring that back by coming to the hud and unreal has already included a hud within this template which is the first person hud so now we have back our crosshair also if you don't see these settings right here you want to make sure that you have class settings selected so class settings will bring up all the different defaults for our game mode so now let's actually go into our event graph and let's start editing this game mode so i'm going to highlight all these and let's press delete so now it is finally time to go over variables specifically this window right here so if you ever code it beforehand then you already know what a variable is but if you're brand new here a variable is essentially a container of data so we could create a variable by coming right here to variables and clicking on the plus icon so now we have a new variable let's call this variable my var for variable and then let's change it from a boolean which is true and false to an integer which is a whole number and then i'm going to press compile so down here we can see my var and then we can see right here that we can change this to a number so we can make this 10 negative 1 20. and then if i drag this into my world and let go we can see that we could get my variable or we can set my variable so if i get my variable and if i drag from here i'm literally just going to be dragging whatever number is currently contained within this variable and right now that number is 20. and we can see that so i'm going to right click and let's add in an event which is begin play so the event right here event begin play will only fire at the very beginning of our game so when we press play this event will fire and then let's print string so drag from here we're going to go print stream and then i'll drag this variable into my screen just like this and then it will convert that integer into a screen and then it will print whatever that integer is so then if i press play we can see on top left hand corner we get 20 and then it disappeared so i'm going to come down and drop down and let's make this duration 10 and let's change this into an orange so now instead of 20 let's make this zero press play we can see that we get zero so i'm exit out of this and instead of getting a variable we can also set a variable so we can change whatever number that is contained within this variable by dragging from my var letting go and let's go to set variable so i'm going to hook it up just like this and now we can set our variable something else that is in the default variable right now which is zero so instead of it being zero and not changing with the default value i'm going to come here and let's set it to 25. so now if i press play we can see that my variable now is 25 so we can override that initial default variable by setting it right there so that is the gist of what variables are and now it's time to create a counter for our target that's so we can see how many times we hit a target if i come back here now i'm going to go delete my variable right here let's go delete all my nodes actually and then right here let's delete this variable and let's create a new variable we honestly could have just renamed that variable because we're going to be storing an integer but that's fine and i'm going to call this current score just like that so now i want to set up some logic that's how whenever i where is our target oh there it is that's how whenever i fire into it then this current score will increase so i want to be a default value zero and then i'm going to drag from here let's go get current score and i'm going to derive from this and i'm going to press plus plus so plus plus we'll just add 1 and then it will set this variable and now let's add in a custom event so i'm going to right click and type in custom event so now we're creating our own event with its own name so let's call this add score like this and i'm going to hook it up just like that so whenever i actually i am very annoyed by that player's start location right now so i'm going to come into let's say our level and right there is our player start now i could move it or i can delete it because i want to show everyone where player start is if i come up to top left-hand corner we have create and down here we have player start i can just drag it in and now we have a new player start so if i press play we can see that i'm just by default facing the target which is exactly what i want right now because i was getting kind of annoying that i had to find that target so let's go back into gm underscore target game and now if i press play i wanna that's how whenever i fire my gun into that target we're gonna increase this current score by one so i need a way to call this event from our target right there so let's jump back into our target blueprint and then from here let's get our game mode so we can right click and just type in get game mode and that will get our current game mode now we just have one issue and that is if i drag from this pin right here and keep in mind the blue represents that this is an object this is a class if i drag from here then if i type in add score we don't get anything that's because this is just a generic game mode we need to tell unreal engine that i specifically want to get gm underscore target game and we can do that by dragging from it and going cast two so we're gonna do cast two gm underscore target game which will tell unreal that i want to treat this game mode as if it is target game so make sure that it is a target game and then if it is let me go hook it up right here and let's delete this preach stream then i'm going to drag from it and let's go add score just like that so now if i double click on that score we're going to jump to that custom event we just created so now whenever a projectile hits our target then we're gonna go and get our game mode make sure that our game mode is the correct game oh which is gm underscore target game and then if it is we're gonna tell that game mode to add a score and i will simply increment our current score count by one and let's actually give ourselves a way to see our score count as a debug so of course i'm going to drag from here and let's go print stream keep in mind at first we're going to be using a lot of print streams print screen is great for debugging but we're going to add in user interfaces in just a bit i'm going to hook it up right there and let's change this color from blue to something more noticeable like red so now if i press play then we can see that whenever i fire into this target we are slowly incrementing our account within our game mode it starts off at zero then it's going to increase to one two three four five six seven eight nine and ten so it is working exactly as we want it to but we'll notice that within our game mode we're not seeing any orange lines we're not seeing our executable fire anything and that's because right here i need to make sure that i select it as our current game mode right there just like that so now if i press play we can see everything's firing correctly so i'm gonna press escape to exit out of my game okay so just as a recap of what we're trying to do if i go to first person example map right now we just have one target i want to have multiple targets so i'm going to hold down alt and i can drag another target let's rotate it and then i'm going to go ahead and let's scale my target that's how this target is a little bit bigger make this a little bit farther maybe that target's a little bit too big right now so just decrease the size hold down let's grab this one let's hold down alt to make a duplicate of that one and let's rotate just like this so when i press play i want to hit one two three and then we win the game right now there's an issue and that is i can get to three by just shooting this three times so that will give us a score of three and that is a glitch that is no good we will get dirty cheaters within our game and we need to fix that so let's jump back into our bp underscore target so we want a way for our target blooper right here to check whether or not it was already hit and if our target blueprint was already hit then we're not going to add another score to our game mode and we could do that with a boolean variable so in targets let's create a new variable and this is going to automatically be a boolean by default remember we can change variables by clicking on it right there and selecting boolean so let's name this one right here and i'm going to name it with f2 or i can come up here and rename it let's call this is hit question mark so now i'm going to press compile and the default value should be false since of course by default our targets haven't been hit yet so we're going to go ahead and let's drag all of this out here just like this so i'm going to drag from is hits and let's get it right there and i'm going to drag from my boolean and of course if you ever done any programming ever i think you know what we're going to do we're going to get an if node but within unreal they're called branch so i'm going to type in branch and bring it in just like that so essentially if is hit is false then everything that will be connected to false will run and then if is hit is true then everything connected to true will run and we only want this logic to run if is hit is false so i'm going to go hook it up just like this and then hook up false like that but we have one issue and that is we need a way to tell unreal whether or not it was hit so i'm going to drag from is hits let's go set so then if our target has not already been hit yet then we're going to set is hit to true so that we know that we have already added the score associated with this target so now if i press play and if i hit this target we can see we went to one and let me go move it down here as we can see and now if i hit it again nothing is happening that branch is blocking it so again right here if i hit it actually i'm going to press shift f1 and we're going to come up here and now let's select the third target so bp underscore target 3. so now we are looking at this specific target because right there we were looking at only this first target we weren't looking at the second target so now that we're looking at the third target if i shoot my projectile and we can see that ran but now it is no longer running so we fix that glitch we stop the cheaters also there are some shortcuts because as you can expect the branch node right here is one of the nodes we're going to be using the most of so if you hold down b and left click you can add a branch quickly just like that so i'll select all of them and let's press the delete key and also if i hold down control and drag a variable then that will get it and then if i hold down alt and drag a variable then that will set it so we don't have to drag from here and select get or set we can hold down control or alt to get our variables that way and normally and this is just me right now but normally we don't really hook up anything to false if there is nothing hooked up to true so instead of the condition being his hit let's make the condition is not hit so i can drag from here select a not boolean and plug it up like this and since we're switching it right now we need to hold down control then i can drag from that the executable and simply just drag it into true just like that so to recap what this entire line of nodes is doing this event will be called whenever anything is hitting our target and then we want to make sure that that thing is a projectile and then we're going to double check and make sure our target hasn't already been hit so if our target has not been hit then we want to mark this target as already being hit and then we're gonna get our game mode and make sure that our game mode is gm underscore target game which contains our score and then we're gonna add our score which is located within our game mode let's jump back into our level and see what we have so far so let's press play and now you can see that if i hit a target we add one to the score in the top left-hand corner we can see that score two and three so our game is slowly forming but there is one glaring issue and that is it looks kind of ugly having to rely on the print stream node to keep track of our score so this is where user interfaces will come in handy so in unreal you can create a user interface using unreal's motion graphic ui designer which is a mouthful so people call it umg for short so with umg you could create user interfaces and that's exactly what we're going to be doing we're going to create a nice user interface to keep track of the player's current score how many targets the player has already destroyed and we could create a user interface using a widget blueprint so let's stop this game and then i'm going to press ctrl and space and let's create user interface so to create user interface you want to of course right click in any empty spot within my content drawer and let's go to user interface and then i'm going to select a widget blueprint so i'm going to call this one wbp underscore ui just like that so i'm press save and let's double click on this so this is the widget blueprint editor this is essentially where we're going to be making our user interfaces so the controls are the same right now you use the scroll wheel to zoom in and out and the right mouse button to pan around in the bottom here we have a timeline that's how we can animate our user interface we're not going to be animating anything right now so i think i can just exit out of all these windows so you can hover over a tab and use a middle mouse button to get rid of that tab just like that so that's how we have more real estate to work in also if you ever want to reset your windows just like within your first person example map you come up here to windows load layouts and load the default editor layouts in the top left hand corner we have the palettes so we can drag from here some more widgets so let's say i can add in my text and of course right here we have the details all the different properties of my text that i can edit so let's say i can go into font right here within the drop down and i can change the size from 24 to 32 just to make it bigger and let's nest this in the top left hand corner and let's call this my first widgets just like that and to the bottom here we have the hierarchy the hierarchy is essentially how you will nest different widgets within each other we won't be going into that much depth for this tutorial because we're making a pretty simple ui right now and all the way up here we have the graph so yes this is also a blueprint we have access to a lot of the same nodes you would see within your actor nodes and your game nodes so right here we can always go back to our designer by coming up to the left hand corner and clicking on designer just like that so let's go ahead and let's add this user interface to my game and to do so we need to come into gm underscore target game and i want to add this user interface as soon as my game starts so we're going to be calling it from the event begin play also keep in mind if you don't have event begin play you want to right click and just type in event beginplay just like that so i'm going to drag from here and we need to create a widget just like this and of course we need to select a new widget i just made which is wbp underscore ui and now if i press play nothing is happening because i need to tell unreal that i want to show this specific widget onto my viewport so we can drag from our return value and add to viewports just like this and now if i press play we can see that my user interface is in the top left hand corner right there so probably the thing that's really popping out at you right now is this flower thing right here and this is the anchor and i could explain what the anchor does or i could just show what it does so i'm gonna go keep this anchor up at the top left hand corner you can move your anchor around of course anywhere but you could come up to anchor and we could just select top left hand corner just like that so i'm going to call this one right here let's call this top left and then i'm going to press ctrl and w to duplicate this widget actually i want to make sure that i have this selected and then press ctrl w to duplicate it and then we're going to drag this new one all the way over here and let's change the anchor to the right hand side and then i'm going to call this one top right and then we're gonna go and duplicate this once again and let's drag this one into the middle here and within the anchor let's select the middle box just like this and let's call this one center so now if i press play we can see that we have our user interfaces we have one at the top left top right and the center and then as i move and scale different window sizes we can see that my top left is taken to the top left top right to top right and the center to the center so this is essentially how you would handle responsive design this is how you would handle different screen sizes for your game so that is simply what an anchor does it anchors that widget to that specific spot on your viewport that's how you never get let's say like a glitch where your user interface is off of the screen and your player can't see it so with that being said let us delete all of these and within the top left-hand corner this will be our score so let's actually increase the size from 32 let's try let's try maybe something a bit bigger let's go 48 and we'll leave it at that for now so let's go score and then so with a space just like that and this will be where the score is right now my text is looking kind of bland so let's add in a small drop shadow we can add in a drop shadow by coming down to shadow colors and within the drop down let's change this for a from 0 to 1 which is our opacity of our shadow and then for the shadow offset i can increase this just a bit to make my drop shadow a little bit more noticeable so if we press play right now there we go we see my score up there and that is still too small so i'm gonna keep this at 64. if i press play okay that looks better okay so first off we need a way to get our current score that's from our game mode and of course we're going to do this from the blueprint section of our widget so let's come to graph and let's get a reference to our game mode so let's delete everything right there for now and we don't have an event begin play for our widgets but what we do have is event construct which is essentially eventbeginplay this will fire whenever our widget is created which is right here on eventbeginplay so this is this is essentially like an event beginplay and then we're going to go ahead and let's get our game mode and then we're going to drag from here and we're going to cast it to gm underscore target game now let us store our game mode a reference to our game mode within a variable that's how i can get this game mode anywhere within my graph and we could create a variable we could come over here to variables and press the plus icon or we could do a shortcut where we right click right here and go to promote to variable so automatically set up for us and i'm going to call this variable gm ref so the way you would make a reference to a gamemode variable is that let's create a variable right here and within the drop down we would just type in gamemode and then we would get the reference to r actually it would be the name of our game mode so that'd be gm underscore target game and then we would get a reference to a game mode that way so i'm going to select this variable we made and let's just delete that because that was an example so now that we have our game gamemode let's create an event so we're going to create another custom event i'm going to right click and type in custom events and this will be update score so this event will be called whenever we want to update the score of our user interface and i'm going to drag from here and we want to set the text of this widget right here but there's just one problem and that is we can't get this widgets and that's because i need to select this text and make sure all the way up here that is variable is checked on and let's actually call this one score text so now if i come to graph we see that we have a reference actually we need to compile first and then save and within variables we have a reference to score text and i could grab that reference and i can get the score tasks so i'm gonna drag from here and then we're gonna go set text and you want set text text to select it and this is where we can manually set that text so instead of score it will be whatever is set right here so what do we want within score of course we want our score so let's get our reference to our game mode i'm gonna hold down control that's what we did to get and drag from here and let's get our score just like that so we're gonna grab our score that's located in our game mode and drag this into my text that's how we actually see it and we're gonna go drag and update score just like this so we need somewhere where we can call update score well of course when is our score updated our score is updated within the game mode so right here is where we're going to call update score and we already have a reference to our widget blueprint although we need to turn this reference into a variable so i'm going to right click right here and actually i'm going to hold down alt that's how we can break this variable and now we can right click and then select promote to variable and let's call this uiref so this is a reference to our user interface let's hook it up just like this and take the output of this user interface and put it into add to viewports so now that we have a variable that contains a user interface i can drag from this user interface and let's delete this print stream because of course this is what our user interface is replacing and i could drag from here and let's go update score so now this should work if i hook it up right there so whenever we're adding a score we're going to tell our user interface to update our score by grabbing that score from our game mode and setting the text right there we see that score is still score but as soon as i fire and hit a target see it's 1 two and three so now we wanna add the score text before the actual score counts so we can do this and this might be a little bit complicated if i delete this right there let's move everything back here and i'm going to drag from this and we're going to go to text and stream just like that so we're going to convert a stream into a text because streams have a nice little node that i want to use if i drag from here and that is the append just like this so i'm going to drag both of these down here and let's go score and this is very important i want to add in the space so score and space bar and then for the b that will just be current score right there and of course whenever you see a node like this this is converting our integer into a string so i'm just going gonna move everything just like this and now if i press play okay we can still see that score is like that but as soon as i press like that score one two and three okay so let's actually call update score one more time if i go to gm underscore target game come up here let's drag from this one and let's go update score that's how we're updating the score so that we're actually displaying a zero right there so i'm going to hook it up just like this so now if i press play you see that our score is zero one two and three and that is exactly what we want and everything seems to be working fine so far so here is a tip right now we can see that we have a line that's going through a node and this looks pretty ugly so one thing i do like to do is you can double click on any wires just like that and that will add in a reroute node so we could reroute it just like this and then i could double click again that's how our wire is going beneath that node and then ending up in update score so you can do some wild stuff you can double click and reroute nodes all over the place if you really want to so nodes are pretty customizable so i press ctrl z to undo those and while we're on the topic of customizing nodes another thing you could do is highlight a group of nodes and press the c key to add in a comment so we call this one something like that score and then we can highlight this and press the c key and then go begin play so that's a nice way of organizing your notes i'm pressing ctrl and z because we don't need those comments for now so don't forget to comment a content drawer and save all because that'd be very disappointing if we lost all that progress so if we play our game right now and see what's happening we can see we have a score of zero then one two and three but then nothing happens we want a win condition whenever we hit all the targets that are located within our world so that's where we're going to handle right now so i'm press the escape key and let's go into our game mode and we are in our game world right now and let's get the amount the number of targets that are within our world so within gm underscore target game let's go and actually let's move this all over here and i'm gonna hold down alt so so i can break the connection just temporarily and let's get all the targets that are within my world so i'm gonna right click and let's go get all actors of class and we're gonna select that so specifically the class i want is the class we created the blueprint so bp underscore target so i will hook it up like this and now you'll notice that we get this weird node that we haven't seen before that is a bunch of squares so this is actually an array an array is a collection a list of different variables but we're not trying to get the individual targets right now i'm just trying to see how many targets there are existing within my world so i'm going to drag from this and i'm just going to get the length of this array which will give me how many targets exist within the world and let's create a new variable so i could create a new integer variable or i can click on current score and press control and w to duplicate that so let's call this one max score and now i'm going to hold down alt drag from this let go and hook it up just like that so we're going to set my max score and let's put it in just like this and let's actually see our max score so let's jump back into wbp underscore ui and let's add in some more things i want to append by clicking on this plus icon right here to add another pin so this one will be space out of space let's click another pen and then for this one drag from gm underscore ref and we're gonna get our max score and drag it just like this into d okay so now if we press play we can see that i have zero out of three targets if i shoot one one out of three two out of three three out of three and it is at this point that i want the game to be over because we won the game there are no more targets from which we can increase our score so we're going to create a little condition a win condition for us within the game mode so within game mode let's jump to game mode and then after update score i want to see if my current score is equal to our max score so of course what we're going to use we're going to hold down b left click and let's add in a branch so i'm going to drag current score hold down control that's how i can get it let's get our max score and i'll drag out from current score and i'll press equal equal so this would just check whether or not these two are equal with each other and then if they are equal with each other hook it up here just like this then this means from our true we won the game now we need to create a new user interface that will tell us that we won the game because our player wouldn't know by now and we can double check that this is working if i drag it from here let's go print stream and let's go tell ourselves that we won and let's make the duration 100 that's how this doesn't go away until a while and of course change the text color from something to noticeable like red and now if you press play one two three we can see right there we won if hopefully it is noticeable but it appears that these nodes are working okay let's create the windscreen so we're going to go through the same process we did beforehand to create this widget up here we're gonna press control and space and within our blueprints let's right click let's go user interface at the very bottom and let's select widget blueprint right there so we're gonna name this one wpp underscore end screen just like this and press enter so now we can double click on it and we have our end screen so let's first tell the player that you just won the game so i'm going to drag in a text right in the middle and let's anchor this that's how it's always going to be in the middle of our game and i'm going to increase the size of my text and then i'm going to go ahead and let's center my text so i'll come down here and for justification i'll select the middle one that's why my text is always in the center of my box and then let's increase the size to 64. and for the text i'm going to say you [Music] win exclamation points and of course let's add a little drop shadow so within alpha let's change this to one and then let's increase that shadow offset just a bit so i'm going to compile let's save and i'm going to come back into my game mode and within here we can delete this temporary debugger and then i'm going to drag from this and let's go create widgets and of course we're going to do the end screen the widget that we just created and then we need to add to viewport because it will create the widget but it won't add that widget to the viewport so now if i press play let's go see what happens one two three and it says you win so that's nice so it appears that is working right now but we have one issue that is i can still run around shoot targets in my game i want to disable the input for a game and bring up the mouse and also add a button where we can restart and replay the game if we really want to so first off let's disable the input for our character once we do beat the game and that is i can drag from here and let's type in set input mode ui only just like that and then for the widgets of course we're going to use this widget right here so i'll drag from this and let's organize it so let's double click on a wire and let's double click on a wire right here and then we need a player controller i'll drag from here and go gets player controller you could think of the player controller as basically a reference to the player itself so now if we press play we can see that we won and we can no longer move our mouse we can no longer look around and move around so that's exactly what i want but i also want to show my mouse so i'll drag from the player controller and let's type in show mouse cursor and let's set it and of course this is a boolean so it's true or false let's set this to true and hook it up just like that so now we will see our mouse i'll double click on it and move it down just like this so now let's work on our buttons i'm going to compile save now let's go back into our widget and from button i'll drag out a button just like this and let's plop it right in the middle right there and then let's anchor it also into the center so let's go increase the button size and in order to give my button a word within it some text we need to drag a text and then we need to nest it into the button just like this so you want to drag a text over onto your button it will snap to your button and let go so now that we have the text in there let's call this text restart question mark and now we have a nice button if i press play we can see that i get my mouse automatically and we have this button right here that i can click on but of course nothing happens so i need to create some logic that will restart our game when we click on this button to create an event for a button all we have to do is click on our button scroll all the way down here and we see that we have event on clicked so i'm gonna press that right there actually let's rename our button so let's go back to designer button and i'm gonna call this one restart button just like this and let's compile so going into graph what do we want to do we want to restart and we want to reopen whatever level we are currently on and right now we are on the first person example map so i can drag from here and then type in open level by object reference and now within the drop down i can select a level and that is just my first person example map so this should work if i press play restart we see that we restart back in our level but we can't move around or look around because if you remember if we go back into our game mode we disabled that's right here so let's come all the way up to eventbeginplay and we can enable it that's how whenever we restart the level we can actually move our character around so let's go get player controller and then drag from here and go set input mode game only hook it up just like this and now this should work but before we test it let's make our windscreen just a little bit nicer so let's go back into our end screen and we're going to go into designer and i specifically want i believe it's called blur okay background blur so i'll just drag it onto my background and actually i'm going to drag this that's how it's the first one being rendered so drag it all the way up here just like that and then i'm going to put it up here and i'm just going to make it as big as possible and for anchor i want this to fill my entire screen so i'm going to choose this one right here so i'll just fill the entire screen so this should work and if i click on background blur let's increase that blur strength from 0 to 2 so if i can compile save let's play so one two three and restart one two three restart okay so everything is working great right now so let's do a recap of all the logic that's currently within our game mode so first off we see that we enable input for our character that's so we can actually control our character right here and then if i highlight all this actually if you hover over a node you see that we get this little text bubble if i click on this we can give ourselves a comment so what's happening right here is that i am getting amount of targets in world so right now there's just three so this has been giving out three but let's create a new target we're going to first press example map let's drag from here holding down alt i can rotate this also it's important to know that if you want to rotate this along the target then we could come up here and then instead of a globe icon we can make this a square so i can rotate this just like that so let's maybe make this a little bit thinner and larger just like this so now if i press play instead of three this should be four and exactly so we can see it's zero out of four now so we get the amount of targets in the world we set that into our max score and then we create our user interface right here and we save that user interface into a variable and of course we update our score that's how we're just not stuck with there not being any text within our user interface and this all happens as soon as our game is created and then whenever our ball hits the score we are calling add score from that target we're gonna add one to that score we're gonna update our user interface that's how it reflects it and then we're gonna check for the win condition so i'm gonna go hover over this and let's call this win condition let's call this win check we're going to check if we win and then if we did win when current score is equal to max score then we're going to create our end screen blueprint add it to viewport and set game mode to ui only that's how we can actually use our mouse cursor and show our mouse cursor so that we can press this button right here on whether or not we want to restart our level okay so our game is pretty good if we press play we see that we have a bunch of targets and if we hit all the targets we win the game but right now this game is really easy it's not that hard so let's make this a little bit harder and a little bit more fun by adding in a countdown timer so we're going to be racing against the countdown timer and we need to make sure that we hit all the targets before that countdown timer makes it to zero so that's exactly what we're going to be doing right now and we're going to make this timer right here within the game mode luckily for us unreal engine has a really helpful node and that is the timer node so i'm gonna go and let me select all of this and just drag it a little bit forward and then i'm gonna drag from here and let's go set timer by event i'll just press ok and then i can drag from this and then go to add custom event and let's call this decrement timer let's go decrement count so every time this timer runs it's going to call this event and then this event will decrease our count or timer by one so we need to make sure that looping is checked on and let's right now give this every half seconds so i just want to show what is happening so every half second this event will run and then we're gonna drag from here and we're gonna go print stream and then we're gonna say e event called and i'm going to make this red just like this so that's how we can actually see what's happening and keep in mind that this is connected to event beginplay so this timer should start to run immediately once the game starts and plays so if i press play and if i press shift and one we can see that it's getting called right there i'm going to move my window up here and then let's go set this that's how we can actually see what's happening with our game mode and we can watch what's happening so every half second this is running and we can see event is being called actually that's how we could more visibly see what's happening let's make this one because maybe a half second was a little bit too close to each other and now we can see every one second this fire so one two three four and five and this is what we're going to use to slowly count down our time that's how we can try to beat it within our game actually let's call this decrement time so i'm going to rename it right here let's call this decrement time and then let's create a new variable i'm going to click on the plus icon and of course we're going to make this variable an integer and let's rename this start time just like that and for now let's keep it at let's try 100 and then for the time actually let's make this 300 and then i want this to loop let's make this loop every 1 100 of a second so 0.01 so this should loop every 100 of a second and now let's start to decrement it so i'm going to get my start time let's bring it out and then we'll drag from it and go minus minus this would just subtract one every time this event runs which is every one 100 of a second so drag it like this and then let's print it out and now if i press play we can see that it's slowly start to count down it goes from 250 all the way to zero and then it's going to go into the negative range because we need to add a stop to it but we'll add that later because first let's go create a ui that's so we can actually see our time and not have to rely on the print stream right here so let's go back into our wbp ui right here and then let's create a new one so i'm just gonna duplicate this i'm gonna grab it and press ctrl and w to duplicate this and i'm going to drag a new one all the way over here and let's call this one time text or timer text and make sure is variable is checked on and then instead of score let's call this one time and of course we need to set the anchor because i want this to always be at the top right hand corner so anchors i'll click right there just like that okay so now if we press play we can see that i have my score right there and i have my time so let's go and start changing the time and it looks like it is locked to the top right hand corner that's exactly what it wants so i'm going to come into graph and i think instead of out of right there i think that's a little bit too big so i'm just going to add in a slash so that's how we can see that it is zero out of four but we're using a slash now just to save on some user interface space so let's create a new custom event i'm gonna right click and let's type in custom events and i'm gonna name this set countdown text now that we have our countdown right there we can see that we can grab our timer text don't forget make sure that our timer text is variable is checked on that so we can actually grab it from here we're going to get it and just like right here i'm gonna drag from it and go set text text just like that and then we're gonna do the same thing we did right there and that is we're gonna drag from here we're gonna go to text stream that's how we're gonna get an input of a screen so that we can get this node or this function if i drag from here and let's call this append so keep in mind terminology if you see a node and then it's a green like this this means it's a function so this is a function and these are functions so for a of course i want to type in time and colon and let's go space and then i want to get the time so i'm going to grab gm ref let's control nw to duplicate a node and drag from here and let's go get start time and drag it into it just like this so actually i think i'm just gonna rename this time because that could be a little bit confusing since we are dec remain this time it's not just our start time so let's come back in gm our score target game and let's call this one right here just time like that let's compile save go back into right here and it automatically renamed it also right here for us so let me drag everything and let's hook up the event just like this and actually let's call this update countdown text and within here let's drag from let's delete this and then we're going to drag from ui ref so let's get ue uei ref and then let's go update countdown text right there and hook it up like this so now if i press play we can see that our countdown is slowly going down and then it's going to go into the negative ranges so let's change that value right there we're going to first update our account and then we're going to check whether or not our time is equal equal to zero so then if it is equal to zero then we're going to drag from here and let's grab a condition actually an if statement so a branch and then if it's equal to zero and actually let's not do if it's equal to zero let's do if it is less than or equal to zero because just in case if there's a glitch or maybe a couple of frames drop and then our time is within a negative range it will still stop so we will still give ourselves a loss condition so i'm going to hover over my node and click on the comment and we'll type in loss check so this will tell us whether or not our player lost the game and then if we did lose this game then i'm just going to print stream real quickly right here and let's call this lost game and of course we're going to make it red that's how it's more noticeable and change the duration to 100 and we just have one issue and that is if i press play we're going down and then when we hit zero that counter is still happening so let's add a check right here that will stop the counter so i'm going to move all my nodes and then i'm going to create a new variable so let's create a new variable and let's call this variable is game over question mark and we're gonna make this a boolean so i'm gonna hold down his game over hold down alt let's set right here and then of course if our loss check so if this is true that means we lost the game so that means our game is over so check that right there and then we want to make sure that our game is not over and then we run all the logic that's right here so i'm gonna drag out his game over and we're gonna do a knot and of course we're going to do another conditional check and if statement so a branch like this so now this should stop at zero also let's compile save and make sure is game over the default value is set to false because our game shouldn't be over as soon as we start our game that'd be weird so press play now we can see we're going down down down and then we stop right at zero so this is great now let's work on the end screen right now that's how we can actually display to our player that we lost the game also here's a shortcut you notice that whenever i compile i press save if you want to save on an extra click you could click on these three dots right here and then in the drop down we could go to save on compile and then go to always that's how whenever we compile our blueprint will always save so that's a great tip and speaking of saving let's go control space and let's save everything so let's go into our end screen and it seems like our end screen is right here and then i'm going to make this text available because we want to change this text from you win to uloss so let's make this right here let's call this endmessage and i'm going to make this a variable so we have access to edit this and then within the graph i'm going to drag from and message let's go get it drag from here and we're going to go of course set text text once again select it right there and then i'm going to make this u lost exclamation point just like this let me go delete this one right here and this one right here and then i'm going to go hide this comment by clicking on the comment right there just like that so that will hide it and then i can set up just like this so there's one issue and that is if i press play even when we won we still get the lost screen so that is no good so let's add a condition to our entire widget our entire blueprint as a whole and we do that by coming to variables let's create a new variable and by default it is a boolean that's exactly what we want and then i'm going to call this lost game question mark so if lost game is true so drag from here we're going to go branch then we change that text from u1 to you lost so only when it's true so when we create this blueprint is going to check whether or not we did lose the game so how are we going to check if we did lost the game how are we going to change this variable well we could come to here and then i'm going to click on expose on spawn save and i believe you will get a message it says make sure instance edible is also checked on so i'll check right there let's go compile and now if we come back into gm underscore targets and if we scroll down here to our create wbp end screen widget keep in mind within this widget right here we create a new boolean and i made sure to check on exposure spawn and instance edible we notice that there is no difference this node and that's because we need to refresh this node so i'm going to go in the drop down select none and then select that same widget again which was the end screen and now we can see we get a new variable right here and we could check whether or not we lost the game or not so of course right here when we create the end screen widget this is connected to the win condition so we want to make sure that this is unchecked because we won the game now i'm going to highlight all of these nodes and press control and c so let's copy and paste these nodes at the very end here so we don't have to use this print screen i just delete that ctrl and v to bring those nodes in and we're going to hook it up just like this and as we can see this is connected to the lost condition so i'm going to make sure lost game is set to true so now if we compile let us play our game we're going down down down and we hit zero and we lost so now we can press restart and we can try the game again so this is really fun but there i believe that there is a glitch if i press restart let me go hit both of these okay we won the game but then we lost the game so we won it and then we lost it and that's because we need to add in a conditional check since what is happening right now is that we win the game so then it will create this widget and add this widget to the viewport which is the windscreen but then we are still counting down so then over here it will still create the lost screen once we hit zero so two of these widgets are being created and that doesn't make any sense so what we could do is that i'm going to highlight this let's control c and let's make sure that our game is over when we do win right here so when we win our game is set to over that's how right here our timer will stop since remember we added this check right here where if our game is not over then we continue on but if it is over it'll be false and all of this will not run we will no longer create that second widget right here so if i press play we win and our timer stops at 39 right there now you probably notice that we are repeating nodes right now pretty much this set of notes and this node right here are identical except for the lost game so we have that unchecked and then we have that checked right there and oftentimes we don't want to repeat nodes because number one that's wasteful and number two we don't have to we can combine all these nodes into one node using functions so let's go over functions right now i'll come over to functions and let's create a new one by clicking on the plus icon so i'm gonna call this one end game just like that so let's come back into my event graph and i'll highlight all of these ctrl c and paste it into endgame just like that with control v so now i can hook it up like this and then instead if i compile instead of having to use all these nodes we created a little bit of modular design right there i could delete it and replace it with this function which is a node in itself so you can create your own nodes and they're called functions so control c and then let's delete all these right here and ctrl v but you'll notice that these weren't the same i could always double click on my function to jump into it because this one right here should be checked on and off depending on the location so we need to expose this parameter of this node within our function and we could do that by dragging out from our function and letting go just like that so now that will create a new variable right there called lost game and if i compile save and actually let me double click right here just to organize my graph a little bit more and jump into event graph we can see that we exposed that part of our node group so within here of course did we lose game no because this is the wind check but right here did we lose game we did just like that so now if i press play we can see that our game is still working just fine so i lost right there and i didn't lose right there so that's functions at a very very quick glance we can make functions even more complicated depending on what we need so we just took a couple notes and we combined them all into one node that's also reusable so when you create a functions you just drag it always from here and use this end game node as many times as you would like so let me delete that and it's important to know that that's not the only way to create a function we also can just highlight whatever nodes you want to turn into a function right click and come down to collapse to function so that's another way of creating a function so now if we press play our game is pretty much done we see we have a counter and that counter counts down and if i'm unable to hit all the targets in time then i lost the game if i press restart then i win the game if i am able to hit it before that timer goes down to zero so you know this seems pretty fun but there's just one issue and that is when i hit a target nothing happens my ball just bounces off of it and that's pretty boring so let's add some effects some physic effects to our target to make it feel a lot better i can see that we don't have our target blueprint open right now so i'm going to jump back into my map select my target and press control on e to open it up just like this so after all of this functionality plays and then we add the score i want to enable physics so i'm going to drag from the targets let go and now we have our target static mesh so i'm going to drag from this and let's enable our physics by going set simulate physics and setting that to true so now if i press play and i hit a target we can see that that target is simulating physics so i want to test this out right now so i'm going to go back into my game mode and within the time instead of 300 let's make this 1000 that's how we have a little bit more time to see what the physics is doing so let's go into our target if we hit a target it just falls and that's about it it looks pretty boring so let's add some impulse to these targets that's how it feels like when i hit it with a ball then that ball will push the target back just a little bit and we could do that by adding in an impulse so i'm going to drag from target let's go add impulse just like this and then i'm going to plug it up like that hover over the wire and bring it down so right now this is asking for a 3 vector essentially you could think of a vector as a direction so we want to get the direction at which the ball is hitting our static mesh so we can get that direction of the ball hitting our mesh by dragging from hit and we're gonna go break so break hit result and then within the drop down i'm gonna click right here and i specifically want the normal so i'm gonna drag normal all the way up into here and now we are getting that direction also i can collapse this now just like that i'm going to go ahead and let's double click on this wire just to bring it down to make my screen just look a little bit nicer and there's one issue and that is this impulse isn't strong enough so if i press play then hit it we can see that there was barely any impulse whatsoever so let's increase the strength of this impulse first i'm going to check on velocity change and then i'm going to drag from this reroute node once again and press times and we're going to multiply this by a float so right now we're multiplying this by another vector to turn this into a float i want to right click on this input right here and then go to convert pin and click on float so i found a float of 1000 to be pretty good so now this will be 1000 times what the current impulse actually is so and i think i can get rid of that reroute note so i'll just reconnect it like this and delete that empty reroute node so now if i press play and let's hit this back we can see that those targets are flying backwards and the physics is looking a lot nicer it's a lot more satisfying to hit those targets so now i'm going to give these targets a nice spin so let's go to drag off a target once again specifically from the reroute node and let's go to add impulse actually we're going to add a torque so torque will add in a spin and let's go by radians because i found radians to look nicer and we don't have to use as large as numbers as we do with degrees so i'm going to move it up like this let's double click on the wire let's move it down so now let's play with our torque settings right here by default there won't be any torque being added so let's just add it to our x-axis and i'm going to make this one let's make it 10 000 and for acceleration change i'm going to turn this on that's how we actually do see a massive torque increase or a spin increase and then i'm going to come into our target game and i'm just going to go turn off hold down alt and break the connection right there that's why we don't have a counter counting down so we can actually see what is happening without having to worry about finding the timer right here and now let's press play and then we'll notice that when i press or when i shoot one we can see that we do have a spin we have a spin right there but then we have an issue and that is when we have a target that's facing this direction in our world we see that it spins backward like that and i believe we can see that again right here so this target right here is basically facing within the y-axis and if you remember we are rotating within the x-axis now we are rotating within the x-axis not of our local space not of our blueprint right here but we're rotating in the x-axis of our world space so if we have targets and let me move these right here if we have targets that are facing our y-axis then it will rotate within the world x-axis which will then just rotate it this way like that so that's why we are getting that weird spinning if we press play and we shoot right there you see that spins backward kind of like a top so we need to fix that and the way we're going to fix that is that i'm going to come through and instead of rotating or adding a rotation to the world x-axis instead we're going to go up here and let me click on my world icon we're going to be adding it to the local x-axis so specifically this one right here which will fly our targets back like this and that's exactly how i want it to be so let's go into our bp r square target and to get the pretty much the local x axis right here we want the forward vector what the forward vector will do is that it's a direction that's pointing in this way within our blueprint and you'll notice that if we rotate along that way that is exactly what we want so let's go into our event graph for our bp underscore targets and i'm going to grab my targets and let's drag from this and let's get forward vector and then i'm going to plug it up just like this and actually let me go do a times real quickly so let's multiply this right click again convert to pin we're gonna make it float and let's make this 2000 just like that because i found 2000 to be a good strength and then i'm going to organize everything and now if i press play and if i shoot these two right here we see that we aren't getting that issue of them rotating along the world x axis so here here and here everything seems to be working so i'm gonna come back into my game mode and within here let's hook it up just like that so that's how we get back our timer and right now we have a time of 1000 let's press play let's see how quick that is okay let's maybe decrease this just a little bit let's make this 500 anything another thing i'm going to do is let's come into first person example map and i really like this first person shooter template that epic games has provided because if we let's say if we shoot a target and then the ball bounces off of that target there's a chance that it can hit another target so that we can hit two targets with one shot which is really fun so i'm just going to increase the massively increase the size of this one right here so we can actually see what i mean by bouncing it off multiple times so now if i let's see let's see where our time is so right now to have 500 let's press play let's see if that's a good time okay that seems fine so now if i let's say bounce this off like that or let's try right here okay yeah just like that so with one shot we were able to get three targets at once and it looks like 500 is a good time it's not too hard but it's also challenging still so if i press restart we can see that we won right there so our game is almost done this is really fun but there is one glitch right now so let's play our game and let's move around just for a second and you notice that if we're moving and we end the game i let go of my keyboard and we are still moving and that's exactly what i don't want to happen so let's press escape and now we're going to debug so i know it has something to do with endgame so i can jump into the endgame function and then right here let's add in a new node so let's drag it off from this one right here and let's make this set ignore move input i'm going to select this one and then i'm going to check new move input so this will reset our inputs that's how we aren't running around and now if i press play we can see that if i'm walking around and we end the game our player just stops and that's exactly what we need and congratulations pat yourself on the back we just finished our first game in unreal engine and that is the very basics of how to program a game in unreal engine using blueprints so now that we have a nice game there is one more issue and that is the environment the world our game is located inside is very boring it's just the default first person map which is a bunch of cubes so now we're going to go over how we can take that game that we created and migrated over into a nice environment and make full use of all the new features of unreal engine including lumen so this part is going to be really fun but before you begin i highly recommend if you are a complete beginner to watch my other beginner tutorial that focuses more on level design and environment design so you should see that right here so there should be a link and you need to watch that tutorial and just get a basic idea of how to create environments and lighting in unreal engine before we can continue so with that being said let's jump into how we can take our game and put it into a nice unreal engine 5 environments so luckily for us epic games has provided a bunch of free environments a bunch of free projects that we can use and move our game into that's how we actually have a nice environment to play from so but unfortunately a lot of the environments are still in unreal engine 4. so we're going to go over how we can take it on religion 4 project and update it to unreal engine 5. so if i want to come into the learn tab i want to scroll all the way down here and i specifically want let's do this environment right here so if you want to follow along with this tutorial you can download this or you can download anything else right here you can even if your computer is strong enough use the unreal engine 5 demo right there so if you really want to you can use normal j5 demo but for now i'm just going to stick with if i scroll all the way down here this one right here so the sun temple so i'm going to click on it and i'm going to create a project you want to choose a location i'm just going to save this on my desktop and then press create once your project has been created you want to navigate to where your new project is and simply double click on it and within the project folder before we double click on the u project you want to right click go to switch unreal engine version and change it from 4.26 to 5. so now if we double click on it this will convert it from an unreal engine 4 project all the way into an unreal engine 5 project and there we go immediately like that so it is literally that easy to go from unreal engine 4 to unreal engine 5. now this is also super performant if i press ctrl h we can see that we're getting a consistent 120 frames per second and this is because we are not using any of the new unreal engine 5 features so this is why this entire level is so performant right now is because this is running as if it is within unreal engine four so this is one thing that is really getting people hung up on is that people think that just because of summer engine 5 you can't run really performant projects you can you just need to disable a lot of the extra unreal engine 5 features such as lumen which will then make your project as performant as it was within unreal engine 4. so now that we have a nice environment let's bring our game into this environment so of course we're going to be using the migration tool so i want to go and let's copy the location of the content folder of this new environment project and then within right here let's go into content drawer and let's right click on first person bp because i want to move this folder and then if i click on migrate it will find all the assets that will be referenced by the blueprints that make up my game that we just created and we're going to click on ok so now let's navigate to where our new content folder is let's press enter and we can see it's sun temple content and press select folder so now we have our game within our new world and if i press control and space we can see first person bp right there so i'm gonna press g to hide all these editor widgets that's what we only see what our environment looks like i'm also gonna press ctrl n h to hide that fps counter right there so now let's go up into our windows and let's bring in our world settings because remember in order to play the game that we just created and migrated over we need to come over to gamemode and we need to select the game of which we've been creating our game within as gm underscore target game so now that we have our game mode selected if i press play this should automatically work and as we can see it does work but it's zero to zero because we need to add in some targets so i'm gonna press escape and let's add in some targets into our world so i'm going to come here and let's go into blueprints targets and i can just drag it out and start placing targets all around my map so let's add a target right here and let's hold down alt let me add one right here kind of like move it up also i'm going to turn off snapping right now since snapping is on by default let's move this one just like this kind of facing down then we can move one all the way over here and move it just like this also move this into the corner and the lighting looks really bad right now because we are using the lighting from unreal engine 4. we will update this to unreal engine 5 in just a bit and then i think i will leave it like there for now so if i press play we can see that now i have three targets so i have to go and shoot and it looks like my left click isn't working right now so let's go see what the issue is if i jump into first person character we will see that the issue if i zoom in right here is this fire and i believe it's also actually no it's not jump so it's just the fire button right here and that's because this fire button was set within the project settings and since this is a new project by default this fire button won't work but that's okay we can replace this event with the left click because remember we're just left-clicking a fire so let's go event mouse left mouse button right here let's delete this actually i'm gonna hold on control let's drag the wire bring it into the left mouse button just like this and delete it right there so now if i compile and it looks like we also have another issue so input action vr we don't need this because we aren't using vr so i'll just delete that anyways so now if i compile looks like my blueprint is working so let's come back into some tempo let's press play and we can see we are now playing our game like i hit that try to hit okay well that didn't work because it looks like there was a collision volume that was blocking it and also when we pressed restart we were brought back to our original map we need to go where we programmed the restart button and that is within our end screen right here so let's go into our end screen let's go into graph and right here for open level instead of this one right here which is first person example let's pick on sun temple so now if we press play and if we wait for the counter to fall all the way down to zero and then we press restart we restart within the sun temple which is exactly what we want and we can see that when i try to hit this right here that this angel is blocking it so we can always fix this by let's open up this angel so i'm going to click on it right there and press control and e which will open up this statue and then if i scroll all the way down we can change let's go complex collision complexity we're going to set to use complex collision as simple so now if we press play i should be able to just fire through it just like that so now that's working this is working and we almost got it right there so let's restart okay looks like i won because one of my balls must have ricocheted and hit the target that was right behind me so that's pretty funny it's important to know that we can view our levels collision by coming up to lit scrolling down to player collision and selecting it just like that so if you ever notice that maybe you think a static mesh is blocking your projectiles you want to go ahead and double check that your collision is set up all right by going into the player collision mode so for example this statue here if we open it up again and then i'm going to reset to what it was originally our statue's collision looked like this so obviously it was going to try to block our projectiles so we change it that's we're just going to use the actual geometry of our statue by going to use complex collision as simple for our collision which fixed it we could go back to our normal view mode by coming up here and clicking on lit or we can use alt 4 which is the shortcut so now it is finally time to convert this level you see right here to an unreal engine 5 level and use unreal engine 5's new lighting system called lumen so it's very very important to know that won't be explained this entire process since this tutorial was for programming if you want to watch environment design i highly recommend you check out this video where i will actually go over what we are doing but within this video i'm going to go over how we can quickly use lumen within this world and stop using unreal engine 4's lighting so first off what i want to do is i want to get rid of our light maps in case you don't know what a light map is a light map is essentially the baked lighting the big shadows so if i move let's say this pillar then the lighting on our pillar disappears because we are only using big lighting right there so that's an issue with static lighting is that our objects are static so let's change everything to movable but first let's get rid of that light map so i'm going to come into world settings and within light mass settings within the drop down i'm going to click on force no pre-computer lighting click ok and then come up here to build and click on build all levels so now that lighting has completely disappeared and our level looks absolutely terrible and we also get a bunch of preview words on our shadow right now and that's indicating that our lights are set to static so we want to change all the lights you see in our world to movable so i'm going to come up into my world outliner and let's go within the drop down let's see where all my lights are i'm going to select this point light right here scroll all the way down hold down shift and select the entire row of point lights and then within my detail settings i'm going to change it from static to moveable just like that now keep in mind i go into depth what all these different lighting settings are doing the differences between static and movable lights within my five hour course so please make sure you check that out and then we're gonna drag all the way down let's see if we have some more lights and it looks like we have windows skylight spotlight right here so i'll select this one hold on shift select that one and then change this to let's change it to movable and then let me check if we have a directional light we do have a directional light i'm gonna select this one and set that to movable so now we get rid of that preview text but now my world looks like absolute my world looks absolutely terrible because we don't get any bounce lighting so this is the part where we're going to activate lumen because right now this project doesn't have lumen activated since we updated it from an unreal engine 4 project so to activate lumen we need to come to settings then project settings and within here let's scroll all the way down to rendering and then we're going to scroll down and we see that we have dynamic global illumination method is set to none in the drop down we're going to set that to lumen just like that and then it says lumen reflections are designed to work with looming global illumination and have been automatically enabled which is also what we want and we can see that and generate mesh distance field has also been enabled and that's what we want also i'm gonna go ahead and let's save everything and then we need to restart so i'm gonna close my project and open it back up so when we open up our project again we can see that you might see some shaders compiling right here in the bottom right hand corner and i'm gonna press update and press cancel so now we are using lumen within our project and we can tell we are because of our best control in h we can see that my frames have decreased just a bit also now if i move this pillar we no longer get that weird lighting because everything you see here is completely movable all the lights you see here are dynamic for example if i grab this light right here and then if i move it around you can see that lighting change dynamically so this was very hard to do in unreal engine 4 and now our lighting is up to date this is an unreal engine 5 map and we don't need all these reflection captures right here so i could come up and let's select all the reflection captures hold down shift and i'm just going to delete them like that so now that we have our world updated i'm also going to go into our post process volume so i think do we have a main or we have a couple main post process volumes i'll type in post process i think i'll delete these three right here and then go into the global post process and scroll down let's see if we have okay if an extent unbound it's checked on i want that to happen and please keep in mind within the other beginner tutorial we go over what post process volume is and then i'm going to go to exposure let's change this to manual and then let's bring this from let's say 12. okay let's keep this at 12 for now so now if i press play we can see that we have our level i try to hit that that and that so we win and then we restart and we just go around we can play our level we can shoot or balls at different locations and let's actually refine this right now so we have three targets in the main room then let's add hold down alt let's add some targets over here that's how it's going to lead the player from the main room right here into the outdoor room so we have a target at the back of the angel statue and then let's have another target all the way up here so this will probably be this will probably be the hardest target to get through so i can decrease it like this and move it right there actually let's make it pretty big so it kind of fills that hole so that's how when we hit it it's just going to fall into our world so it's going to look pretty funny and then we can add a couple more targets so let's add some targets out here that's how our player has to look outside the window and get some targets out here and of course we're going to have to raise the time significantly because that would be way too hard and then i'd say this is it let's see where our player start is our player start is right here let's actually start the player off at the very back here so we're going to start from this room you see and then we're going to come into it so let's move it like this and then let's add in one more target just right here that's how we have a first target for the player to shoot that's how they understand what is happening within this game let's move it back just a bit and now let's go into our game mode within the event graph actually within time we're going to change this from 500 to let's make this okay so 500 is too quick let's make this 5 000. so now if we press play let's see if we can beat the game we just created so we press play let me shoot that one two three four and we can see that we're out of eight right now just hit it right there we need those two and finally that one all the way up there and now we know it's a glitch because let's go into lit and player collision and we can see that that collision is completely wrong so i'm going to select this and then let's press control and e to open up that mesh and i'm going to do the exact same thing that we did on the statue and that is scroll down here and let's change it from project default to use complex collision as simple so then we're going to save it just like that and then i notice we have another issue and that is if i go into my user interface so wbp underscore ui i need to move this time just a bit like that so we have some more space so we can actually see what that time is because my time was kind of coming outside of the user interface just a bit so i'll compile save let's press alt and 4 to jump back into our main view and now if i press into let's go into our game mode let's change the time because 5000 was a little bit too much let's have this so let's make this two thousand five hundred and now let's play and let's see if we can beat our game so one two slowly we're starting to make it if i can actually hit that one and we beat the game so that is how you create your first game with an unreal engine 5. alrighty i hope you enjoyed this video and you got something out of it if you did make sure to subscribe for a lot more videos in the future i have a lot of cool videos planned for this youtube channel also if you want to get more in-depth in unreal engine learn some more of the fundamentals i have a master class you can check out link in the description below so with all that being said farewell
Info
Channel: Unreal Sensei
Views: 999,377
Rating: undefined out of 5
Keywords: ue5, unreal engine 5, beginner tutorial, game, lumen, nanite, unreal 5, first game, beginner, create your first game, 3d, unreal engine, gaming, indie
Id: ITCWa3oLNAQ
Channel Id: undefined
Length: 116min 59sec (7019 seconds)
Published: Wed Jun 30 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.