Gravity Ace

Learn your tools


Hey folks! Welcome back to another Gravity Ace devlog.

Last week I talked a bit about the struggle to make good work. Today I want to discuss an important aspect of that: getting to know your tools.

I can’t understate how important it is to know your tools well. It can be incredibly frustrating to want to do something but not know the sequence of buttons or menus to select to make it happen. Knowing your tools allows you to focus on the results you want instead which buttons to press. You want to get to a state where you can have an idea in your head and your hands just automatically know how to make it and you can iterate quickly.

Step 1 then, is to find a tool that you like. For game development, that can mean a text editor, a language, music or art program, or even an engine. Liking the tool is important. It’s got to do the job, sure, but it’s equally important that you like using it. Even if you want to use tool “X”, maybe your brain doesn’t work in the way tool “X” wants you to work. Maybe tool “X” will be frustrating because you find its workflow strange or you hate the way it does certain things. I stopped using LMMS, a music app, because I don’t like the way it looks. This is so important! You won’t use it if you don’t like it. And you won’t get better if you don’t use it.

You may have some notion that you need to use “X” because other people are using “X”. That’s fine. Start there. But maybe “X” isn’t for you. Maybe you’d have much better results with “Y” or “Z”. Tools are only a means to an end. Maybe you’ve got other considerations like you need to use a specific tool to work on a certain team. That’s fine. Just know that you’ll have to force yourself to conform to the tool and it’ll take some time.

Remember that the tool doesn’t make the game. You are making the game.

Also, don’t fight your tools. If the tool was designed to do things in a certain way but you want to do things in a different way, you’ll be fighting it every time you use it. Don’t do that! Try to find tools that work the way you like to work. Or find tools that you can adapt to comfortably.

I see this all the time. Someone is like, I use “X” but I’m using it in a way that is not best practice or in a different way than the recommended way. They’re using a hammer to cut down a tree. And I’m like, “Why? Get a saw! Why are you doing this hard-mode?” Either adapt to the tool or find a different tool.

Quick aside about programming languages… I see lots of hand-wringing about which language to learn. Should I learn this language or that one? What if I learn “X” but it turns out I need to use “Y”… won’t my time learning “X” be wasted? No. And in my experience it doesn’t matter very much. Most languages are pretty much the same. Pick one that makes sense to you and helps you learn the fundamentals. The fundamental concepts from language to language are mostly the same. Once you understand those concepts, picking up a new language is pretty easy. Programming isn’t typing or syntax. Programming is thinking.

So, find tools that you like. Try lots of different tools and see which ones click with you. See if the different tools you use all work together nicely and can produce the results you want. Then…

Step 2, focus on that tool and master it. It’s tempting to look around for something better or different, the next new shiny thing. Ignore that impulse. No tool is perfect. You’ll never find the perfect text editor or engine or drawing app. Find something that works for you and start learning it. Remind yourself constantly that nobody cares how your game was made. They only care if it’s fun. You’ll never finish your game if you spend all of your time switching tools. New engines come out all the time and I’m tempted to check them out because it’s fun. But for now I’m sticking with Godot because I’ve become very productive with it, I know it backwards and forwards, and it does everything I need. But maybe it’s not the right tool for you. Maybe it is. You’ve got to try it and see for yourself.

I don’t recommend doing tutorials on every little feature or exhaustively reading every line of the documentation. I mean, do that if it works for you. Personally, I learn by doing. Start making projects with those tools. You’ll learn them just by using them a lot. And you’ll end up learning the things you need to learn.

I hope this has been helpful. Remember, tools are just a means to an end. The important part is the result: a fun game.

Thanks for watching everybody. See you next time!

Published September 28, 2020

More devlogs...

Game jams for beginners

3 methods for screen shake in Godot Engine

Creating a custom Fixed Joint in Godot Engine