Making The Identical Game On The Oldest VS Latest Versions Of Godot

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so after making games in G for years now I was getting curious about Where it All Began I mean the earliest version of good that I used was gdo 3 which was definitely great for its time but what if we go further back I'm talking about the first releases of the gdo engine how was gdau in its early days now the first public release of gdau was in 2014 gdau version 1. now I did try to get this version but I couldn't find the compiled files in the gdo archive I even tried to compile it from Source but that didn't work out either so then I decided to use the 1.1 version which was released few months later after the first release so I did manage to download this version but I didn't quite want to make a game in it yet and that's because wouldn't it be cool to see how far a game engine has come by making a game in its latest version versus its oldest and so I started making a game in G's latest version first which is version 4.2.2 at the time of recording this video and then we'll try to make that exact same game in GTO 1.1 and so since we're going to use the same assets for both games I started making the models in blender first one for the enemy one for the player guns platforms and ground and walls since G 1.1 doesn't come with any primitive shapes as long as I'm concerned and with the game models being done I made a simple game level with the player and the enemy with some high level design techniques and before you knew it I was writing my first script now remember we're going to make this exact same game in go 1.1 so I'm not going to use any crazy stuff so in the player script we're moving the player with the character body 3D doing the same thing in the enemy script except it just moves by its own and now we basically have a game on our hands just need to add some gun logic and animations so this is basically what we have to remake in GTO 1.1 basically we need to shoot these guys until they're pushed outside the level in which case they'll despawn with a cool animation and you'll get a score which you can use to unlock new guns trust me you want to try the new guns they're pretty cool okay but enough with that let's make this whole thing again in G 1.1 for some reason well mainly because I want to know how it was to make a game in an open source game engine 10 years ago and just so you know I'm going through this version of G completely blind so I don't even know if we can make this exact same game in it or not but I'll try my best and there we have it g version 1.1 I'm going to be completely honest it does look way more different than I thought so let's see what do we have here I can see that we are in the 3D view by default we can also switch to 2D script and help okay so we do have a similar thing in good 4 is just integrated in the scripts tab so I can identify most most of these tabs but what is resources guess we'll find out later okay so let's add some notes I'm going to add a spatial node which I'm guessing is going to be the node 3D and let's add our 3D models okay I guess not like that so I think you need to manually import your 3D models which is interesting and now we have our 3D models in our file system but it didn't assign the materials automatically for some reason and I couldn't use the materials exported from the blender so yeah not sure what I'm doing wrong here so instead I exported all of my models in this format which I've never used before and this time the material got exported with the mesh but I had to change my textures to pngs from jpix because for some reason my jpix weren't getting imported and getto and so after that I basically added them one by one in the scene to make a simple level and so after adding the Collision shapes it was time to start writing my first script in G 1.1 okay so this does look pretty familiar actually so just to test this out let's call the move and slight method and let's run this scene no main scenes ever been defined I see so let's set our current scene as the main scene and try it again nope that doesn't look like it's doing much so after staring at the screen for 10 minutes straight I realized that the process method won't run unless you set it in the ready method and there's no such thing as move and slide here you basically got to call move and just make sure you call it in the fix process otherwise it won't work so after that I added the actions in the input map and wrote some camera code and we basically have a simple character controller on our hands and so basically with that out of the way it was time to add some guns to the game and animations now the fact that you've stayed this far in the video means you're interested in the good game engine in some ways just like myself so it would be really nice if you could okay I'll stop just subscribe if you want so back in good 1.1 I added an animation player node and honestly the animation T looked quite similar you do also have these key frame buttons which I guess adds a key frame just like the latest version and so basically with that out of the way I added the gun animations like the shooting and the idle State now originally I wanted to use the animation tree but I didn't know how it worked so we're just going to use the animation player instead and control the animation states with the code so for example if I want to shoot I'm just going to say play the shoot animation and so to make all of this work better I added this code logic and as you can see it works much better now and so after that I coded the logic to spawn the bullets but as you can see they're kind of floating in the air and the reason for that is I needed to add the parent as a rigid body and not the rigid body as a child but now if you just held down your left Mouse button it would just keep spawning the bullets and the reason for that is because there's no exaction just pressed here so I had to create a logic that worked and now we actually have a logic to control the fire rate now the next step was to add a linear velocity to the ball when it got instantiated and so with this logic whenever we shoot the ball should go towards where we're looking but you see the new problem was that the bullets weren't spawning from the point of the gun and so I added a new spatial node that would act as the tip of the node and now we can see that the balls are getting instantiated in the correct place now the next thing I did was to make some animations for the enemy and also made a simple Logic for the enemy to follow the player and look at the player at all times now by no means this is perfect but it works fine but now whenever the enem is hit with a bullet it's not really smooth and so I made a simple logic in code to control the enemy whenever it's hit and as you can see it's much better now and so basically with that out of the way I added the logic that if the enemy gets pushed outside the level it gets despawned and will spawn a new enemy in the level I managed to do this using a signal from the area a node but first we're going to make sure that it's actually an enemy using groups and then we're going to call the destroy function inside of that enemy which I just made which is going to make sure that if it's done playing the destroy animation and then it's going to delete it from the scene which you can see works fine now to manage the score I tried making an autoload but it didn't work for some reason I couldn't call the autoload even though it was defined in the project settings so not sure what I'm really doing wrong here so then I decided to use the parent node of the scene to handle the score and stuff like that which worked fine and for the UI I added a control node with a label node under it with some custom fonts and now we can see that for every enemy that we push outside the level we'll get a score and we'll have a new enemy spawned in the level now the new problem was that the enemies would get stuck on walls I tried to set the friction to zero but that didn't really do anything so it is what it is for now now the other problem is that whenever I hit an enemy the other enemy would also play the hit animation and the reason for that was the material on both of them are the same I fixed this in good old 4 by adding a new material to the mesh on each new enemy that I spawned and I'm doing the same here but it doesn't work so I'm not sure what I'm doing wrong anyways to add the text for the guns I tried using a label 3D like in good 4 but but there was no such thing in good 1.1 so instead I'm making them in and then export them in good 1.1 to use it with the Sprite node so after making the texts and exporting them into good 1.1 I set up the gun items one by one and attach the scrip to each one but then I forgot to make it into a separate scene and when I try to do that I couldn't find the option that's unlike good old 4 where you can make any not into a separate scene anyways so this is the script for the gun item logic and it checks whether if the player is touching it or not and if we have enough score to actually get it and each gun has its own unique properties now the next problem was that the balls would just get spawned and then stay there forever which could definitely impact the performance negatively so I made a logic in code that would despawn the balls after some time and here you can actually see that in action now as the final step I made an end screen that would be shown to the player whenever it got hit by the enemy now the font is going to be small because for some reason I couldn't increase it and so now you can see whenever the player touches the enemy the game's over and so basically with that out of the way my game was done now the one thing I learned is that g has come a long way now obviously the old engine didn't feel as good as the latest one also it was really interesting to see that a lot of Core Concepts have remained the same definitely much easier to make a game in good of 4 mainly because it was easier to import the models and navigate the engine editor new features and stuff like that it's just much more user friendly so what did you think about this release of Gau tell me in the comment section and as always I'll see you soon
Info
Channel: Code It All
Views: 25,207
Rating: undefined out of 5
Keywords: godot, godot 4, godot 4.2.2, game engine, how to make a game, godot 1.0, indie game dev, indie, making the same game
Id: zs_heJ6jzaE
Channel Id: undefined
Length: 10min 59sec (659 seconds)
Published: Sun May 12 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.