We may earn an affiliate commission when you visit our partners.
Course image
GameDev.tv Team and Ahmed Nassef

Ever dreamt of making your own 2D action-adventure game? Then you're in luck.

Whether you're a total newbie or switching to Godot, this course will walk you through creating an amazing game from scratch—no prior experience needed.

We’re talking puzzles, NPCs, combat, and an expansive world to explore. Think classic Zelda-like gameplay, but made by you. By the end, you'll have a fully playable game, plus the skills to build your own adventure-packed worlds.

Read more

Ever dreamt of making your own 2D action-adventure game? Then you're in luck.

Whether you're a total newbie or switching to Godot, this course will walk you through creating an amazing game from scratch—no prior experience needed.

We’re talking puzzles, NPCs, combat, and an expansive world to explore. Think classic Zelda-like gameplay, but made by you. By the end, you'll have a fully playable game, plus the skills to build your own adventure-packed worlds.

You'll master GDScript, Godot’s custom scripting language, so you can make enemies chase the player, NPCs drop wisdom, and puzzles actually work. We’ll keep the code beginner-friendly, but powerful enough to level up your dev skills.

You’ll learn to craft tilemaps and terrains to build your world, add hidden rooms and treasure chests, and create a combat system where slimes aren’t just cute—they’re dangerous. (No mercy, they must be defeated.)

Most tutorials teach you how to make tiny, unfinished games. That’s cool and all, but this course goes all the way—from blank project to fully structured, feature-rich game. No half-baked mechanics. No confusing gaps.

You’ll learn by doing, with clear explanations and challenges to make sure you actually understand what you’re coding.

This course is perfect for total beginners, or devs looking to jump into Godot 4 without getting lost. No game dev experience? No problem. You just need a computer (Windows, Linux, or Mac) and a bit of curiosity.

By the end, you'll have more than just a game—you'll have the confidence to build your own.

If you've ever wanted to bring your dream game to life, now’s your chance. Let’s make something awesome together.

Enroll now

What's inside

Learning objectives

  • Build a full 2d action-adventure game in godot 4 from start to finish.
  • Learn gdscript and code like a pro—variables, functions, signals, and more.
  • Design an expansive world with tilemaps, terrains, and hidden secrets.
  • Create puzzles with movable blocks, pressure plates, and sneaky switches.
  • Develop a dialogue system so npcs can drop lore, hints, or just sass.
  • Make a combat system where enemies chase, attack, and (hopefully) lose.
  • Structure your game properly with reusable scenes, groups, and signals.
  • Master game dev skills you can use to create your own epic adventures.

Syllabus

Introduction & Setup

Ahmed welcomes you to the course and gives you an overview of what you’ll be learning.

In this lecture, we’ll download Godot and set up our project.

Read more

In this lecture, we’ll learn how to use Godot’s interface as well as what Nodes and Scenes are.

In this lecture, we will look into the basics of programming in Godot using GDScript.

We introduce the ways that you can get help, support and contribute to the community.

Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video, we show you how to access that content.

In this lecture, we’ll learn what assets are and import the ones we’ll use in our game.

In this video, I’ll give you a preview of what to expect in the Player Movement section!

In this lecture, we set up the player character scene.

In this lecture, we learn what a variable is, how to create and use one, as well as some basic types like integers and floats.

In this lecture, we’ll learn what an if statement is, as well as how we can use it to read button input via Input Actions.

In this lecture, we’ll start moving the player depending on which buttons were pressed!

In this lecture, we’ll learn what the scope of a variable means and how to use @export to edit a variable from the inspector.

In this lecture, we’ll animate the player movement using the AnimatedSprite2D node.

In this lecture, we’ll use elif and else statements to fix the player’s animations when moving diagonally.

In this video, I’ll give you a preview of what to expect in the Creating Environments section!

In this lecture, we’re going to use TileMapLayers to create a basic environment for our game!

In this lecture, we’ll create and use a Terrain inside of our Tilemap to automatically choose the proper tiles when painting roads, making it much easier to do so.

In this lecture, we’ll learn how to add obstacles (such as trees) with their own collision shapes and how to sort them properly with the player using Y-sorting.

In this lecture, we’ll learn how to swap to a different scene by creating a dungeon entrance!

In this lecture, we’ll learn how to use Autoloads to position the player when entering a new scene.

In this lecture, we’ll create a nice environment for our dungeon scene by adding floors and walls - including terrains for both of them!

In this lecture, we’ll learn the different ways you can scale the window so players can have the same experience regardless of window size.

In this lecture, we’ll learn all the different types of physics bodies and begin creating our block.

In this lecture, we’ll learn how to push the block by detecting and using collision in the player’s script.

In this lecture, we’ll learn how groups work in order to improve our block-detecting code.

In this lecture, we’ll learn what the framerate is and how we can avoid tying our game logic to it using the physics process function.

In this lecture, we’re going to create a button that can be pressed when the player or a block stands over it.

In this lecture, we’ll learn how to create our own signals in order to tell a door to open whenever a puzzle button is pressed!

In this lecture, we’re going to upgrade the locked door code and finally create a block puzzle in the dungeon!

In this lecture, we’re going to variants for the block and button scenes to add more variety to the game, such as an ice block that slides around and a button that stays pressed forever!

In this lecture, we’ll learn what collision layers are and how they can decide which physics bodies can touch others. We’ll use these to stop blocks from going out of bounds!

In this video, I’ll give you a preview of what to expect in the Creating NPCs section!

In this lecture, we’re going to learn how functions work and create our own ones to organize our code.

In this lecture, we’re going to create the base of our NPC scene that we’ll build upon in upcoming lectures.

In this lecture, we’ll learn what a GUI is and how we can create a basic user interface using Control nodes!

In this lecture, we’ll add an Area2D for our player in order to talk to NPCs only when the player is facing them.

In this lecture, we’ll add multiple NPCs in our scene by learning how to access child nodes and replace textures.

In this lecture, we’re going to pause the game whenever the player talks to an NPC so you can’t walk away or get interrupted.

In this lecture, we’ll learn what Arrays are and why they’re useful. Arrays lets you easily store a collection of variables!

In this lecture, we’ll use Arrays to have NPCs say multiple lines of dialogue!

In this video, I’ll give you a preview of what to expect in the Switch Puzzles section!

In this lecture, we’ll add boundaries to the world so the camera and player aren’t able to go out of bounds.

In this lecture, we’re going to create switches that the player can toggle on or off.

In this lecture, we’ll create a secret room that gets revealed or hidden again by pressing a switch.

In this lecture, we’re going to replace our simple switch with a switch puzzle that activates when you enter a specific combination!

In this lecture, we’ll add treasure chests to reward the player whenever they finish a puzzle in the dungeon!

In this lecture, we’ll fix an issue where chests we’ve opened before reset once you leave and re-enter a scene.

In this lecture, we’ll show how much treasure the player has gained by making a small user interface!

In this video, I’ll give you a preview of what to expect in the Combat section!

In this lecture, we’re finally going to add some music and sound effects to liven up our game!

In this lecture, we’ll make our player take damage and restart the scene when the player’s HP reaches 0.

In this lecture, we’ll add a UI showing the player’s HP in the top left of the screen.

In this lecture, we’ll give the player a sword so they can attack the slime!

In this lecture, we’ll animate the player’s attack and sword by using a brand new node called the AnimationPlayer!

In this lecture, we’re going to make the enemy move and chase the player, as well as animate it to face the direction it’s moving in!

In this lecture, we’ll knock back the slime and player when they take damage!

In this lecture we’re going to polish (improve) some rough edges in our combat system by fixing an issue with attacking and adding a death animation for our player!

In this lecture, we’ll make our player & enemy briefly flash a specific color when taking damage!

In this lecture, we’ll fix an issue where we accidentally attack anything interactable.

In this lecture, we’re going to clean up some code and add particle effects to make our slime explode on death!

Congratulations on finishing the course, and good luck on your future endeavors! This video will give you a hearty goodbye and some recommendations on what to do next.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses GDScript, Godot's custom scripting language, which allows learners to create enemies, program non-player characters, and design puzzles, providing a foundation for game development
Covers tilemaps and terrains for world-building, hidden rooms, treasure chests, and combat systems, which are essential components in creating engaging and interactive game environments
Emphasizes structuring games with reusable scenes, groups, and signals, which promotes efficient game development and allows for scalability and maintainability of game projects
Requires learners to download Godot and set up a project, which may require a computer with specific operating system compatibility, potentially excluding learners with incompatible systems
Focuses on Godot 4, so learners should be aware that skills and knowledge may not transfer to other game engines, which may limit their versatility in the broader game development landscape

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Build a godot 4 action-adventure game

According to learners, this course provides a solid foundation for creating a 2D action-adventure game using Godot 4 and GDScript. Many find the course well-structured and the instructor's explanations clear and easy to follow, making it great for beginners with little to no prior game development or coding experience. The course is praised for building a complete, feature-rich game by the end, including puzzles, NPCs, and combat, avoiding the common issue of leaving projects unfinished. While the course is generally highly recommended, a few reviewers note that certain sections could benefit from more in-depth explanation or alternative methods, and some found the pace challenging at times. Overall, it's seen as an excellent starting point for aspiring Godot developers.
Instructor actively helps students with questions.
"The instructor is very responsive to questions and actively helps solve issues."
"Great support from the instructor in the Q&A section."
"Got my questions answered quickly and helpfully by the instructor."
"Instructor seems genuinely invested in student success."
Logical flow and organization of topics.
"The course is structured logically, building upon previous concepts step-by-step."
"Each section flowed nicely into the next, making it easy to follow along."
"The modular approach helped keep things organized and understandable."
"The structure made it simple to go back and review specific topics."
Concepts and code are explained clearly and simply.
"The instructor explains things very clearly, breaking down complex concepts into understandable parts."
"Everything was well explained, even the code parts were simple and clear."
"The explanations of the code and Godot features were easy to grasp."
"Clear explanations made learning GDScript manageable."
Ideal for new game developers and Godot users.
"As someone with limited programming experience and no prior Godot experience, this course was incredibly helpful."
"Excellent course for getting started with Godot, it really shows you the basics step by step and builds on them effectively."
"This course is excellent for beginners wanting to get into Godot. It's well-explained and easy to follow."
"It's definitely worth it if you're starting out. The explanations are crystal clear."
Builds a full, playable game from start to finish.
"I really appreciate that this course guides you through creating a *complete* game, not just a few mechanics."
"Unlike many tutorials, you actually end up with a finished, feature-rich game."
"It's great having a tangible, full game project completed by the end of the course."
"By the end, you have a fully functional action-adventure game."
Some topics could use further explanation or alternatives.
"While great for basics, some areas like optimization or more advanced GDScript patterns could be expanded."
"I felt that some parts were a bit rushed and could have benefited from deeper dives."
"Could use more detailed explanations on certain Godot nodes or GDScript techniques."
"Wish there were alternative ways shown for certain implementations."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Godot 4: Build a 2D Action-Adventure Game with these activities:
Review GDScript Basics
Solidify your understanding of GDScript syntax and basic programming concepts before diving into the course. This will make it easier to follow along with the more complex game logic later on.
Show steps
  • Review GDScript documentation.
  • Practice writing simple scripts.
  • Experiment with variables and functions.
Read 'Godot Engine Game Development Projects'
Explore game development projects to gain a broader understanding of game development principles. This will help you contextualize the course material and apply it to your own game ideas.
Show steps
  • Obtain a copy of the book.
  • Read through the relevant chapters.
  • Experiment with the code examples.
Create a Simple Tilemap
Practice creating tilemaps in Godot to become familiar with the tilemap editor and terrain tools. This will make it easier to design and build your game world in the course.
Show steps
  • Create a new Godot project.
  • Import a tileset image.
  • Create a TileMap node.
  • Paint a simple environment.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Document Your Puzzle Design Process
Document your puzzle design process to reinforce your understanding of puzzle mechanics and level design. This will help you create more engaging and challenging puzzles in your game.
Show steps
  • Design a simple puzzle on paper.
  • Implement the puzzle in Godot.
  • Write a blog post or create a video explaining your design choices.
GDScript Coding Challenges
Sharpen your GDScript skills by completing coding challenges on platforms like Edabit or HackerRank. This will improve your problem-solving abilities and make you a more efficient coder.
Show steps
  • Find a website with GDScript challenges.
  • Solve a set number of challenges each week.
  • Review your solutions and learn from your mistakes.
Read 'Game Design Workshop'
Study game design principles to enhance your understanding of game mechanics and level design. This will help you create a more engaging and enjoyable game experience.
Show steps
  • Obtain a copy of the book.
  • Read through the relevant chapters.
  • Apply the concepts to your game project.
Contribute to a Godot Asset Library Project
Contribute to an open-source Godot project to gain experience working with a team and learn from other developers. This will improve your coding skills and expose you to different coding styles and project management techniques.
Show steps
  • Find an open-source Godot project on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Expand the Combat System
Extend the combat system by adding new enemy types, weapons, or special abilities. This will allow you to experiment with different combat mechanics and create a more challenging and rewarding combat experience.
Show steps
  • Design a new enemy type with unique attacks.
  • Implement the enemy in Godot.
  • Balance the enemy's stats and abilities.
  • Test the combat system thoroughly.

Career center

Learners who complete Godot 4: Build a 2D Action-Adventure Game will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer designs and creates video games for various platforms. This course provides a practical introduction to game development using Godot 4, focusing on building a 2D action-adventure game. Taking this course introduces you to core game development skills such as coding in GDScript, designing game mechanics, creating engaging puzzles, implementing combat systems, and crafting immersive environments. Acquiring these skills prepares you to contribute to game development teams or pursue independent game creation. You also learn to iterate on game design, implement user interfaces, and integrate sound effects.
Indie Game Developer
An independent game developer creates and publishes games, often with small teams or as a solo endeavor and emphasizes artistic expression and innovation. This course is perfect for aspiring indie game developers, as it guides you through the entire process of building a 2D action-adventure game from scratch using Godot 4. You will learn to design game mechanics, create puzzles, implement combat systems, and build immersive worlds. You will also learn GDScript, Godot's custom scripting language, and master essential game development skills. This course will empower you to bring your own unique game ideas to life.
Gameplay Programmer
A gameplay programmer specializes in coding the mechanics and interactions within a video game. The course is especially compelling, as it provides a strong foundation in GDScript, Godot’s custom scripting language, which is essential for gameplay programming. You will learn to code player movement, enemy behavior, combat systems, and puzzle mechanics. Taking this course allows gameplay programmers to implement game mechanics and create interactive experiences for players. This course will help you develop practical programming skills applicable to a wide range of game development projects.
Level Designer
A level designer focuses on creating the environments and layouts within a video game. This course helps build a foundation for a career as a level designer, as it provides hands-on experience in designing and building game worlds using Godot 4. You will learn to craft tilemaps and terrains, add hidden rooms and treasure chests, and create engaging environments for your game. You will also learn how to implement puzzles and challenges within your levels. The course will allow you to develop the skills needed to create immersive and engaging game levels.
Game Designer
A game designer is responsible for conceiving and designing the gameplay, rules, and structure of a video game. This course may be useful as it provides a practical understanding of game design principles through hands-on experience with Godot 4. You will learn to create puzzles, design combat systems, develop dialogue systems, and craft engaging environments. This course will allow you to gain insights into how game mechanics work together to create a cohesive and enjoyable player experience. You also learn to structure games with reusable scenes and signals.
Technical Artist
A technical artist bridges the gap between artists and programmers, optimizing assets and implementing art into the game engine. This course provides a practical understanding of how art assets are integrated and utilized within Godot 4. Taking this course allows you to learn how to create tilemaps and terrains, animate characters, and implement visual effects. You will also gain experience with optimizing game performance and ensuring that art assets work seamlessly within the game. You can also implement sound and particle effects.
Mobile Game Developer
Mobile game developers specialize in creating games for smartphones and tablets. This course may be useful to mobile game developers, as it uses Godot 4, which supports exporting games to mobile platforms. You will learn the basic principles of game development by creating a 2D action-adventure game that can be adapted for mobile devices. You can adapt the content of the course to focus on the demands of mobile devices.
Software Engineer
A software engineer designs, develops, and tests software applications. This course may be useful, as it introduces you to software development principles and practices within the context of game development. You will learn to code in GDScript, design software architectures, and implement software solutions for game mechanics and interactions. The course will enable you to develop your problem-solving skills and learn how to approach software development in a structured and effective manner. You can reuse components.
Software Developer
Software developers create the applications that run on computers, mobile phones, and other devices. This course may be helpful as it introduces software development concepts using game development as a vehicle. The course emphasizes GDScript as well as creating interactive applications. This course emphasizes modularity of development, which can transfer to software development generally. Learning occurs in terms of immediate visual and interactive feedback.
Virtual Reality Developer
A virtual reality developer creates immersive experiences for VR platforms. This course may be useful, as it provides a foundation in game development principles and programming, which can be applied to VR development. You will learn to design interactive environments, implement game mechanics, and create engaging user experiences. This course will help you develop the skills needed to create compelling VR applications and games.
Animator
Animators create the moving images seen in films, television shows, video games, and other forms of media. This course may be useful, as it provides experience with animating characters and objects within a game environment. You will learn to use the AnimationPlayer node in Godot 4 to create animations for player movement, attacks, and enemy behavior. You can then apply your animation skills to a wider range of projects.
Web Developer
Web developers build and maintain websites. This course may be useful as web development often involves working with visual elements and user interactions, and the skills learned in this course, such as creating interactive environments and implementing user interfaces, can be relevant to web development. You will learn to code interactive elements and design engaging user experiences. Websites must be visually appealing, and this course can help build those fundamentals.
User Interface Designer
User interface designers focus on creating intuitive and visually appealing interfaces for software applications and websites. This course may prove useful, as it provides some experience with designing user interfaces within a game environment. You learn to implement user interfaces for displaying player health, treasure counts, and dialogue boxes. These skills can then be applied to a wider range of user interface design projects.
Project Manager
Project managers plan, organize, and oversee the completion of specific projects, ensuring they are completed on time and within budget. This course may be useful, as it guides you through the entire process of building a game from start to finish using Godot 4. You will learn to manage tasks, track progress, and coordinate resources to achieve a specific goal. These project management skills can be applied to any industry.
Educator
Educators teach students in a variety of settings, from schools to universities to online learning platforms. This course provides a comprehensive, project-based approach to learning game development. As an educator, you might use the course as a template to introduce students to game development. The course also emphasizes clear explanations, step-by-step instructions, and hands-on challenges, making it easy to adapt the course content to meet the needs of different learners.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Godot 4: Build a 2D Action-Adventure Game.
Provides a project-based approach to learning Godot, mirroring the course's hands-on philosophy. It covers a range of game genres, offering broader exposure to Godot's capabilities beyond the action-adventure focus of the course. It's a good resource for learners who want to expand their skills after completing the course.
While the course focuses on the technical aspects of game development, this book provides a strong foundation in game design principles. It emphasizes iterative design and playtesting, which are crucial for creating engaging games. It's a valuable resource for understanding the 'why' behind game mechanics and level design.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser