Why you should learn Programming Before Game Development

If you want Unity3D, Unreal Engine or CryEngine
tutorials, like, comment or subscribe for more! Welcome to another video by Jesco The Rising
Phoenix Dev and today, we are going to go over some important information about why
it is important to learn programming before game development, how to choose a game engine
and programming language. So, sit back, relax, and let’s learn some
important facts. Let’s talk about why it is important to
know programming before learning a game engine and the steps you should take before undertaking
this exponentially more difficult task. Before you can pick a Game Engine to use,
you must pick a programming language. The key part to this is when you pick the
language of choice, you forget about every other programming language until you can create
non-trivial applications with it and are very comfortable with the syntax of the language. What is it that I mean when I say non-trivial
applications? A non-trivial application is any application
that is any task that is not quick and easy to accomplish. It may mean “extremely” difficult and time
consuming. And to get to this level, it may take you
a few years, so don’t think this is going to be a very simple and quick thing that could
happen in the span of a month. Many programmers don’t get to this level
until around 3 years after they have begun studying in earnest. The reason this is important is because once
you understand the fundamentals of programming and using a single language, you only have
to worry about that game engine’s API and the editor. This will reduce the amount of headaches that
you will have when learning that particular game engine. Another important point to note is that when
learning the fundamentals of programming and a single programming language first, is that
when you decide you want to learn more programming languages, you will find it is much easier
to do so because the only thing you are learning at that point is that particular language’s
syntax. Now I know the next question will be; How
do I choose the programming language I should learn? The answer is simple really. What is it you want to do? If you want to learn game development and
the tools that most major companies utilize, then the three very obvious choices are CryEngine,
Unity and Unreal Engine. They all have pros and cons associated with
them and each have learning curves in different aspects of using them. The next question I often see is; Which game
engine and programming language is the best to learn and use? That answer again is very easy. There is no best, they all can achieve the
same effects depending on the skills of you and / or your team. There is no such thing as the best programming
language as they are all designed to fill a need and a role. On the flip side, the programming languages
that are mainly used in game development are Assembly, C, Lua and C++. C# is a relative newcomer to the party. As stated before, each programming language
fills a very specific niche in the world of game development, so don’t get caught up
in thinking you need to learn and know all of them to get started. But let’s take a step back and look at this
a little more closely. If you are looking at game engines first to
determine which programming language to choose, go based off their features. Every Game Engine that is available to the
public has a full features list that is constantly updated to reflect new features introduced
with every release. I am going to shut up for a moment and showcase
the features in CryEngine, Unity and Unreal Engine along with a link to them in the description
box. Now that you know the features of each major
game development engine and have chosen one, you can now pick the language based off what
that engine uses, the two programming languages that are used with these Engines are C# and
C++. CryEngine and Unreal Engine use C++; CryEngine
and Unity use C#. And before you say, “Jesco, how do I start
learning?” I’ve got you covered. In the description box below, I will have
the links that I have showcased in the video. And we should begin with C++. If you are using Windows. The best IDE or Integrated Development Environment
to use is Visual Studio although there are many more that are decent that I will not
go into. MacOS and Linux have other IDEs that they
use and I am not familiar enough with them to offer a good suggestion. You should definitely start with reading and
following through the Basic Concepts of C++ listed in the Microsoft documentation which
also has a very nice link to the C++ Language Reference guide. For further understanding, The C++ ECMA 372
Standard is a great place to really gain in depth knowledge on the language. Following these, you can look at the official
ISO C++ standard for C++ 17. Granted this can be a bit on the pricy side
as it is 209 dollars and 99 cents. Another option is by reading books on C++,
the book I recommend is Mastering C++ Programming by Jagannathan Swaminathan (sorry if I pronounced
his name incorrectly). Now let’s begin with C#. C# is perhaps my
favorite programming language and the one I default to using for most of my projects,
unless the task calls for otherwise. Again, Visual Studio is the hands down number
one IDE for using C#. If you are on MacOS or Linux, then I would
suggest Visual Studio Code as it is a lighter weight version of Visual Studio but still
is very nice. Microsoft has a very nice programming guide,
a getting started with C# interactive tutorial that is designed with beginners in mind and
a very nice language Reference on their website. It gives you all of the general programming
concepts you would need to get started and to really give you a nice jumpstart into learning
the language. When that well has dried up and you want to
sink your teeth deeper into the language. Look no further than that Standard ECMA 334
C# Language Specification. It goes deep into the language which includes
every aspect of the language and how it functions. You will learn everything you need to know
from there and is a great reference even when you are a seasoned developer. The book I highly recommend for Beginning
C# is written by Tom Owsiak called Beginning C# 7 Hands on The Core Language. He does a fantastic job at teaching you the
core C# language and syntax, along with programming techniques such as Object-Oriented Programming. Studying these resources and practicing everything
that you learn will give you all of the knowledge you need to be proficient in C++ or C# programming. The key to remember is to practice, you aren’t
going to learn by just reading or watching other people write code. It is on you to make sure you write the code
yourself and experiment with the knowledge you gain to really facilitate learning. Now, let’s dive into why you should study
the basics in programming before going into any form of specialized development like game
development. Game Development is comprised of many different
parts that can require a specialist; you have graphics programmers, sound programmers, gameplay
scripters, level scripters, network programmers, game engine engineers and Physics Engine developers. And to be honest, that is just naming a few. Even when using a Game Engine like Unity,
CryEngine or Unreal Engine; They all use intermediate level programming concepts and really don’t
hold your hand so much as a beginning programmer. The documentation explains things in a high-level
detail that more experienced programmers are used to. And it gets worse when you look at example
projects or templates. The code is commented or self-documenting,
but it is not normally framed with someone who has never dealt with programming before
in mind. Once you have become proficient in your programming
language of choice, you can then move on to either learning more programming languages
or starting to learn to use the Game Engine you want to use. Then you can follow up this video and check
out some of my tutorials on whichever engine and language you have chosen. This has been Jesco The Rising Phoenix Dev,
and I’m signing out.

Tags: , , , , , , , , , , , , , , , , , , , , , , , ,


  • 火彊 龍 says:

    What about work in professional company what code need to do c++

  • 火彊 龍 says:

    Or c#

  • Demosthenes says:

    I disagree with this video, you do not have to learn any form of programming in this day in age to make a game(s) and release it on a single or multiple platforms, hobbyist, like myself simply do not have the time to learn a complex programming language to develop a simple platform game that with most modern game engines can be accomplished in around 10 – 20 minutes.

    The only time I can see learning a language like c,c# or c++ being worth the the time of day is you are working towards a career where programming Must be a prerequisite, or you are just a code enthusiast with masochistic tendencies 😀

  • c00pala says:

    As someone who spends a significant amount of his time answering questions from beginners, helping people learn to get into game dev and working professionally as an application developer, I can say that this advice, while most people hate to hear it, is spot on. If there was one piece of advice I give over and over, it's this.

    You don't HAVE to learn coding first, you CAN learn it as you go – and yes, many of the major game engines are good ways to do this, they provide context and incentive, which a lot of people prefer and need to learn effectively – however, this is usually in direct contrast to the advice given by myself and many others in the field to newbies. Learning to code while also learning the ins-and-outs of game development, while possible, is a very hard route to take and the first thing I tell people who come to me struggling is to step back, take a breather and go learn to code in a different context.

    It won't make game dev magically easy but it sure as hell helps.

  • Imperial Watch says:

    Many dislikes here, yet the comments are mostly positive 😮 I suspect some beginners were not quite happy with your message.

  • Gabriel Oliveira says:

    Why so many dislikes?

  • Rishi k Minds says:


Leave a Reply

Your email address will not be published. Required fields are marked *