
download godot engine from godotengine.org, select regular engine for gdscript development, save the zip in your development folder, extract it, then run the godot exe to open project manager.
Open the Godot project manager, create a new project in a development folder named first project, and select a renderer. Open the editor or run the main scene.
Explore the Godot editor in 2D mode, mastering the file system, inspector, script editor, and project settings for a streamlined 2D workflow.
Explore the gd script style guide from the Godot docs, learn Pascal case for classes, snake_case for functions, and underscore prefixes, with two new lines for readability.
Explore why and how to use source control with Git and GitHub, create a repository, set up main and develop branches, and clone projects with GitHub Desktop.
Launch the Godot engine, create a new project, and name your game, choosing a save path. Select the compatibility renderer for broad device support and enable git for version control.
Initialize the Godot 4 project on a development branch, stage four changes (icon.svg, icon.svg.import, Godot project files), discard .gitignore edits, commit to develop, and push origin.
Set the window size to 1280 by 720 for a 16 by 9 aspect, enable fullscreen, and keep aspect with canvas stretch in Godot 4 project settings.
Create a Godot 4 2D scene named world in pascal case, save it in scenes as world.tsn, and run scene in windowed mode to observe 16 by 9 aspect ratio.
Explore how Godot 4 uses scenes as containers of nodes, with node 2D properties and inheritance, and how GDScript attaches scripts to move and interact nodes.
Add a camera to the scene, center it at 640 by 360, and anchor a 1280 by 720 background color rect to visualize the viewport for ui alignment.
Build a reusable paddle in Godot 4 by using a character body 2D with a collision shape and polygon, then save it as a scene in entities/paddle.
Set up input maps in Godot 4 to control two paddles with distinct keys, using is_action_pressed and delta time to move within screen bounds and handle two-player input.
Create a ball as area 2D with a polygon 2D and a collision shape 2D, export a speed, track velocity in physics process, and interact with edges and the paddle.
Learn to implement paddle bounce in Godot 4 by adding an area 2D hitbox, connecting area entered, and computing a normalized direction with a clamped max bounce angle.
Add top and bottom boundaries by checking the ball against the viewport size, clamp bounce angles, and debug with prints and breakpoints in GDScript.
Learn to implement a right paddle AI in Godot 4 by predicting the ball’s destination and smoothly lerping the paddle toward that y position within viewport constraints.
Connect the ball’s hit paddle signal to a level manager in Godot 4 to drive AI paddle movement by predicting the ball destination using a subscriber pattern and delta-based updates.
Refactor the AI paddle code into smaller, readable functions such as get player input and calculate eye movement, introducing a paddle within destination bounds check to simplify and clarify logic.
Use a level manager to control game flow, instantiate paddles and ball from packed scenes, and set fixed start positions before adding them to the scene.
Implement a signal-driven reset in Godot 4 where the level manager resets the ball and paddles when the ball crosses the left or right boundary.
In Godot 4, create a score manager under the level manager to track player scores; connect to the ball's x boundary hits, update scores, and print results for now.
Commit and push your Godot project on the development branch to track changes, review history, and revert to working states if issues arise.
Merge develop into main to create a fully functional snapshot of your game, then review commits, resolve potential conflicts, and use pull requests to keep branches synchronized.
Create an in-game UI in Godot 4 using a canvas layer and control nodes to show P1 and P2 scores at the top center, with vbox and hbox containers.
Draw a dashed midline for the in-game UI in a Godot 4 2D project by rendering centered lines with the draw function and viewport size, connect scores to the UI.
Connect in-game UI to the score manager in Godot 4 by exposing update methods for player one and player two, obtaining a UI reference, and updating labels during gameplay.
Import the Pixel Sans font from Google Fonts, add it to assets/fonts, and apply it via the theme or project settings to preview the font in game text.
Commit the in-game UI and pixel sans font to the development branch, review added and modified files, then push and open a pull request to main.
Create a main menu scene in Godot 4 with a black background, a centered game title and start and quit buttons, and wire them to scene switching and quitting.
Learn how to style a Godot 4 2D game’s user interface with a custom UI theme, applying consistent font sizes across menu buttons and labels.
Master Godot 4 2D game development by teaching AI to be beatable through a random number generator, adjusting the paddle destination to create a balanced challenge.
Integrate the save and load manager with the high score manager in Godot 4, reading and saving player high scores and displaying saved scores on the main menu.
Integrate save and load manager with high score manager to read and save scores, displaying player one and player two scores on top left and top right in Godot 4.
Implement a pause system in Godot 4 for 2D games with a pause manager that toggles pause via the escape key or spacebar, using always process mode to enable unpausing.
Create a pause menu in Godot 4 by building a pause screen overlay with resume, main menu, and quit buttons, and connect UI signals with a scene manager.
Export our complete Godot 4 game to a Windows desktop executable by configuring export templates, downloading missing templates, and building the final build in a builds folder.
Celebrate completing the course by applying the core concepts for developing games in Godot and see how these concepts transfer to future projects in software engineering.
This course will teach everything you need to build a complete 2D game in Godot 4! We start from the very basics, downloading Godot 4 and program every single line together until building the game out to a .exe file. Some of the topics we will cover are:
Working with player input
Working across multiple scenes
Signals and subscribers
Creating and customizing the user interface
Saving and loading
Debugging
& more
The goal of this course is to familiarize yourself with the complete game development workflow through Godot. By the end of this course you should have a functional proficiency with GDScript and basic software engineering principals. You will be able to improve upon the game you have built in this course, build your own games, or even take your new skill set to other game engines or software projects entirely.
This course is ideal for you if you are looking to get into programming or game development. 2D games are a critical introduction to game development, even if you are looking to get into 3D game development. While this course was recorded on Windows, these processes are identical on Linux as well.
This course is action oriented and focused on the process of creating a classic 2D game from start to finish. While the game allows us to cover a wide range of topics in Godot, we do not cover things such as networked multiplayer, 3D, art and animations, etc. Please review the course content to see if the course would be helpful for you.
There are several lessons that are available for preview here on Udemy, please check them out ahead of time to see if my teaching style or the content of the course is right for you!