updates / code patches

This article serves as an update and provides some historical context to the popular video: "What's Wrong With Most Godot Tutorials (including ours)".

The video dates back to when GDQuest first built Learn GDScript From Zero. It is still worth watching for its perspective on learning, although the problem it describes has somewhat shifted. Back then, there was a lack of good material for beginners. People were often told to start with a different language, or to just jump into Godot and figure it out. You still occasionally see this advice today (and it sends many beginners straight into a wall!) but it's thankfully less common, in part because new resources have filled the gap.

The app Learn GDScript From Zero has since become part of the official Godot docs. It has now been used by well over a million people, including in many schools around the world.

Below, I've recapped and refreshed some of the key points the video makes. While the ecosystem has evolved, the underlying issues around learning and teaching are still relevant.

Nathan

Founder and teacher at GDQuest

What's Wrong With Most Godot Tutorials (including ours)

The problem with "Learn Python" or "Just start a project in Godot".

What beginners actually want

Most people coming to Godot aren't primarily interested in programming for its own sake. They're driven by what they want to create, the same way someone gets into DIY for the things they'll build, not for the love of tools. The taste for programming can come later, but it's rarely what brings people to game development in the first place. So telling a beginner to go learn a programming language amounts to expecting someone who wants to make games to spend weeks or months doing something unrelated to their goal. Many won't even try. Some will try and lose steam. Most either push through Godot tutorials that assume too much, or switch to an engine that promises a more engaging ramp-up.

This creates a tension that's hard to resolve. Newcomers want results fast, but they also need to understand what they're learning so they can integrate skills. They want to make something cool on day one and have everything explained along the way. Those two things pull in opposite directions, and most tutorials end up serving neither well. The few tutorials that pull it off can only ever cover the tip of the iceberg.

Jumping straight into Godot isn't straightforward either, as it's a complex tool. A beginner trying to write their first script has to deal with nodes, virtual callbacks, and inheritance from engine classes before they understand what a variable is. The cognitive load is high for someone starting from zero.

If Godot is so complex, isn't it a bad first tool?

That's something I assumed myself. Years ago, I was among the people recommending learning Python first because a general-purpose engine involves way more than learning a programming language. It's a whole ecosystem of tools and concepts.

However, part of a teacher's job is to listen and support students' goals the best they can rather than work against them. So we tried to meet beginners where they were and with what they wanted to do: learn to make games in Godot directly.

Like most general-purpose game engines, Godot and its editor can be overwhelming at first, but with the right guidance, you can quickly become productive. Once you're exposed to GDScript and the editor tools, building your first games becomes very approachable. This largely makes up for the overhead of learning the tool's own concepts and workflows.

We found that with the right staging of early learning, middle and high school students with no prior coding experience can pick up game development with Godot and GDScript and become able to make small games independently while building transferable programming skills.

Today, GDQuest's school program runs in many schools, with students learning GDScript and building games in teams as well as solo.

Why most tutorial series overwhelm beginners

Step-by-step tutorials aren't all bad. They're a useful stepping stone when you're just getting your feet wet, and having a handful to pick from is helpful. The problem is how prevalent this style has become. Most of what you'll find online follows the same recipe and gravitates around the same topics: build a complete mechanic or game from scratch, introducing concepts in a continuous stream. Many learners process this as a recipe. They can follow along, but when they sit down alone, they're unable to replicate much or get anything done by themselves.

This is compounded by how people learn online. In a classroom, you have some group pressure and a teacher to keep you accountable. But online, those are gone. It's much easier to abandon, and much harder to know when you've actually understood something rather than just followed along.

The work of metabolizing and consolidating what you've learned is left to you. The common advice is to just push through, pick a project, and figure it out. For naturally curious tinkerers, that works, but for most learners, it doesn't. It's a lot to ask of people who don't yet know how to:

It doesn't help them get out of tutorial hell.

A better approach

Teaching through many small, focused projects that build on top of each other works better. The key here is the scope: keeping each project small enough that the learner has time to digest what they're learning and practice it before building on top of it. But it all has to stay engaging and appealing.

One project might introduce character movement, another might teach data structures through an inventory or dialogue system... Not every project needs to be directly tied to game creation either. What matters is that nothing gets buried under the weight of everything else being introduced at the same time.

Starting from a concrete example and using code to solve a real problem is still a good way to sequence learning. Once the learner sees something working, you can start to poke at their natural curiosity. They'll want to understand a little more about what just happened, and that's when you can enter the breach and expand on theory.

My first experience with programming was a massive C++ textbook that an experienced programmer recommended. I hated it, and after learning from it, I stayed away from code for years. It convinced me that programming was not for me.

The book was dense, technical, and focused on implementation details. It assumed you'd tinker and figure things out. That works for some people, but I wasn't there yet, which filtered me out before I had a fair chance.

Most learners are not natural tinkerers, and that's fine. They just need resources that meet them where they are, and that's exactly who we're building for.

Nathan

Founder and teacher at GDQuest
If smaller focused projects followed by theory works better, why don't more tutorials do it?

Because it's much harder and time-consuming to produce. A single step-by-step series requires planning one bounded and continuous project. Content creators have literally mountains of examples to use as reference and they can follow a proven recipe that meets expectations.

A curriculum built around small focused projects requires planning dozens of projects, critically designing the difficulty of hundreds of scripts, testing and sequencing everything carefully, so concepts connect to each other intuitively without leaving gaps.

At GDQuest, building this kind of curriculum took years of work and required throwing out everything we had made before and starting over.

Getting started with GDScript

The Learn GDScript App was built to put these ideas into practice, and, most importantly, fill a gap in Godot's ecosystem to get beginners started with the ABCs of coding in an applied and directly useful manner. It's free, open source, and part of the official Godot documentation.

The app uses a code lens approach: it shows only the part of a script relevant to the current lesson, hiding everything else. Each exercise has a goal, hints, and automated checks that confirm when the requirements are met. Syntax errors are reported clearly, and the app keeps running even if your code would crash a normal project.

This means you can focus on writing and testing small pieces of code, start moving a character and making it jump, without first having to understand nodes, _ready, or how GDScript inherits from the engine. Such concepts come later. If you're starting from zero, the Learn GDScript App is the place to begin.

Is the Learn GDScript app a replacement for other Godot learning resources and tutorials?

No, the app is a starting point for people who have never coded before. It's designed to give you just enough knowledge of coding and GDScript to move into Godot and follow other learning resources with confidence.

It's the stepping stone the official documentation and the community were missing a couple of years back.

Do I need to learn another language before using Godot?

No, you don't. GDScript is a perfectly fine first language, and learning it gets you directly to making games in Godot. It's an imperative and object-oriented language, so most of the programming concepts and techniques you'll learn with it transfer to other languages you may decide to learn in the future.

Learning another language before Godot is only worth it if you're specifically interested in programming beyond game development. Even then, GDScript is as good a language as any to get started with.

If your goal is to make games, GDScript is enough to go pretty far. Understanding how programming, computers, and game engines truly work at a deeper level is worth it eventually, but it's not what will teach you how to make and ship your first games in Godot. It's a long journey that you can embark on just as well with GDScript as any other language. All the roads lead to Rome.

At the end of Learn GDScript from Zero, do I become able to code games with GDScript?
You become literate and able to recognize and piece together code. From there, it takes practice to become fluent. Once you're done with the app, whether you continue on your own or work through GDQuest's project-based curriculum, you build fluency one project at a time.
Become an Indie Gamedev with GDQuest!

Don't stop here. Step-by-step tutorials are fun but they only take you so far.

Try one of our proven study programs to become an independent Gamedev truly capable of realizing the games you’ve always wanted to make.

Nathan

Founder and teacher at GDQuest
  • Starter Kit
  • Learn Gamedev from Zero
Check out GDSchool

You're welcome in our little community

Get help from peers and pros on GDQuest's Discord server!

20,000 membersJoin Server

Contribute to GDQuest's Free Library

There are multiple ways you can join our effort to create free and open source gamedev resources that are accessible to everyone!

Site in BETA!found a bug?