So you want to make video games?
You’re probably wondering how to make cool games. But you have no idea where to start...
Crossposted on App Goodies
Introduction
You’re probably wondering how to make cool games. But you have no idea where to start...
You’re not the only one with such problem. There are lots of people who encounter this issue and try to learn through YouTube tutorials. Some people succeed in getting grips on the programming, but mostly just give up and move on.
Sure you can always ask people on forums, but most people will simply reply with a generic solution like “learn to make a Pong first” or “watch online video tutorials”.
Solutions are great and they work, but you’re likely to find them either outdated or just dull and ineffective.
Looking back, I had the same issue gaining knowledge from one video or another, trying to learn concepts of programming through tons of reading and watching videos (some were useful, others weren’t as much).
In the end, I succeeded making my first simplistic and most generic game on Earth. However, I gained a lot of knowledge from it and next time I was able to make a more advanced game, which was followed by even a better one.
I myself have a long way to go and do not mark myself as a “veteran” of the gaming industry as it would sound selfish and inaccurate.
The point of this article is not to teach newcomers to program games or use engine, but to point them in the right direction. Some much more experienced game developers may find some of my writing misleading or incorrect. If you’re one of them, feel free to let me know and I’ll change it accordingly.
Also, this article isn’t intended for people who wish to learn to make game engines from scratch. It’s intended for people with little to no programming experience, although the latter are highly welcome.
This article aims to target people who have interest in making games as a hobby. Making games for commercial use is a different story to tell.
With that being said, let’s get started!
Do not touch the game engine (for now)
If you have decided to make Unity/UE4/CryEngine your starting point in your game career, you’re likely to have a freshly installed copy of it on your desktop. That’s good, but you won’t need it for now as you’ll have to learn to program first.
An average newcomer (with a big game idea in mind) is likely to download and install a game making a program, open it, find it confusing and just uninstall it and move on.
A small fraction of these people may watch YouTube tutorials and read online articles on help. Some may find it boring and too hard to read and move on.
A smaller fraction will get basics of engine and try to make their first game. Once again only a smaller fraction will succeed, thus gaining more experience and moving on. They become more confident in concepts of engine and programming without having to rely too much on an online material.
This can be easily represented with a funnel chart.
Obviously, the funnel is a rough representation on how many newcomers actually become experienced game developers.
The main problem is that people like you become demotivated of something that looks rather hard to master, like an engine or a 3D modeling software.
Therefore, not only it’s essential to learn to program first, but it’s also important not to get tricked by the looks of the complexity of a program.
Learn Basic Vector Maths
Before you actually start learning programming languages it is strongly suggested to have a moderate knowledge of vector maths. It’s commonly used to specify direction and magnitude of the position of your object (e.g sprite) in the world.
Mathematics help you to improve your critical thinking and logic thinking skills, thus allowing you to creatively come up with solutions to your various problems.
Learn to Program
You may be wondering, what on Earth should you do that if you don’t need a game engine? Well, you need to learn how to program first.
Which in turn makes you wonder how it will motivate you or even make engine appear less hard to master. The answer is simple – you need to get to know the concepts of programming before you get to learn the engine itself.
The most common question which is being asked among newbies – “What programming language should I learn?” Some go with the most common languages like C++ and others go with the programming language the engine supports (e.g Unity newbies likely to learn UnityScript or C#).
While both ways are good, personally I went through more than one programming language. I didn’t master each and every single one of it mind you, I didn’t remember every single function either. What I did was simply getting to know how programming languages operate (learning if conditions, for loops etc.)
If you hear some developer say that he “knows fluent C++” he is either a genius or doesn’t know what he is talking about (mostly latter). It’s nearly impossible to learn every single function C++ has to offer. C++ is a common language which can be used both for making video games and designing operating systems.
You don ’t have to learn all of them, or even most of them – functions you’ll use the most will stay in your head.
It doesn’t mean that you don’t need to learn it. Not at all! Like I mentioned before, you must know basic stuff like conditions, for loops, namespaces etc and the rest such as functions comes from the documentation.
There are tons of resources on the internet how to learn a specific programming language. I highly recommend Codecademy as it offers interactive lessons. They also give you an opportunity to create small projects like a website. There are also paid alternatives, such as TreeHouse or CodeSchool.
You can always try googling for YouTube tutorials or articles related to programming.
Get to know engine concepts better
Sure you can always learn to use the basic user interface of the engine, but in the end, you need to learn how to code in that environment and know how that engine processes code. For instance, Unity engine has a component based design, which means that if you attach a script to the object, it will be able to access all settings related to it, such as scale, position, and rotation.
With that in mind, you’ll be able to apply your programming experience you have recently acquired to the concept of the engine, thus allowing you to get started making your first project.
Once you get the concept (or the way engine works), you’ll move down the funnel!
Creating your first project
Now try making another game which is relatively bigger in size (in terms of features). However, don’t add to many features as project will take a long time to finish, by the time you may feel demotivated and stop working on it.
It’s okay to stop working on it – you learn something new more or less. If you don’t however, then it’s best to stay on the project until you gain something from it.
Now what?
1. Communicate
Join game developer communities. Ask questions if you have any problems regarding the project (just Google before asking).
You don’t have to join 5 forum websites at once, as being active on all of them is just a plain waste of time and energy. Get into a simple community where you can regularly participate in
2. Participate in Game Jams
This is a good way to get to work with other people on a game under time pressure! If you consider game development as your career, then you can put it into your CV for companies to see.
You can check out some upcoming jams here.
Ludum Dare and Itch.io are good websites for game jam as well!
3. Try new things
Technology is evolving faster than ever! It feels like Oculus Rift has been released just yesterday! Try out new things, experiment with them and think of ways how the new hardware can be used to create your game or modify your current one.
Apart from that, never be afraid to try to make something you’ve never done before. Carry out the research or get help from the internet in order to succeed.
Conclusion
Now that you have reached the bottom of the funnel, you can improve your skills or even take on larger and more challenging projects.
I will add some more info if needed. Let me know what you think of this writing by making a comment below.
If you enjoyed my lengthy tutorial, be sure to check out my blog for more of these!
Read more about:
BlogsAbout the Author
You May Also Like