So you want to learn Game Development. Like many others and me as well (during my early days) you are getting confused about how should you begin, isn’t it?
Ok so let me help you out with that and show a path to becoming a great game developer
I have to clarify something before I start. It may seem like that I am trying to advertise Unreal Engine 4 but trust me I’m not. I use UE4 regularly that’s why all the examples are from that engine and choosing a game engine is not mandatory, if you’re skilled enough you can make your own engine as well.
Decide a game engine: There is a good number of free game engine available in the internet now-a-days.
That wikipedia page will make you more confused because there is a huge number of engines. I would suggest you to stick with the common choices
- Unreal Engine 4 (C++, Blueprints)
- Cocos2d-X, XNA, ObjC, Python (C++, C#, Objective-C, Python)
- Monogame (C#)
- Game Maker Studio (GML)
- Construct2 (HTML5)
- LibGDX (Java)
- jMonkey Game Engine (Java)
- CryEngine 5 (C#, C++)
Ok this list is none the less confusing as well. So how do you decide the best engine? Simple, by doing a quick google search with “X GAME ENGINE vs Y GAME ENGINE” isn’t it?
No! Never search with those terms. You will be forever lost. Because game engine is actually a matter of personal preference. Take me as an example.
- I like the freedom in C++ and I have a good knowledge of C++ as well. So I would narrow down the list and focus on Unreal Engine 4, Cocos 2d-X and CryEngine 5 because these engines uses C++ as their scripting language.
- Ok now let’s head to the websites of these engines and see each engine’s features. I will mostly work with 3D games and is Cocos 2d-X 2D only so it’s not an option anymore. CryEngine 5 looks good, produces good quality graphics but it seems new and the community is not so rich. Now let’s look at Unreal Engine 4. Many AAA studios use this engine, has a nice interface, produces great graphics and has a visual scripting option as well.
- Now let’s see if my pc can handle this engine. Hmm my PC is strong enough.
- Now let’s check out the available resource for Unreal Engine 4 and the community. Hmm the community seems helpful and there are plenty of resources. They also have a facebook group.
- Let’s go for Unreal Engine 4.
So this should be your process of choosing the engine. The best game engine is the one that can handle your project.
Now let’s assume that you have no programming knowledge. Well in that case choose a programming language. Or if you are allergic to programming then look for engines with visual scripting features (Unreal has Blueprints, Unity3D has uFrame ECS Pro).
But trust me there is no alternative to programming. So I would suggest you to find a programming language that suits you first.
Get introduced with the engine: Now that you have an engine of choice and installed that in your PC open it up and BOOM! What the heck is this thing?
All the engines have so many menus tabs and stuffs it really seems like a difficult thing isn’t it? No it’s not a difficult thing it’s just new to you.
So the first thing you do after getting the engine of choice is getting familiar with the interface. So how do we do that? I am glad that you asked
In my case I saw these tutorials Introduction to Editor. They are official tutorials and does a very good job of introducing the interface.
I believe every engine has these types of tutorials if not official then maybe someone have created a series of tutorials on YouTube. Doing a quick search never hurts, so do that. Like I just searched for “game maker studio interface basics” on YouTube and found this good video GameMaker Studio Interface.
Do some small work: Now that you know the interface and will be able to follow a video tutorial with ease you should do something. And by doing something I mean YOU SHOULD CREATE YOUR FIRST GAME. In my case I followed C++ 3rd Person Battery Collector Power Up Game which helped me to understand the basics of a video game development and how scripts function. You don’t need to be a good programmer in this level. That’s the next level.
I believe you can find this kind to basic tutorials for any engine on YouTube. I just searched for “game maker studio my first game” and found this great playlist Make your first game!
Another important thing that you should do is subscribe to the engine’s official youtube and twitch channels. They usually do livestreams which are very informative.
But why we doing this? I mean why don’t we learn the shit out of this engine first and then create a game?
Well I am again glad that you asked. If you start learning all the deep stuffs first you’ll get bored and overwhelmed. Creating your first game makes you believe that you can create games and in fact you have already created one. And you know what? BELIEVING IS ACHIEVING.
Now let’s work on the programming language: So I assume that you are not depending on Visual Scripting too much and have chosen a programming language (which you should definitely do) already.
Now it’s time to work on that language. I had previous knowledge of ++# so I didn’t spent much time on re-learning it. But you should start learning the language that you have chosen.
By learning I didn’t mean buying the best book on the market and reading every single line. Don’t try to learn everything about the language. Rather find a free/paid tutorial series on YouTube/Udemy or somewhere else which teaches you the most important aspects of the language like Data Types, Collection Types, Class, Object, Inheritance, Conditional Statements, Loops, File I/O, Scope etc. Without knowing these you won’t be able to do game programming. thenewboston has a good collection of such tutorials.
Now you may ask that why am I telling to not become an expert programmer first?
Well because becoming an expert programmer is a long process and as you will go forward in the process of learning your game engine, you will start to understand which topics are necessary and which aren’t.
But you must make sure that you can solve problems and your concept is clear. Don’t copy-paste or memorize codes from internet. Read the codes try to understand them and rewrite them by yourself.
Do SMALL project works: Now that you are familiar with the Engine, have a knowledge of the programming language let’s take these to the next level.
Well I have seen people who watch videos after videos and read books after books but can’t make shit. Well that’s because they have the lack of implementation.
By reading a book or watching a video you gain knowledge about a thing but that knowledge is not enough until you test it by implementing it somewhere.
So how do you implement?
You implement by creating projects. By projects I didn’t mean the next Call of Duty Killer.
By projects I mean small project. Following are some good project idea for beginners
- Create a text based game.
- Create a snake clone.
- Create a pong clone.
- Create a Dx-Ball clone.
- Create a Super Mario clone.
- Create a Flappy Bird clone.
Recreating old games is a very good way to learn because you will get familiar with the principles of game programming and by recreating them you will learn to deal with codes.
Keep yourself motivated (most important): Let’s be honest, not only game development but development in general is a frustrating task. You’ll face that you’ve never thought of, your code though doesn’t have any syntactical error won’t compile because of logical errors and more issues and as time passes and you gain experience these kind of problems will NOT go away. I repeat will NOT go away. But as you learn more and more you’ll be able to solve them in easier and efficient way.
I follow some rules in my case to keep my self motivated during development that I will share maybe in a later post. But enough blogging for today. Let me know your thoughts.