Behind the code: what Unity Developers do
At Azur Games, we not only publish partners’ projects, but also develop our own mobile games. Our portfolio contains dozens of titles in different genres: from hyper-casual to midcore. Let’s talk to those who create the code. Three stories of Unity Developers about their journey in gamedev, career tracks and favorite tasks. Bonus: Tips for Unity beginners.
Code Caster in the Hyper-Casual department
— How did you get into gamedev? Tell us about your career path.
Like many, since childhood I wanted to work in game development, but back then this idea seemed an unattainable dream. I lived in a small town, where after university I got a job as a junior specialist in a local advanced IT company: an Internet provider. I was engaged in the development of simple native apps for iOS. It was a great start for a programmer, and I liked everything. It is possible that I would still be working in my native place if, after a year and a half of work, one friend had not shown me an interesting engine — it turned out to be Unity. I was inspired by its capabilities and began to make my first PC game on it.
But the first step is always troublesome — the game was never brought to the perfect condition. But I realized that I had gained new skills and I now want to develop them. As a result, I found my first job with Unity — in the department where I supported old games and implemented various SDKs. And then Azur Games happened. I’ve been here for almost three years — and this is already a real gamedev. So, the dream came true.
— Why Unity?
This is a flexible tool with a large community: almost any problem can be solved by Google and scanning forums. Plus, compared to simpler engines, the language is more progressive — you can do in C# whatever your heart desires .
— What do you do at Azur Games?
I work in the hyper-casual department. Initially, I came here to develop and support old games, for example, popular clickers like Homo Evolution and Zoopolis. Now, together with colleagues, we are creating new games, and we are trying ourselves not only in the hyper-casual. We also take on casual and hybrid projects. For example, there is a game in development where we are targeting a more hardcore audience. There I made one cool tool — a game designer can customize the behavior of the boss almost without my participation.
I was also one of the first in Azur Games to work with our colleagues from the Chinese office. With them, we developed simple ways to help other studios port games to China, and made a special Unity SDK for this. By the way, my background as a native developer was very useful here. The Chinese market is not yet flexible enough to provide a ready-made Unity plugin for any need, so I had to write small native plugins myself.
— What is the peculiarity of a Unity Developer’s work in hyper-casual?
Most hyper-casual games have one core gameplay. You need to perfect it, and then almost immediately move on to the next game. There are many projects, they are all different, and you should be able to quickly rebuild. So, the tasks here are short, but interesting. I like it.
Unity Developer in hyper-casual is not only a coder. I need to be able to set up animations, transitions, UI, and appearance. The peculiarity of the genre is that you are doing the project alone. Everything is completely under your control, but the responsibility is also all yours. Of course, there are things that seem like a chore to many, like making templates or fiddling with SDKs. But I just love this part, it doesn’t bother me at all.
And one more thing: in hyper-casual, as a programmer, you are constantly doing those things that, in total, can become a big game. It seems that you are doing a simple clicker, but in fact it may be part of an RPG system. Therefore, if you are burning to make games — don’t be afraid to go to hyper-casual.
— What’s the coolest thing about your job? And what is the most unpleasant?
I am thrilled with my team. It’s one of the reasons why I’ve been here for so long.
Another cool thing is freedom of action. We have all the work arranged in such a way that you are given a task and almost not kicked in the process. At the same time, an open exchange of views is welcome. For example, if we have a common task and I see that something will not work, then I immediately talk about it and offer my options.
Of the minuses, I can probably name the lack of professional communication. Not communicating with colleagues in the department — everything is just fine here, but working inside the project shoulder to shoulder with other programmers when “we’re all in the same boat”. But this is the downside of working in hyper-casual, where the Unity Developer is essentially a lone wolf.
— What are the career tracks of a hyper-casual developer?
There are several of them. The first one is personal development, and I’m on that path right now. When you do a lot of different projects, your expertise grows. Even If you wrote a “smelly code” on one project, you’ll have a chance to fix it in the next project. Such a gradual development.
The second way is to become a team lead. It is important to evaluate yourself adequately here, so that you don’t turn from a good programmer into a bad manager. The lead should take responsibility for others, see the whole picture of the project, and be able to set tasks. But if you feel strength and desire, this is an interesting track.
The third way: hyper-casual is a good start to move into other genres of game development, for example, casual or midcore. Something like this is happening in my department right now. We are trying slightly more complex projects and are growing in this direction.
Another non-obvious option for growth in hyper-casual: a programmer, if desired, can become a game designer or even a producer. This is quite realistic, especially if you go under someone’s mentoring.
Midcore-Lead-Girl — nothing superfluous
— How did you get into gamedev? Tell us about your career path.
I graduated from the Faculty of Mathematics. During my studies, I did an internship, and after graduation, I worked for some time as a developer of cross-platform mobile applications for Android/iOS. At the same time I got acquainted with C#, before that I worked only with Java.
A year later, I moved as a programmer to another company, where I met Unity. It was love at first sight. I realized that I want to continue to work on Unity games. I found a job as a Junior Unity Developer at a fun start-up where we developed an MMORPG with geolocation. And then I got into Azur for a middle position as a Unity developer. A year later, I was offered to become a team lead, and I have been in this position for more than two years.
— Why Unity?
In game development, there is usually a choice between Unity and Unreal Engine. Unreal Engine is more used for developing PC projects, and mobile games are mostly written in Unity. Since in my previous experience I used C# for cross-platform development, it was very easy for me to switch to Unity. In general, this is a very simple engine with a low entry threshold. You can make your own game and immediately try it on your phone, which was very important for me.
— Tell us more about what you are doing now.
I am leading the Game Object team. We are developing midcore projects — multiplayer PvP games. My team has released games like King of Sails and Trooper Shooter.
As a team lead, I am responsible for a balanced distribution of tasks between programmers, keeping adequate deadlines and solving current problems. I’m also preparing the release. When we have all the features ready, I make a separate release branch and check that everything is fine there. I verify the weight of the build, monitor the crash rate and errors that fall into the analytical system. In general, I keep the working state of the project under control.
In addition, I am a link between project managers and other teams, such as devops. And, of course, I do exactly the same tasks as our programmers. That is, managerial and programmer functions correlate as 30/70. I like the programming part of the job and I don’t want to give it up.
— What is the peculiarity of developing midcore projects for mobile devices?
Firstly, it is a server part of a multiplayer game. Here you need to understand how to work with the server so that the game is responsive and quickly reflects changes in the game world, which is influenced by other players. At the same time, you still need to fight cheaters. In our team, programmers write both the client and server parts. And I think it’s very convenient. Because you are fully responsible for the feature.
Secondly, this is the meta part. In midcore games, a lot of time is devoted not only to the main gameplay, but also to the meta part of the game. This is a variety of leveling up, chests, offers etc. There are some nuances in supporting the meta: for example, you need to worry about keeping everything in the profile so that the player does not lose anything from version to version. If you’re changing any major part of the game, make sure the game doesn’t freeze or crash with an error when the user updates it.
— What is the most pleasant and the most unpleasant part of your work?
The most pleasant thing is completing a difficult task. The most unpleasant thing is trying not to burn out on this difficult task.
I often hear from programmers: “When I got the task, I just caught fire, but at some point it became wildly hard.” This is especially true for R&D (Research & Development) tasks, where there is no definite result. You just need to try something, feel it, and do it pretty quickly. For example, testing the camera: how it flies, how it feels to the player, constantly changing it to improve the feel of the game. You don’t know when this task will end, and you have to constantly communicate with the feature owner to understand what he wants from you. Such uncertainty can strain, pressure. At this moment, it is very important to communicate with the team, share the situation, and try to find solutions together.
— Did you face any difficulties on your way? After all, a girl-lead in game development is not that common.
I know that according to statistics, about 70% of gamedev employees are guys. But personally, I didn’t have any problems. Except for a funny incident at the very first job, when there were doubts whether to hire me — out of fear that I would go on maternity leave. But they took me anyway.
There is nothing like that in Azur Games. We have a super friendly atmosphere, I feel completely free and comfortable with the guys. In general, I am very lucky with the team. We interact very well, we communicate, we develop together. They consult with me, they listen to me. Perhaps because it never occurred to me to solve issues from the position of “well, I’m a girl.” All in all, if your professionalism doesn’t convince people, then these are not the people you should work with.
— What qualities do you think are needed to become a team lead?
A lead is not someone who is smarter than others, but someone who has a vision for the project. To do this, you need to have extensive experience in order to understand the entire development cycle and its stages. The lead is responsible for the integrity of the project and the support of the built architecture within it. Such a specialist must see the strengths of each team member and use them wisely.
It is important to be open, listen to people, and be ready to help. Аt the same time, keeping your finger on the pulse of the project as a whole is your responsibility. You can’t neither let everything go on the brakes, nor breathe down everyone’s neck, follow every step. True, you will have to sit a little over the junior at the beginning, but still it is important to give him space for development, and the opportunity to offer his ideas.
There are two ways to lead. The first is to grow into a team lead within the same company. Then you already initially feel the team and understand who and what you can count on. That’s what happened to me. The second is to come as a team lead to a new place, to a new team. This is, of course, more complicated. But if you are a leader by nature, nothing is impossible.
At the junction of a Team Lead and a Tech Lead
— How did you get into gamedev? Tell us about your career path.
I’ve been in game development for more than 10 years now, and I specifically aspired here. However, it didn’t hit right away. I graduated as an engineer, worked for a company that had nothing to do with games. But at some point I realized that I couldn’t do it anymore — I was only interested in game development. So I found a programmer vacancy in a small gaming company that made PC projects. There was no money, but I was in my favorite business. This is how the “bright path” began: I’ve changed several companies, worked on four large commercially successful midcore projects. And after a few iterations I got to Azur Games, where I switched to casual games.
— Why Unity?
I like the low entry threshold. To start doing something on Unity, you just need to watch one video on YouTube. Also there are developed tools for the engine, large community, and asset store. For almost any problem, you can find a ready-made solution. And, of course, support for a large number of platforms.
— What do you do at Azur Games? What projects are you working on?
I’ve been in Azur Games for 4 years now. Became a lead a year ago. Now there are 10 programmers in my team, and three projects are in the works: hyper-casual, casual and NFT. So, there is a large scope of work with different teams, in different genres, and that’s great.
The managerial part of my duties is to recruit new people, evaluate current ones, monitor their salaries, sick leave and other daily processes.
At the same time, I am immersed in the code, on some projects I lead the development as a PM, I participate in the general company’s continuous integration. In other words, I combine the roles of Tech Lead and Team Lead.
— What is the coolest and, conversely, the most unpleasant thing in your work?
There is such a stereotype: it seems like it’s cool for a programmer to work on midcore, but on casual games – not really. In my opinion, it’s not like that at all. I like my job now. I’m glad it’s casual and not midcore, because I can work on three projects at the same time and do three times more.
In hyper-casual, everything is done quickly: there are no long midcore releases, A/B tests give instant results, the distance from the idea to implementation is minimal. Everything is very technically organized — this allows me and the whole team to devote time to self development. After the release, a window for refactoring appears, as well as the opportunity to do some cool technical things. On midcore it is difficult to allocate time for this, but on casual games it remains by default, and this allows you to develop faster.
There is nothing unpleasant, there is something that has not yet been brought to the desired result. For example, the difference in organization within project teams. When the team is well organized, the development is relatively measured, without stressful situations. You can try new approaches, solve interesting technical problems. Juniors quickly join such a team and quickly gain experience. We want to make sure that any of our teams, regardless of the project and the number of employees involved, is a “dream team”. And we are consistently moving in this direction.
— In your opinion, what does it take to become a lead?
If we are talking about hyper-casual, it has its own specifics: fast iterations, a lot of interaction and communication with the team. The job of a lead is 80% communication, and if you love it, you’ll do better. If this is not easy for you, you will have a hard time. There are displeasing moments, you have to ask people strict questions, demand from them — you also need to be able to do this. Fortunately, everything can be learned. But if you’re really an introvert, then it’s probably better to choose a purely technical direction.
Bonus: Tips for Unity beginners
How to get into gamedev?
- Love games and strive to work here.
- Know how to deal with the engine. Learn C#, at least with a quick tutorial. Watch free guides on YouTube.
- Try to make your own projects. Try, and try, and try.
- Go to interviews. Do test tasks. Get feedback and upload projects to GitHub.
- Join the community. Try to help others. Participate in game jams and hackathons.
- Actively seek internships and mentoring.
What should a Unity developer know and be able to do?
- Know very well the capabilities of the engine and C#.
- Be able to quickly find any needed information.
- Be fluent in English at the level of reading professional forums and documentation.
- Know what all these concepts are about: 3D mathematics, object-oriented programming (OOP), ECS.
- Know how to work with Git.
- Know the basics of optimization in Unity.
- Be able to read other people’s code.
- Be proactive. Constantly develop in the chosen direction.
- Do not shy away from people, be open to interaction in a team.
- Do not be afraid to ask questions yourself and answer the questions of colleagues.