Unity3D is one of the most popular game engines. In recent years, more and more great games are being released due to the fact that Unity is easy to use and offers developers a lot of ready-made solutions. Alexey Naumenko, .NET Developer in Plarium Kharkiv, told where to the developer to begin studying Unity.

How I started programming
I studied at the KhAI with a degree in Telecommunications. We had a teacher who designed the drones. Thanks to him, already at the 4th year, I began to write simple C code for microcontrollers that control the transfer of data from the ground to the UAV. Then I decided that I need to learn some actual programming language in order to write on it constantly, and not just to solve narrow problems.
I chose between C # and Java: I read books on these languages, but then I just opened Visual Studio and Java IDE and made a choice in favor of the first one on the “wrapper”. Not the most correct way to analyze the advantages and disadvantages, but I do not regret the choice.
')
Why go to gamedev and choose Unity
In grades 5–7, my friend and I tried to make a game. And although it turned out nonsense, the romance of the process remained with me. Besides, I like to play, especially in ancient RPGs. After university, I worked in several grocery companies: I was engaged in web programming for a year, then I developed software for call-centers for 4 years. But I was constantly haunted by the idea of ​​trying out game development. So in my free time I began to think about which engine to use for the future game.
Many developers use Unity and Unreal Engine, but I wanted to explore all the options. Therefore, I began to understand what popular projects were written on. It turned out that these are either samopisny engines, like, for example, Naughty Dog, or engines, about which there is very little information on the Internet - to work with them, you most likely need to work for a while in the industry and know at least the general principles of game design. engines.
I returned to the choice between Unity and the Unreal Engine. And since at that time I had been programming on .NET for 4 years, the choice was simple: there is C # in Unity, but not in Unreal Engine. One more plus of Unity: I googled some interesting questions for me and almost all of them found attempts to answer. Let not always professional, but the information was, and it was with whom to discuss it.
Unity has an analogue StackOverflow -
Unity Answers . It is very easy to find answers to specific questions at the initial stage, so the entry threshold is very low, especially if a person understands at least the general principles of programming.
How to start learning
I studied already solved problems, similar to those that interested me. Once I was looking for a specific solution, but I did not find it in the
Asset Store . Therefore, I began to monitor the forums and came across a guy who did exactly what I needed, but in the Store his decision was not missed for some requirements. I wrote him a message and offered to buy his work. He was very happy about the opportunity to earn extra money - it was a Romanian tenth grader. Almost my best investment in the study engine: $ 10 plus the same for the Swift-payment.
It is useful for a beginner to see how other people work on tasks, even if it is something primitive. After all, there can be many solutions. When you start, as if you rummage with your fingers in the dark. You do not know how well the chosen solution is: perhaps with its implementation problems may arise in the future or there is a simpler option.
It is always better to be guided by an example. I gutted the purchase: there was a lot of heaped up there, but I redid this solution to fit my needs. While I was analyzing this example, many entry-level questions disappeared. So I began to understand the basic principles of working with Unity and continued to understand the capabilities of the engine.
For a month and a half I studied the base, but not superficially, but rather subjectly - what was needed at that time. At first, a lot of questions arose, as with any new technology. I watched the native code and read manuals to find out why something works in Unity in this way and not otherwise. But, of course, it will be harder and longer, if there are no specific tasks and you do not understand why you are doing this.
It makes no sense to study Unity just like that - it’s worth starting with solving specific project problems. It is better to immediately decide: "I want to make Pac-Man." You start thinking what you need to do this: for example, you need to implement character control. The yellow creature eats white dots. The creature must understand that it has stumbled upon an edible object - it means that you need to start by determining the contact point between the edible point and Pakmen. Then there is a specific problem and the need to find ways to solve it - and this, in my opinion, is the best way to learn technology.
Transition from .NET to Unity in practice
When we interview candidates, we say bluntly that we do not test the knowledge of Unity, but focus on .NET. In practice, we have seen: a person who knows .NET is much easier to train working with the engine than the one who began to learn the language in parallel with Unity. Therefore we invite to interviews people who know .NET and just want to work on Unity. We will train everything further.
Sometimes we interview senior or middle + .NET programmers who are not familiar with Unity at all. At the same time, a person does not switch to the Junior position, because there is no Unity Junior concept in Plarium, and in the work with the engine. If everything is fine with .NET, it will be very easy to master the engine.
What to read
In addition to Unity Answers, there is
UnifyWiki . You can decompile the code and see the result (it is not obfuscated).
At the start, the forums (
answers.unity3d.com and
forum.unity3d.com ) were very useful. I also read Jason Gregory’s Game Engine Architecture book. The author does not speak specifically about Unity, but considers in detail the components and features of the game engines in general. He describes in detail what the engine consists of, what kind of mathematics is needed, how the rendering is arranged. This book expands the understanding of Unity: I began to understand that there is or should be something in this engine, what to ask from it. The only difficulty is that you need to be very motivated to read this book: it is not boring, but quite voluminous.
Benefits of working with Unity
Big companies love Unity for cross-platform. If you wrote something, it builds under both iOS and Android - even with add-ins, but it works immediately without any special dances. Of course, if this does not apply to payment :)
In our case, the advantage is also that Plarium is an official Unity partner with support for Enterprise Support. We are not only quickly responding to requests, but also provide more open code, and we can open and finish something ourselves.
I hope the information will be useful to those who are planning to work with Unity. Successes!