How to Learn Unity3D: A Roadmap For Complete Beginners
Learning to code is not easy. But learning digital game development is one of the challenging topics in the computer world. Computer games always use the latest improvements and methods in terms of computer science. And also it is directly related to various topics in physics, mathematics, and arts. Before the game engine ages, in order to develop a very basic game, you had to have good knowledge in various topics and a mid-range game(today, maybe you can call them basic games) could be developed only with a decent number of people. Fortunately, game engines save the lives of independent game developers. Today, it is a fact that you can create a game without writing a single line of code, without any knowledge in analytic geometry or Newtonian Physics. Nevertheless, in order to create a complex and high-quality game, you still need some knowledge in several subjects. This post is not only a roadmap for beginners of Unity3D but also a roadmap for beginner game developers. Here, by the term game developer, we mean the people who write code for games. You should distinguish between a game developer and a game designer. Game design is another subject which we will not much talk about it, here.
1- Be patient
Even if the argument on the 10000 hours rule is going on, it is a reality that developing a new skill generally takes time. This is also the same for game development. As we mentioned above, you have to develop several skills to develop games. Patience is the key to learning Unity3D or game development.
2- Master on algorithms
Fundamentally, coding is nothing more than developing algorithms. If you do not have any prior experience in programming, you should start from the basics. If you have any knowledge in any programming language -even a little-, try to do several algorithms examples. Likewise, it can be a good idea to study from a good algorithms and data structures book. In addition to this, you can reach several tutorials and also follow courses from leading universities on YouTube.
By improving your experience in algorithms, you do not only gain coding skills but also analytical problem-solving abilities which are also important in game development.
3- Learn C#
Even though you can use a visual scripting tool like PlayMaker, without knowledge of C# you are very restricted in Unity3D (or C++ for Unreal Engine). Therefore it is essential to learn the main programming language of your game engine.
In the beginning, you do not have to be a C# master. Learning only the fundamentals of C# is sufficient for creating basic games. But you should study it regularly and try to improve your programming skills up to advanced levels. You can find several C# tutorials -basics or advanced- on Youtube and Udemy.
4- Learn how to ask questions
The first rule of learning something is asking true questions. You have to learn how to ask questions either in Google or in developer forums or in Facebook Groups.
You should understand how Google works and how you can benefit from it. This is also true for any search engine included platform like Youtube, Pinterest, Facebook Groups or developer forums.
When you encounter a problem or want to learn how to do something, go to Google and try to express your question, clearly as if you are asking a friend of you. Most of the time, your question and solution of it are somewhere on the internet. Probably you are not the first one who encounter this problem, and definitely you will not be the last one. Sometimes, you may not express your question clearly, especially if your English is limited. If you see solutions on Google results that you are not interested in, then try to change your search query expressions.
You have searched your question on Google and you could not find any solution for it. Now it is time to ask in Unity Forums, Stackoverflow or Facebook groups. It is also a nice habit to make the last search on that platform also.
When asking your question in a forum like place, define your problem and express what you think about it. What did you try before to solve this problem? Do you have any approximation to solve this problem? You might try to solve a problem and obtain an unexpected result. If possible, reinforce your question with images or videos.
People are generally want to see your effort before they answer your question and this is a considerable behavior. The same questions are always asked by beginners. Therefore, people may not answer your question if it is easily findable.
5- Follow a few basic game development tutorials
There are several tutorials out there. Unity Technologies has been creating several nice tutorials from beginners to advanced developers. In addition to this, Unity has a very nice online community and people are open to sharing their experiences and knowledge.
If you have experience in any other programming language, you can easily follow official Unity tutorials. These are good starting points. If you are new to Unity, go to Unity’s official pages and follow some tutorials at first. This will give you the opportunity to be familiar with how Unity works. In addition to this, you can find nice introductory tutorials on Youtube.
The most important thing here is to follow tutorials which are created recently. Unity changes its API year by year and several new features come up with every version. In order to prevent conflicts; be sure the Unity version, which the tutorial created for, consistent with your Unity version.
6- Create Clones of Classic Games
One of the best learning methods is to copy something for learning purposes. There is nothing wrong to copy a known game for learning purposes unless you do not present as if your own work or commercially benefit it.
Choose a classic game like Pong, Tetris, or Flappy Bird and try to create the same stuff. Adding new features in your own way is excellent.
7- Learn Mathematics
There is no doubt that a good mathematics background is essential for game development. At least analytic geometry and vector algebra will give you to solve several problems easily. In addition to them, differential calculus, vector calculus, linear algebra can be useful sometimes. How much you are comfortable in mathematics, that much you will have the power to solve your problems in game development.
8- Study Physics
Most games are simulations of the real world. And physics laws are the laws of nature. You should at least have a background in Newtonian Mechanics. For advanced developers, optics also will be useful.
9- Understand Arts
As a developer, you are not directly responsible for the art side, most of the time. Nevertheless, it is useful to understand what an artist or game designer tries to do. Or you some interest in at least one visual art, like painting, photography or cinema, will be great. Lighting techniques, color theory, composition, art movements, cinematography are the main interests of a game developer.