Escaping tutorial hell

Escaping tutorial hell

- 9 mins

The problem

Beginner gamedevs often get stuck watching tutorials, not being able to code stuff on their own. This is often referenced as tutorial hell and I believe it’s not limited to gamedev.

When thinking about this subject the other day, I traced similarity with cooking. How many people are cooking the same dish over and over again and yet they still need the recipe. And I’m not necessarily talking about highly complex dishes, but more like crêpes for example. They did not make the recipe their own. They didn’t understand the relationship between the ingredients and the result. You want your preparation to be more fluid? Add milk. You want to thicken it? Add flour. You want to eat the crêpes for your meal and not just dessert? Don’t use sugar. You want to add flavor? Put a drop of rhum, or vanilla. When you realize the relationship between the ingredients, you can make the recipe your own, and you don’t need to follow it strictly or at all. You’ll adapt to whatever the situation becomes.

I believe this is how you should approach gamedev too. You can’t limit yourself to strictly following the tutorials or else, you’ll become dependant.

How are you supposed to approach learning gamedev (or anything) then?

Experiment(s)

Experiments are the foundation to me. Tutorials are here to help you navigate something completely new. They give you direction(s) and hopefully explain you WHY you might do something and not just HOW. They’re like a spark, starting the engine, but you have to provide the fuel. What is the fuel? Your experiments.

What is an experiment? It can be anything, from code to art, from minutes to hours of work. But they shouldn’t be too long! Otherwise, it probably means you’re either doing too much, or going in the wrong direction. Experiments, are focused. They’re all about trying one thing. How do I move my character like a rocket? How do I change gravity in a game? What if I set my game canvas to a tiny resolution and then upscale? What would a black and white art style look like? How do I create a physics based grappling hook? How do I animate a character without drawing more frames? All these questions lead to an experiment. A tiny, focused piece of work that aims at answering a question. They’re not an art piece or a full game, even though they can turn into that if you want.

When starting gamedev and Godot 4 years ago, I started doing experiments. I wanted to learn tons of stuff and I quickly realized that making only games would limit myself. This is to me, the best way to work your problem solving brain. When you see something interesting in a game, or in real life, you take a short time to think about how it could be made. You focus on experimenting with tiny things such as a camera movement, a shader, a vfx, etc…

Tutorials can still play a role in that, especially when you’re a beginner. I used to to look at the beginning of tutorials, when the teacher would explain how they were going to tackle the problem. Then, I would try to implement it on my own. Each time you do that, you try to think of your own solution before even seeking help online. After some time, you can do everything on your own because your problem solving brain is strong enough. It doesn’t mean you should reinvent the wheel all the time though. Sometimes you just want an already built solution, and it’s fine. Sometimes you learn, sometimes you copy, sometimes you take, but don’t forget to give.

I’m not the only one doing that. Recently, we’ve seen a lot of Unity users coming to Godot and experiment a bunch. Passivestar has been sharing lots of their experiments on Twitter. Long time Godot users where surprised to see how fast they was progressing but also how they were sometimes discovering stuff that they weren’t aware existed.

passivstar experimenting

It might seem crazy to think a new user would discover stuff that long time ones don’t know about. It makes sense when you think about it. As a new user, discovering the tool is productive. It’s the only thing you have to do. You’re excited about this new tool, so you spend time on every aspect of it. You also bring your past experience with you. You might be like “can I do this thing I was doing in Unity?” and discover a cool and unknown feature in a new engine. While your still discovering, you’re not yet limited and thus you learn a lot, just like a child.

Small games vs experiments

We often tell beginners to focus on making small games as opposed to big ones. The logic is good. You need to learn a lot of stuff, it’ll be easier to work on a small game and you’ll actually finish it if it’s smaller. But making full games that can be played by others, wastes time on stuff that you don’t really need to do over and over again. Making a prototype and making it playable by other are two different things. A bunch of boring stuff has to be made and while it’s important to learn those steps, it’s not going to make you a better gamedev, artist or whatever.

Don’t get me wrong, I’m not saying you should never do full games. I’m saying you should not confuse making a game and trying stuff out. Experiments let you freely explore something. It doesn’t have to be presentable, or playable. It can be stopped much more easily than a game. It’s also much smaller and focused, letting you put 100% of your energy on the thing you’re trying to achieve.

I think there’s a time for experiments and another for making games. A good example of that is jams. Let’s say you want to participate in the next Ludum Dare. You might have an idea you want to work on, or you’ll let yourself be inspired (or not) by the theme. This is the “make a game” part. In preparation to the jam, you’d like to explore a different art style or post-processing effect. This is the “experiment” part. You’ll take a short moment, maybe an hour or two, to fiddle around in your engine of choice to setup a project with this art style. The end goal of such an experiment might be do decide if it will be easier or faster to create a game with it. This means that the end result might be “it doesn’t work”, and you’ll revert to a style you’re used to.

I took the example of a jam because experimenting while being pressured by time can be extremely difficult. Depending on what you want out of the jam, you might not have time to try things. You’ll go with what you know, and focus on polishing everything. That’s why taking the time to experiment with stuff before the jam, is interesting. It’s like training before the race day.

Another aspect is the freedom coming from experimenting. When making a game, you might be restricted by the idea of what a game is. As I’ve said earlier, experiments don’t need to be playable or finished. Their scope is much smaller. They might actually doesn’t even “work” and that can be the point! Sometimes, you have a specific idea, and you want to try it. You make the experiment and see if it works or not. In that regard, experiments are like prototypes. They’re used to assess the feasibility of something. I prefer to use the word experiment as I think it encompasses more stuff than what people might think of with prototypes.

Removing the guilt

One last important aspect of an experiment is that you don’t feel guilty about doing or failing it. I don’t think I’m the only one feeling like this, at least I hope so. When I’m working on a game, I try to be as productive as possible, and I can’t help but feeling bad about trying out stuff that might not work. I know, it’s unreasonable to think we can always be 100% productive, but I’m working on it. That’s part of why I went with the simple neon art style with Colorspace. It’s something I know, something I’ve already done with Dashpong. I know I won’t have to fiddle around too much to be productive.

The problem with thinking like this is you’ll never allow yourself to try different things and thus become “better”. When doing an experiment, you put a name on something. You define borders around this nebulous idea of trying stuff out. You set a hard limit on experimentation. With that, you remove the guilt of not being productive. On the contrary, you might even feel productive because you’re learning, making choices, and making it easier for yourself in the future. Experiments are like tiny learning experiences, tiny improvements that make your future life easier.

Alright, I think I’m going to run in circles if I continue rambling about this subject. I truly believe experiments can be the difference between progress and stagnation. Becoming an experimenter might be difficult at first, but it will be easier the more you do it (just like everything right?).

If you liked what you read, considering joining my Patreon! You can even do it for free, just click on the join for free button!

That’s it for me, do some experiments, bye!

Useful stuff 👇

MrEliptik

MrEliptik

Full-time indie game developer using Godot

comments powered by Disqus