In this course we will go through one of my personal favorite game engine - Godot.
Godot is an open source game engine, which is pretty amazing considering just how awesome it is.
We will go step by step through the features of Godot. Then, when we are comfortable with the engine we will start by creating some games. First we will create a two player game - Pong.
Afterwards we will create a clone of Super Mario Brothers. You will be provided all the necessary assets such as the Character sprites, environments etc. So that you can follow along the course without any problems.
In this course we will go through one of my personal favorite game engine - Godot.
Godot is an open source game engine, which is pretty amazing considering just how awesome it is.
We will go step by step through the features of Godot. Then, when we are comfortable with the engine we will start by creating some games. First we will create a two player game - Pong.
Afterwards we will create a clone of Super Mario Brothers. You will be provided all the necessary assets such as the Character sprites, environments etc. So that you can follow along the course without any problems.
You will learn and understand just how games work and how small details function, such as collisions and character movement.
We will use Vector math to calculate collisions, we will create our own physics for our game, so that we have full control of the game world.
All this, and more, will be covered in this course.
In this lecture we will talk about Godot and we will also download the engine itself.
In this lecture we will use Godot to log out a simple message - Hello World!
It is common practice in programming that the first thing you do with a new language is to write Hello World.
We continue where the last lecture left off, except now we display text as an Ingame message, where as previously it was displayed in the console.
We do this using the RichTextLabel node.
In this lecture we set up our project to develop Pong. We import all needed assets and add the required nodes to our World Node.
In this lecture we will change the resolution of the project to be better fitting with the assets that we have.
Afterwards we will create the movement of the right player - Right Pad.
We continue with the pad movement, setting up the other player.
We add collision to the pads, making sure that they can not leave the screen.
We add the ball movement, as well as colliders for the players. The ball changes direction when it hits the players or the wall. We also add logic that increases the speed of the ball each time it bounces off a player.
We finish up our game, limiting the ball speed in order to avoid collision issues.
We also add random ball movement on the y axis once the ball has been blocked by a pad.
Finally we add a score to keep track of who is winning the game.
In this lecture we create a new project, add our player sprite sheet, and set up the movement of the player.
In this lecture we add a jump to our player, we also implement gravity, collision with the ground, and fix some collision issues.
We limit the jump of the player, adding options such as double jump, single jump, or even triple jump, depending on what you want for your game.
We also flip the character when running in a different direction.
In this lecture we will add logic that will animate our player. We will have different conditions for different animations, ie : Running, Jumping, Stopping and Idle.
In this lecture we polish our animations, making sure to always play the required animation.
In this lecture we import an asset that we will use to design our first level.
In this lecture we add a camera to follow the player through the stage, we also create the destroyable bricks.
We fix the bug that caused the player to slide down when colliding with walls.
This is easily fixed with getting the normal of the objects we collide with, if their direction is on the X axis, we disable the players velocity on the x axis.
We use some simple Vector math to help us figure out if we hit the bricks from below and if so, we destroy them.
We fix a problem regarding the position of our Kinematic Body, we also create the Player Scene, so that we can instance it in different levels.
We create particle effects for the destruction of bricks. We then instantiate them to the Godot world tree whenever we hit the bricks.
In this lecture we add clouds and Pipes, we also talk about an issue we had with our code, we resolve it thanks to Groups in Godot.
We add another art asset and create the power up scene.
We create the script that will move the Power Up.
In this lecture we fix a bug from the previous lecture and introduce a new node called Area2D, which we use to figure out if the player should pick up the power up.
In this lecture we add the brick that holds the power up. This brick can be hit by the player, unlike other, destroyable bricks.
In this lecture we fix a bug from the previous lecture and spawn the power up when we hit the brick. We also change the color of the player to reflect his power level.
We make sure that the pits will instantly kill us if we fall into them.
In this lecture we import the enemy sprite sheet, and add a script to move and animate him.
In this lecture we continue coding our enemy. We make sure that it faces the correct direction, then, if it comes to contact with us we do some calculations to determine if we should destroy the enemy or if it should damage us. When we destroy the enemy we replace its sprite with a sprite that reflects its sadness.
In this lecture we add invincibility frames to our player. Making sure that when he takes damage, he can not take it for a short time again.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.