Let me jump straight into the answer and it is a big fat YES. Now, that has led to a lot of other questions. If you have to learn programming to build games, then what are these game engines for? Aren’t the modern game engines too good to help you build games without much programming? Don’t they have a lot of tools that help us build games fast without coding too much? How much programming should I know to start?
I have been working on games for a few years now and most of the time I was using Unity and have seen a bit of Unreal(I hope you would have at least heard about Unity and Unreal since you have landed on thegamertalk.com). Let me tell you both of these engines are awesome and make a game developer’s life easy(yeah! I said easy). These engines are really powerful and lets you have exceptional graphics, close to real-life light effects, lets you switch to various platforms with almost no code changes, simulates physics well and a lot many other things. So, isn’t that good enough for a newbie to create a good game? Unfortunately, no!
Let us assume that you don’t know how to drive a car(if you don’t, learn it, trust me you will love it). Will it be of any help if you buy a fully automatic car with park assist, ABS, EBD and hell a lot of other features? Can’t you just drive it? No, because, you don’t know the basics of driving. It is similar in game development as well.
If you ask me, you should learn and understand OOPs. When I say that, I mean only if you are planning to be a complete game developer who knows how the game works end to end. Objects or Object Oriented Programming is the base that you would need before jumping into any game development. Trust me, be a bit old school and learn the basics (if you want a bit more boost, Unreal 4 uses C++ and Unity uses C# for its game logic. That is a good enough reason to learn OOPs).
So does that mean that I have to use that boring black or blue editor to learn to code first and then learn how to develop games? Not really. You can learn to code using Unity or Unreal if you can hold on to yourself and not slip into the vast world of these engines in the initial days of learning. Learn OOPs, make your hands dirty and try to do the basic programming assignments. You will get hundreds of them if you just google. Once you are comfortable, I mean really comfortable with basic programming, slowly start learning how to use various tools and components in these engines(which one of Unity or Unreal should you choose? It’s up to you, I am inclined towards Unity because it was my first love). If you are someone born in the early 90s or before that, you must have played some awesome games in your childhood – Super Mario, Tanks, Tic Tac Toe(if not the digital one, definitely pen and paper). Slowly try to build the simplest of games one after the other. Do I mean that you have to create a copy of the already existing games? Yes! recreate them! While learning Mathematics in school, you did not invent a new problem and solve it. You learned Mathematics by learning to solve already solved problems. Let us do the same here as well. Let us try to build what was already built and then learn how to build new ones. Another advantage of this approach is that, if you get stuck during development, there is always ready-made help on the internet. As long as you understand what each line of the code does, you are good.
If you want to really take it to the next level and be an ace developer, before jumping into any game engine, build a couple of games in any programming language, be it C++ or Java or any other. This will definitely help you understand how a game is actually built and more importantly when you start using game engines, you will be in a better position to appreciate the numerous tools and components in these game engines and what they have automated for you. Won’t you be able to appreciate an automatic car better if you know how to drive a manual one? Yes, right? So, yes it is in game development as well.
So the bottom line is that you have to be a bit old school, learn the basics, practice by recreating and then start the journey.
Good luck! I mean it 🙂