Anyone who knows anything about programming knows that Unity 3D is one of the most popular game engines out there. Thanks to its usability and the solutions it offers, developers have been able to use Unity to release a huge number of really great games in recent years – a number that continues to grow. Check out our interview below with one of our .NET developers at Plarium Kharkiv, about what Unity means to him.
How I started programming
It all started for me at the Kharkiv Aviation Institute. One of the teachers in my telecommunications course constructed aerial drones. His work on this inspired me to start writing simple C code during my fourth year.
This code was used to help transmit the data from handheld devices to the aerial drones. It was a short leap from there to learning a more relevant programming language.
I initially went back and forth between C# and Java. I did everything I could to learn more about them before finally just opening Visual Studio and Java IDE to compare them. I chose C# based on what I saw there.
That’s not the best way to analyze the pros and cons of the programming languages you’re interested in, I admit, but it helped me make my choice and I’ve had no regrets since.
Choosing game development and Unity
When I was in middle school a friend and I tried to create a game. Nothing special came out of it but the thrill of the process never left me. It helped that I’ve always loved playing games, especially old school RPGs.
Later, after graduating from the Kharkiv Aviation Institute, I worked for several different companies. I spent a year doing web programming and then four more years developing software for call centers.
During this time I couldn’t shake the thought that what I really wanted was to be a game developer. It wasn’t long before I started thinking about what engine I would use for this game idea I had.
Many developers use Unity and Unreal Engine but I wanted to explore every option. That led to my researching of engines used for popular projects. Almost all of those turned out to be either self-created engines or engines that have flown under the radar.
What I learned is that one generally has to work in the game development industry for a while and know at least the basic principles of game engine development before working with some of these lesser known game engines.
So that’s what I did, which led to me facing another choice: Unity or Unreal Engine? Since I had been a .NET developer for four years, the choice was simple – Unity had C# in it, while Unreal Engine didn’t. But there was more to it than that.
Unity has a forum, similar to StackOverflow, called Unity Answers. It’s easy to find answers to specific questions when you start off because Unity is pretty easy to pick up. It’s even easier if you already understand basic programming principles.
Where to start
If you’re facing problems, a good idea is to go back and find examples of similar problems that others have already solved. You can do this by asking on forums or reading literature on Unity (more on that later). For example, at one point I was looking for a specific solution but couldn’t find it in the Asset Store, so I started monitoring forums.
While doing this I came across a guy who had the exact solution I needed. This guy, a Romanian high-school student, sold me his solution for $10 – to date still the single best investment I ever made.
Even a seemingly basic problem can have a vast number of solutions. When you first start it may feel a bit like you’re stumbling in the dark. You have no idea whether the solution you chose is actually any good or not.
I studied the solution I purchased and tailored it to my needs. The more I studied it the more questions I had answered. That’s how I came to understand the basics of Unity and its capabilities.
What I needed back then was to acquire a pretty detailed knowledge of the Unity basics, which took me about a month and a half. At first I had numerous questions that I tried to find answers for by reviewing code and studying manuals. I wanted to know exactly what made Unity work the way it did.
There’s no point in studying Unity unless you have a reason for doing so. You learn the most while trying to find particular solutions for your project. I recommend that you start by defining what you want to get as a result.
Let’s say you want to create Pac-Man. Start planning the steps you’ll need to take to achieve this goal. In the case of Pac-Man, one of these steps would be implementing character control.
What is Pac-Man? It’s a yellow creature that eats white dots. The creature must know that an object is edible when it runs into it. Therefore, we need to start by defining Pac-Man’s contact with an edible dot.
So you end up with a particular task to solve. I think that’s the best way to study a technology.
Switching to Unity from .NET
Here at Plarium, we’re honest with applicants from the beginning. We’re not interested in their knowledge of Unity but in their .NET skills. It’s way easier to teach someone with strong .NET skills how to work with the engine than someone who’s just started learning .NET.
That’s why we’re interested in .NET developers who want to work with Unity. We can teach them everything they need to know.
Sometimes we interview Senior or Middle .NET developers who have never worked with Unity before. That lack of Unity experience won’t result in a demotion to a Junior position because here at Plarium we don’t have any Junior Unity developers. If their .NET skills are good enough then they’ll have no problems mastering Unity.
Along with Unity Answers you can also refer to UnityWiki, which allows you to decompile code and see results.I’d also recommend the following forums for beginners: answers.unity3d.com and forum.unity3d.com.
Jason Gregory’s “Game Engine Architecture” is worth reading. It’s not exclusively dedicated to Unity but rather to the components and peculiarities of game engines in general. The author describes what an engine consists of, the kind of math you need, and explains what rendering is in detail.
This book expands your understanding of Unity, gives you perspective on what you can find in Unity, and what you can use it for. The only drawback is its size. You have to be really motivated to read it because it is really comprehensive.
Pros of working with Unity
Companies like Unity because of its cross-platform nature. It allows you to build whatever code you write, both for iOS and Android. It still requires applying some add-ins but in general it’s rather easy.
Plarium’s official partnership with Unity is a huge plus for us. It allows us to get Enterprise Support, which means that our requests are answered faster. It also helps us obtain more open-source code and makes it possible to study and further develop it.
I hope this information helps those of you planning to work with Unity. Good luck!