Make Your First Game in Godot in 2020

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's going on YouTube Tom here and in today's video I'm gonna be teaching you how to create your first video game in the gold engine so let's get started okay guys the first thing we're going to want to do is download the gold engine to do that open up your web browser and head on over to go engine org once we get there you'll see this splash screen here telling you all about the gold engine we've got various things here such as the learn tab which is really really useful for going through all of the documentation for gota but for now we're just gonna click on the download link once we get there you'll see that there's a few different options that you've got for downloading go doc I would suggest that you go with the standard version for now either 32-bit or 64-bit depending on what your operating system supports I'm gonna click on the 64-bit and it's a really really small download it's 22 and a half megabytes once you've got the zip file open it up and you can literally just drag the gold or executable file anywhere onto your machine go dots a portable engine so you don't have to install it you don't have to do anything like that you can literally open the zip file extract it somewhere and run it from whether you choose so I'm going to drop it onto my desktop and then you want to launch the gold engine the first thing you're going to see when you launch the gold engine is the project manager screen now it's going to ask you do you want to explore the official examples do you want to go to the asset library and download some tutorials we're not going to do that right now but just to be aware that there are tutorials out there there are templates available for 2d games and 3d games alike in the asset library for godot so I would HIGHLY advise you check those out once you get some time but for now we're just going to click cancel and we're going to create a new project so for this project here we're going to basically be recreating the essence of space invaders but I'm gonna do the whole thing but we're just gonna get to grips with Godot as an engine we're gonna get to grips with the user interface and we're going to start doing a few little bits of scripting just to make sure that we can understand how this works and you know we'll get to the point where we can create a space invaders game with a player bullets and ships and you can kill the enemies and that's all we're gonna get to you today and hopefully that should give you enough to go on to go on to create other projects in the future so to give this a project name we're just I call it space invaders we're going to choose a path I'm just going to create a new folder here I'm going to call it space invaders select the current folder and now you've got two options you can either choose opengl 3.0 or opengl 2.0 for your renderer now opengl 3.0 is the most up-to-date one and that Godot supports its four high fidelity games you know good graphics 3d games 2d games they're all supported but it's incompatible with some older hardware now it's probably the most used option in goda right now I would imagine 2.0 is useful for if you're trying to support all the mobile devices or potentially just all the hardware in general but for now opengl 3.0 is fine so we're going to choose that I'm going to press create and edit ok so this is the Godot engine if you've used unity before then you'll probably feel very very familiar with this on the left hand side we have a scene hierarchy so this is where all of the nodes within our scene will live if you're completely new to this and you haven't looked at unity before don't worry I'm going to explain what everything does and then we can go on from there so on the left hand side if I could say this is the scene view every single thing in your game scene will live within this view and it will be in a tree hierarchy view so for example if you had a player and he had a weapon and maybe he had some other things underneath him he will be structured out in such a way that the player will be the top level element and then all of the things such as his weapons will be nested inside of him so we've got the scene view on the left hand side then we have our file browser on the left bottom this is everything within our project folder so we can have sprites artwork textures materials seams basically everything that makes up your game will live inside this folder here in the middle we have our scene view so this is our actual 3d or 2d representation of our actual game and the scene that we're working on on the right hand side we have something called the inspector now the inspector displays properties and allows you to modify those properties of the game object that you currently have selected and we'll see in use later on up at the top here we have different tabs now we can switch between 2d view 3d view house script in text editor and the asset library itself so because we're making a 2-d game we're making space invaders we're going to switch to the 2d view and on the left hand side it's asking us to create a root node so again because we're making a 2-d game we're gonna click on 2d scene now what you'll notice is on the left hand side here now that has changed to note 2d so this is our root node in our scene again like I say everything is in a hierarchical format so everything has a root and for a 2-d game we have this 2d node which which everything underneath that will be part of our scene view on the right hand side you'll also notice that the inspector window has changed we've now got no 2d 2d listed here and we can see all of its properties such as its position its rotation and its scale what I like to do is I like to right-click on this node up here and I just like to its personal opinion don't have to do this but I like to rename it I like to rename it to world just so that it's clear that this is the root node for our entire world ok so now that we're set up with god up we've got our engine open we're ready to work in a 2d way we're gonna start importing some resources now I've created a few little pics a lot of sprites for this game I'll list the download link in the description below so you can go and pick those up as well but feel free to use your own if you've got some what I'm gonna do is I'm going to open up my file browser I'm gonna head on over to my pictures folder which is where I've stored them and you'll see here I've got bullet enemy and player I'm going to drag and highlight those drop them into my res folder and now you can see that they're listed here we've got bullet PNG enemy and player PNG the first thing I'm going to do is I'm going to right click on my world node and what we're going to do is we're going to create the player so we're going to add a child node to this world now we have lots of options here in this create new node screen it feel free to go around and have a look and see what you've got available there's absolutely tons of stuff in here we won't be using most of this stuff in today's tutorial but we might touch on them later on the first thing we're going to want to create is a kinematic body 2d now a kinematic body 2d is a physics object object and basically a kinematic body is a physics object that you can control via code it doesn't interact with anything in the scene of its own free will so it's not a physics object that will react to gravity and bounce into other things just on its own you would have to program all of that yourself so you know my bodies are great because they have collision detection they can move and they can have all of the physics interactions that other physics objects have but you have complete control over them via the code that you write so we're going to create our player objects as a kinematic kinematic body 2d we're just going to rename this by right clicking and pressing rename you can also click on the elements and press Enter and that will do the same thing and we're going to call it player now you'll notice it on the right hand side we've got this little warning triangle and it says this node has no shape so it can't collide or interact with other objects consider adding a collision shape to D so we're gonna do that as well so we're going to right click we're going to add a child and we're going to add a collision shape to D now you might be thinking well we still don't have the player actual image there so yep you're right we're going to add another child mode and this time it's a sprite so with the sprite selected we're going to come down and find our player PNG we're going to click and drag that over to the right hand side in the inspector and where it says texture empty we're just going to drop it in there and you'll see in our scene view that that's reflected and our player sprite is now visible in the scene you'll also notice that on the left hand side the collision shape TD also has a warning triangle now and it says here if we click on it a shape must be provided to the collision shape T DS for it to function so we're going to click on that and over in the right hand side in the inspector where it says shape and it currently says empty we're just going to click the drop down and we're going to choose new rectangle shape to D now if you look over in the scene view here you might have noticed this tiny little square is appeared where the collision shape TD is placed we're going to zoom in we're going to use our middle mouse button to pan around the scene and you can see these two little handles here we've got one for the y-axis and one for the x-axis what I'm going to do is and we're just going to click and drag until that covers the entire sprite now what you could do if you're wanting to be a bit more precise about your collision box you could drag this down about halfway you could stretch it again so that it fits a little bit more snugly around the player element itself you don't have to do that of course it's completely up to you and but that's just to show you that you can do that and this is basically our player object now we have our player which is a root node kinematic body 2d we have a collision shape 2d to define the bounding rectangle of our player and we have the sprite which defines the actual image that the player is going to represent okay so we're gonna do the same thing this time we're gonna do it for the enemy and for the bullet so I'm just going to click on the player node here I'm gonna press W on my controller or you can click the icon at the top left here for move mode and we're just going to drag this out of the way for now again we're going to collapse the player I'm going to right click on the world node and we're going to add a new child node and we're going to do exactly the same as we did for the player node so we're going to add a kinematic body to D we're gonna rename it by right clicking and pressing rename and we're gonna call it enemy we're gonna right click the enemy add a child node it's gonna be a sprite again right click the enemy add a child node we're gonna add a collision shape to D for the sprite we're going to drag in enemy PNG over to the texture in the right hand side inspector for the collision shape to D over on the right hand side where it says shape we're going to choose new rectangle shape to D and then I'm going to zoom in and we're just going to drag these handles again the Y handle and the X handle just to make sure that the collision rectangle is covering the entirety of our sprite we're going to collapse the enemy and we're going to right click the world node add child and we're going to do the same thing again one last time for the bullet so we're going to rename this to bullet we're gonna right-click add a child node add a sprite right click the bullet again add a child node at a collision shape to D over in the right hand side we're going to choose shape new rectangle shape click the sprite drag the bullet dot PNG over to that and the collision shape again we're just going to drag this down a little bit just so that it covers the actual bullet itself and there we go we're gonna collapse the bullet okay so we now have a bullet we have an enemy and we have a player great so the next thing we're going to want to do is make the player be able to move left and right depending on if the user is pressing the left or the right key on the keyboard to do that we're going to zoom out and the first thing we're going to want to do is we're going to move the player down to the bottom of the screen now the screens bounds are defined by this rectangle here so we're going to place the player roughly about here on the screen which is kind of about the middle one before we do any of that there's one thing that I need to mention about good on the way it works if you're familiar with unity unity as a concept of prefabs our prefabs are objects that you can create that can be reused in your scenes so it's really handy if you're creating something that you want to duplicate multiple times throughout your scene and then if you want to make a change to that object you don't have to go and do it 10 15 20 times you just want to modify one thing and that change gets replicated across all of the instances now go to house something similar to prefabs but in Gowda everything is known as a scene so your game world is a scene your menu might be a scene your player might be a scene and everything like that so everything is a scene within the Godot universe so to do that we're going to convert our players and enemies and bullets into a scene it's quite easy you right-click on the player and you press save branch as scene now just to keep everything nice and tidy I'm gonna create a folder here and I'm gonna call it player and I'm gonna save this as the player scene so player TSC n we're going to save that you'll notice now in the scene view on the left hand side we've got this little movie icon here now that represents that this node in the scene hierarchy is a scene itself we can click on that node and we will then be presented with the actual players in itself you'll notice we've got a new tab at the top now and we're just looking at the player scene so all of the enemies and the bullets have disappeared and now we're just looking at the player scene we can close this tab and we're back to the main scene we're gonna do the same thing with enemy and bullet so right-click on enemy save branch's scene we're gonna go up a folder by pressing this little arrow at the top left here create a folder call it enemy save the enemy scene again for the bullet right click save as branch say branch's scene go up create a folder call it bullet save the bullet scene and there we go each one of our entities now is its own scene okay so we're ready to start script in our player to do this we're going to click into the player scene we're going to right click the root player node and we're gonna press attach script you'll get this little window pop up that says attach node script it'll allow you to choose a language for the script now I'm gonna recommend that we stick with Gd script here it's a scripting language specifically made for Godot that is sort of based on Python and has some fantastic little perks that allow you to make games really really simply in God up there are other options of course you can program a native script visual script you can do c-sharp and there's various other bindings for Godot that you can use but I would highly recommend that you stick to GD script if you're new you can see that it inherits from a kinematic body 2d now the reason it does that is because the root player node that we created was a kinematic body 2d and with the script inheriting from that it means we're going to get access to a whole host of cool functions such as move and collide moving slide and various things relate into physics we're going to come down to the bottom we can leave the rest of it as default and we're just going to press create and now you'll see that the scene view has changed to a scripting environment what's great about Godot is that you don't need to use any external coding tools like Visual Studio or Visual Studio code to actually create the game logic within your game Gowda has its own development environment built right into the application so you never have to leave this you can write all of your code test it debug it it's got syntax highlighting code completion and it has built-in documentation right inside the editor itself which is fantastic you'll see here at the top of the script we're extending kinematic body 2d again like I said before that just means that we now have access to a bunch of functions that are going to allow us to manipulate this object with physics and a bunch of other things like that below the extension it's telling us that we can declare some member variables here so we are going to Claire one here we're going to say var speed equals 100 now I'll show you what this does in a moment but for now we're just going to move on to the next piece it says this func underscore ready is called when the node enters the scene tree for the first time so when our node gets instantiated this function is going to get called and we can do some setup work in here for now we're not really going to do anything other than the fact that we are going to replace this line here where it says replaced with the function body we're going to replace it with set underscore physics underscore process and you'll see that we're getting some code completion so we can press ENTER to do that straight away and you see that this takes a boolean a boolean is a true or false value now I will be going into some of programming basics and Gd script basics in another video but for now we're just going to type true we're going to say that yes we want to set the physics process to enabled and underneath that you've got another function here called func process and this says it's called every frame and that Delta is the elapsed time since the previous frame so we get access to this variable here called Delta which tells us how much time is elapsed between the previous frame and the current frame and that's really useful for being able to make frame rate independent things like movement speed things that you know you really don't want to depend on whether or not your game is running at 53 a second or 60 frames per second you want the movement speed to be consistent and Delta comes in handy there we're actually going to delete this for now and because we use the physics process we're going to do something similar and that we're going to say func space underscore physics process and again we've got code completion there we can just press Enter and there we go so we've got the physics process function here the next thing we want to do is we want to respond to keyboard input so if the user presses left or right on the keyboard we want our player to move left and right in the game now to do this we type if input with a capital i dot is underscore action pressed we open brackets and we get some code completion here now there are some built-in actions in Godot they all start with you i underscore now we can add our own but for now you i underscore left and you i underscore right are going to be exactly what we need they're representing the left and the right arrow on our keyboard so we're going to choose UI arrow sorry u i underscore left closed brackets and all all statements like this have to end with a colon just like the func statement above it we'll press ENTER and this is where we're going to start using some of the functionality of that kinematic body TD now I mentioned before that you can get access to the documentation directly within Godot and I'll just show you how we do that just before we move on to use this function if we highlight kinematic body TD here we can right click on it and press lookup symbol and this will open up the documentation for this kinematic body to D directly in the editor this is fantastic and you will be using this a lot to go and figure out what properties and methods that you have access to on various objects within goda if we come down into the methods section we can see that there is a method here called move and collide moving collide returns a kinematic collision to D which we can dive into a little later on and it accepts a relative vector so what we want to do how much we want to move this object by when we call that function so we're going to go back to the player D D script here and we're going to make use of that function so we're going to say move underscore and collide and it wants a vector to for how much we want to move on the X and y axis to do that we simply type vector two with a capital v open brackets and now you can see here the code completion is telling us that we need to pass an x value and a Y value xB in the horizontal plane and YB in the vertical plane so when we press left on the keyboard we want our character to go left on the screen that's negative in the x-axis so what we're going to do is we're going to say negative speed which is the variable we created up here to define how fast our player is going to move multiplied by Delta now what that's saying is we want this character when we press the left key to move 100 units left per second so multiplying by Delta basically means we want to do this per second and then for the y-axis we don't want to do any to any changes there if the users pressing left on the keyboard we just want it to move on the horizontal axis not on the vertical so we can pass a zero there close that and then close the move and collide function on the next line we want to say LF which is if that wasn't true so if the input UI left is not being pressed we can say input dot is action pressed you i underscore right so if the left gear isn't be impressed is the right key be impressed well if it is we want to say move and collide this time we're going to pass a vector 2 and we're going to say positive speed because we want to move right on the x axis which is a positive number multiplied by delta again we don't want to move anywhere on the y axis so we're going to say 0 close both of those brackets and we're done so if we press save that what we're going to do now is we're going to come into our main scene by going to the 2d view at the top and what we're going to do is you can see it says unsaved here so we're just going to make sure that we save this scene by going to scene save scene and we're going to call it main all right so now we should be able to you can see on the left hand side we've got the script attached so we should be able to press the play button at the top right here it's going to ask us to define a scene to load which we haven't done yet so we'll press select choose our main scene and press open now the game is going to load and if we press left on our keyboard the play is going to move left and if we press right it's going to move right brilliant okay the next thing we're going to do is we're going to make it possible for the player to shoot a bullet whenever we press the spacebar on our keyboard so the few things we have to do here the first of which is we have to define an option in our input map to map the spacebar to a particular action within the code to do that we're going to come up to the project settings up here project project settings we're going to click on input map and you'll see here here are all the UI underscore actions that we saw in the drop down earlier on we're going to enter in the text box here we're going to add a new one we're just going to say fire press the Add button and it will get added to the bottom here press the plus icon on the right hand side and you can assign a key a mouse button enjoy joystick button we're just going to assign a key it's going to ask you what key you want to do you press the spacebar and then click OK and then we can close that and now we have a new action defined that we can respond to in our input controls called fire we're going to come back into our player script and in here we're going to add a new line into the ready method and this is going to be set underscore process is true so if you remember when we first opened this script there was a commented out piece of code that said the process method runs every single frame now we change that to physics process because ideally you should be interacting with physics or whenever you're moving and colliding and things like that you should be interacting with those bits of code in the physics process function but for things like firing that don't necessarily relate to the physics and moving and collision and things like that it's quite alright to have that in the standard process function so we're going to enable the standard process function for this entity we're going to create it func underscore process and you can see that it's called complete in for me which is great and now what we're going to do is we're going to say if input dot is action just pressed so did we just press this button not is it continuously being pressed like the left and right keys but did we just press and release this key and now you can see our new fire action has come up in the drop-down list there we're going to choose that one so if we have just pressed the fire key we want to basically spawn bullet so just going to put a comment in their comments are preceded by a hash symbol we're going to spawn a bullet if we press the fire key so how do we do this we're gonna save the script and we're going to come back into our main world scene now you can see here that we have this bullet and what we did with the bullet is we saved it to a scene and you can see as I hover over bullet here it says instance is called res colon slash slash bullet slash bullet T SC n now we can actually delete this bullet from the scene entirely by clicking on it and pressing delete we can choose okay we don't need it in our scene because we're going to create instances this of this programmatically so how do we do that we go back into the player script and at the very top here we're gonna create a new variable we're going to call it var bullets equals and there's a function called preload what preload does is it allows us to specify a resource path to a scene or to a image or anything else that we have in our file structure but for this example we're going to use a scene so you can see there we've got bullets dot t SC n we can hit enter there and now we have access to that file to that scene to that object within our game what we're going to do to be able to spawn this bullet is we're gonna say var bullets instance so we're going to create a brand new instance of a bullet and we're going to say that that equals bullet dot instance that's going to create a brand new instance of the bullet object for us now we don't want the bullet instance to just appear at the top left of the screen we want it to appear exactly where our player is to do that we're going to say bullet instance dot position equals mm excuse me now we could give it the exact position of our player by just a sign in position but we might get some collisions between the actual player object and our bullet now we could avoid that in various different ways but what I like to do here is assign it a new vector2 for the x-axis we want to say our position X and for the y-axis we'd like to say our position Y minus 20 so that's just going to give a little bit of top pad in there so the bullets going to appear just above where the turret is on our player sprite the next thing we're going to do is we're going to want to add this to the actual game scene to do this we can do something called get underscore tree now what that does is it gets the actual tree structure here within our scene so it gets the hierarchy now that's no good on its own what we need to do then is get the root node which is this world node to do that we can say dot get underscore root which is going to get us this world node and then we want to add our new bullet instance to that root node we want to place it in the scene to do that we say dot add underscore child open brackets and pass in the bullet instance okay we're going to save that and now what we're going to do is we're going to come to just one thing to note there actually that line is highlighted it's same as an error we forgot our semicolon at the end of the if statement we're going to save that everything looks fine there we're going to come back to the 2d scene view we're gonna press the play button and now we should be able to move our player character left and right and if we press the space button you'll see that we get a new bullet appear just above where the turret is we can move them across press the space button again and we're gonna keep getting bullets appear every time we press space that's great but the bullets aren't moving so the next thing we need to do is write a script for the bullets to make them move we're going to close this okay so what we want to do is you want to come down into our bullet folder in the file system here we're going to double click on our bullets scene this is going to open it up in a new tab and you can see here that we have our bullet sitting in the structure there we're going to right click on it we're going to attach a script just like we did for the player we're going to leave everything as default we want it to inherit from Kenneth body 2d and we want to use GD script we're gonna press create and here we're going to choose a speed for the bullet itself so far speed equals and we're going to want this to move a bit faster than the player so let's say 500 again we're going to want to make use of the physics process so we're going to say set underscore physics process to true and we're going to create the physics process function underscore physics process and here what we want to do is we basically want to make the bullet move upwards all the time at the consistent speed of 500 that we set so to do that is fairly simple we say move and collide because we want the bullet to be able to detect collisions as well we want to see when it hits the enemy and we're gonna give it a vector - we don't want to move anywhere on the x axis so we're going to say zero for the X and for the Y y is negative to go up and positive to go down so we want to say negative speed multiplied by that Delta again save that script and now if we launch the game and we hit the spacebar we're gonna get a bullet that fires straight up the screen and continues going great the other thing to test is if we move along all the way over here to the left hand side where we have our enemy and we press the spacebar you can see that the button starts the bullets or you start stacking up there colliding with the enemy and they're colliding with themselves which is exactly what we want but what we want is for it to hit the enemy and actually to destroy the enemy so that's what we're going to do next okay so we can close our bullet and what we're going to do now is we're going to come into the bullet GD script and if we go to the documentation for move and collide by going to the kinematic body 2d again I mentioned before that the move and collide function returns something called a kinematic collision 2d now if we click into this we can see that we can actually get access to the object that we collided with via the collider property if we scroll down you can see that the collider property we can get the collider there by calling the get underscore collider function and that will get as the colliding body that we actually collided with so we're going to do that we're going to say bullet Gd we're gonna actually say var collided object equals move and collide and now what we want to do is we want to check if we actually did collide with an object to do that is quite simple we say if collided object then oh we forgot a call on there so if collided object so basically if we have a collided object then we're going to call collided object dot Q underscore free now what that's going to do is it's going to delete the object from the tree it's going to it's going to request that this object gets deleted what we also want to do is we want to delete the bullet itself so if we've collided with an object not only do we want to delete the object that we've collided with but we want to delete the bullet as well so we're just going to call Q underscore free on our self we're gonna save this we're gonna press play and now we're gonna move over you can see that if I press space we're shooting bullets again if I move over to where the alien is and press space and we get a crash okay so what we can see here is that actually when I looked at the documentation before and we looked at the get Collider object it's the get Collider method you'll notice that I haven't actually used it this wasn't an intentional error but actually is really useful for you to see how errors actually occur and how you debug them so if we come back to the script you can see here at the bottom we have this debugger and we also have some errors here as well but if we look at the debugger it says invalid call nonexistent function Q underscore free in base kinematic collision to D now that's true if we go to the kinematic body and then we go to college kinematic collision to D there is no Q free function but if we go back to bullet and we changed this line here to collided object sorry we do collided object dots get collider.com free save that I'm just gonna quickly double check that so kinematic collision 2d collider get underscore Collider and now we try rerun in this script we move over we could do with increasing the player speed as well so I'll show you how to do that shortly with fire and the bullet and the alien ship now get destroyed which is great okay so now the other thing we need to do is make the enemy move so it's all well and good having this enemy there that just gets destroyed but obviously we want to add some artificial intelligence to this enemy we want to make him fire back and all that sort of stuff and make it you know a really hot boss we're not gonna do all of that in today's tutorial but we are gonna make the enemy move right across the screen just to show you how we would get some sort of enemy movement in there obviously you could then take that you could extrapolate that into movement on the left hand side you can bounce off the wall and move off the right you could have a staged approach where he moves like right right right down left left left down like he does in space invaders but for now we're just gonna make the enemy move right across the screen and to do that we're gonna click on the enemy click into his scene view here right click attach a script we're gonna press create we're gonna give him a speed just like we've done for both of the other scripts so far so if speed equals let's say 200 we're going to set the physics process to true you should be familiar with most of this by now and we're going to create the function func underscore physics process we're going to say move and collide we're going to pass it a vector two and we want him to move speed multiplied by Delta on the x-axis zero on the Y and we're going to save that and now we've refreshed play we should see that the enemy starts moving along the screen and what we can do here is we can go back into our main scene into the 2d view we can press control D on the enemy it's a duplicate him moving along control D and we're just going to create a few of these enemies in varying locations that should be enough and if we press play we should now be able to destroy these enemies one thing I am going to do is I'm just going to show you how easy it is to modify every single instance of an enemy or a scene in general just by making a change in one place so if all of these enemies would have been completely separate objects with completely separate scripts if we want to change the speed of them for example we would have had to go into each individual one and make modification however many times there are for however many enemies there are but given that we've made them seems and we also have assigned the same script to them we can click on any of the script icons here we can change the speed to 100 save that from the game and now every single enemy will be moving significantly slower the other thing that I said that we could do is we could increase the speed of the player now sometimes it's useful not to have these values hard-coded and it's actually useful to have these values modifiable by you know whoever is creating the level for example you might want to level where the player can move a little bit faster or maybe a level where he can move a little bit slower to do that is really simple we click on the player dot GD script and in front of the VAR speed all we need do is type export and a space now if we save that and come back into our scene you click on the player object you can see on the right-hand side now we have this script variables and you can see we have speed a hundred so now we can change that say to 400 press the play button and now our player moves significantly faster than he did before it should give us a bit more of an advantage when it comes to playing the game and that's it that's your very first game in Godot we've made a very simple version of space invaders with a player an enemy the player can shoot bullets and we can destroy aliens if we wanted to make further modifications of this we could create new scenes such as a game over screen and a success screen we could make more levels we could create enemies with more complicated AI and maybe I'll do a follow-up tutorial in the future with all of that in if you really really want to see that then please leave a comment down below let me know what you'd like to see let me know what you'd like me to cover next I will be doing some basic programming tutorials some basic GD script tutorials as separate videos so combine those with the tutorials that I make for actually creating elements of games and functionalities and you should be well on your way to creating some amazing content in Godot so there you have it you've created your very first game in Godot congratulations we create a space invaders clone for the player that can shoot bullets and enemy ships that can be destroyed you could take this on to create game over screens more complicated AI perhaps different weapons that the player could fire a magnitude of different things your imagination is the limit so if you enjoyed this video please click that subscribe button down below and hit the notification bell to hear when I release new content on the channel if you really enjoyed this video and you'd like to see more please leave a comment down below let me know what you would like to see thank you so much for watching and I'll see you guys in the next video what's going on YouTube well I really hope you enjoyed this tutorial we can cover future you'll be notified when I release new tutorials and when to do much more things and finds new
Info
Channel: Code with Tom
Views: 34,000
Rating: 4.9327216 out of 5
Keywords: Godot, Make Your First Game In Godot, Learn Godot, Make a game in godot, how to learn godot, godot vs unity, godot or unity, make your first game in godot in 2019, learn godot 2019, godot 2019, godot vs unity 2019, learn Godot 2020, Godot 2020, make your first game in Godot 2020, Godot vs unity 2020
Id: nQfOhc6jumE
Channel Id: undefined
Length: 39min 37sec (2377 seconds)
Published: Fri Jul 26 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.