With the vast amount of resources available on the internet and a multitude of freely available game engines at our disposable, it’s become a whole lot easier to get started as a game developer. You could just download and fire up a game engine, navigate over to their website or start Googling tutorials, and before you know it you could have made your very first game. Easy right? Well no. After a certain point, depending on the games you are trying to make, or what you want to learn, tutorials will stop being as helpful and without knowledge outside of how to use a game engine you might find yourself pretty stumped.
Instead, it’s much better to learn valuable skills: how to program external to a tool, learning how to solve problems with code, and learning how game engines work internally. I hope I can spend the rest of this article convincing you why this is the way forward using some truly awful analogies.
Learning to code whilst making games is like trying to climb Mount Everest after having walked up a hill
If you have never climbed a mountain before then you probably shouldn’t start with Mount Everest. It’s dangerous and could possibly get you killed. Making games is difficult, but you won’t die from doing it. In the same way though, if you have never written code before, solved a problem with code, or written a program on your own of a decent size and complexity, then trying to make a game isn’t going to be easy for you, regardless of whether you are using a game engine.
There are plenty of resources out there that will teach you the basics, and guide your hand through making a couple of games, but without strong knowledge of problem solving, coding, and designing your own software, as soon you go out on your own and try and do something yourself you will get stuck and not know where to go.
Frustration from being exposed to problems that are above your current skill or knowledge is an easy way to quit doing something you are passionate about.
Learning to code in an engine is like being a mechanic who only knows how to drive a car
The job of a mechanic is to fix your car, the job of a game developer is to write games. Your ability to solve problems is based on many things such as experience, familiarity with a language or tool, but more importantly a vast wealth of knowledge and understanding.
Game engines are great. They do a lot of the heavy technical work for you, like displaying your game on the screen, handling physics, and enabling your game to run on a variety of different devices, leaving you to focus only on the thing that matters to you, your game.
But what if something goes wrong. What if your game isn’t being displayed on a certain device? Or it starts performing slow? Or what if you want to do something that the engine doesn’t support? Like a different visual style, some sophisticated AI, or you want to make a realistic plane simulation where the engines physics engine isn’t quite up to the task.
It is certainly hard to understand how all of modern game engines work. They are large complex pieces of software that incorporate millions of lines of code and take many people specialised in certain areas of computer science to build them. That doesn’t mean you can’t get a basic understanding of how some of the low-level aspects work or even specialise on a specific one.
Having a little knowledge, about how a game engine works, or specialised knowledge in a specific part of an engine, will not only give you a better understanding of how modern game engines work, but give you the tools needed to solve a wider array of problems.
Picking up a paintbrush doesn’t make you a painter in the same way using a game engine doesn’t make you a game developer
If you look around on the internet you might be led to believe that making games is easy, especially when using a game engine. A common question you see online is people asking which engine is the best, Unreal or Unity. Asking to know the best engine implies that once they learn it, you can make amazing games with it. Truth be told, that isn’t the case. Good games are made by talented people, the tools they use definitely help them, but it’s not the tool that makes the game but the person using it.
In the same way that picking up a paintbrush and painting on a canvas won’t make you a good painter, no matter what paintbrush you have. It’s an understanding of how to paint, and a lot of practice that makes you good. A nice paintbrush just might make things a little easier.
Learning to code in an engine hides the beauty of writing code
The main point behind everything that I have written so far, is that ultimately, learning to write code in an engine, means you are learning a whole let less than you would otherwise, and it can be a distraction from the simple act of learning how to code.
I can imagine everything that I have written in this article can be rather disheartening, and even some what negative, but I am just trying to highlight that learning plane old vanilla programming is the best way to go when starting off. If you have some experience programming and are comfortable writing code, then by all means jump in and get started, but for everyone else I suggest waiting a little bit longer whilst you build up the necessary skills that will ultimately provide you with a strong foundation for when it comes round to working on that dream game of yours.
To read me more check out my blog at: www.gamedevunboxed.com