
We will tell about the features of work in game devs, about the skills that should be learned, about the test task and about the interview.
Not long ago, gamedev seemed to be a dream territory and the privilege of a circle of favorites, but every day more and more companies appear that work to create projects of various genres and trends. This increases the chances of finding their place under the sun in the realm of demiurges, on whose will amazing worlds are born from the lines of code.
We appeal to programmers who have only stepped on the path of searching and self-determination: have you thought about a career in the gaming industry? Any profession has its advantages and disadvantages, so we will not convince you that this is the embodiment of the cherished dreams or an endless series of exciting adventures. We will tell about the features of work in game devs, about the skills that should be learned, about the test task and about the interview. Perhaps this information will help you make one of the most important decisions in life - the decision to create games!
')
What skills should a candidate have?
If you are applying for a programmer position in a game development company, you need to have a lot of special skills. In addition, it is desirable to have knowledge in the field of applied mathematics, computer science and physics: it is likely that you will have to rely more than once on a theoretical basis in solving practical problems.
From the basic skills that a candidate should possess, it is possible to single out the modeling of physical processes and graphics, the use of various coordinate systems and spatial turns, and the understanding of vector algebra. It is also necessary to have a clear understanding of the platforms to be played and their limitations.
The specificity of requirements for a programmer is also determined by whether he will develop small browser games, mobile applications, or large AAA-class projects. Depending on the size and type of product being created, a certain technology stack is needed.
Being engaged in complex, large-scale games with high performance, experts work with custom engines and frameworks, which requires knowledge of the C ++ language. When creating mobile applications, programmers can use the native toolkit for a specific platform and the corresponding gaming libraries. However, more and more large companies are opting for cross-platform engines such as Unity.
In our opinion, Unity is the best game engine for beginners. The accompanying documentation on the official site contains conveniently systematized, detailed and understandable information presented. Simply enough, for example, to learn how to add a game object, define for it a complex of behaviors (go - run - shoot), expose the light and so on. Another significant advantage of the engine is minimal porting costs.
As for programming languages in Unity, the standard condition for a candidate is possession of C # (less commonly UnityScript and Boo). However, these skills in relation to the language arsenal of the applicant are not exhausted: it is desirable to have knowledge of Objective-C and Java in order to create native plug-ins for iOS and Android.

Do not forget about the time requirements for the development of browser games. Whereas previously, Flash and ActionScript were used to create them, now they are increasingly turning to HTML5 and JavaScript. Some experts are experimenting with the relatively new technology of WebGL.
If you are not embarrassed by the amount of knowledge and skills that a programmer working in the gaming industry should have, and you are still eager to test your strength in this area, it’s time to get acquainted with tips on how to perform a test task.
Test Assignment: Success Secrets
What is a test task? In most cases, the candidate is offered to write a mini-game that meets certain requirements. So that such a task does not put you in a dead end, it is desirable to have at least a little experience in this area.
We do not in any way encourage sacrificing years for this goal. On the contrary, it is much more efficient to work on small projects, while spending as little time as possible. The task of the initial stage is not a competitive product ready for release, but the acquisition of the skills and technologies necessary for its creation.
Let's return, however, to the test task. Pay special attention to the code that is the expression of your thoughts and the essence of the architecture you have built. It should be as structured, correct and functioning as possible. Be inspired by pure scripting with a witty quote: “Write the code, assuming that all programmers who will accompany your program are violent psychopaths who know where you live.”

Numerous bugs do not characterize the expert in the best way, so you need to test the game, eliminate critical errors and honestly admit to your mistakes and not fully implemented functionality. We do not recommend to compile a ten-page documentation, but a small accompanying text, in which, along with a description of actions, you will note your weak points, will have a positive impact on the evaluation of your project.
Another important aspect of working on a test task is time. To successfully cope with the task and have time to deadline, you need to prioritize: to understand what should pay more attention. For visualization of the main character, for example, standard solutions are quite suitable, while troubleshooting, working on the application architecture and user interface requires maximum effort.
You do not have time to complete the task? Not scary: each person creates at his own pace, each may have urgent business. It is necessary to contact the employer in advance with the request to postpone the deadline and offer to send an intermediate result - what you have done so far.
If you competently express your thoughts with code, this is obvious even in an unfinished project. Almost ready-to-sell game with assets and graphic elements is commendable, but the desire to cope with everything alone can be regarded by the employer as a disadvantage. An employee is not expected to independently realize his ambitions in conditions of unlimited time, but to interact with other specialists in order to achieve the best result in a timely manner.

At this stage, you should listen to yourself and understand if you are ready to work in a team. If not, you can start creating projects in the indie direction. However, before you decide and make a final decision, analyze the positive and negative aspects of this gamedev sphere. You will have the opportunity to control all the processes, independently realize your ideas, but it is likely that you will encounter resource constraints and other difficulties, because of which the development of the game may be delayed or not be completed at all.
Interview: Key Points
After completing the test task, you will receive an invitation for an interview, where representatives of different specializations will try to form the most complete and objective opinion about you. Be prepared to discuss the work done and answer theoretical questions.
Of course, all your skills will be considered together. You can fail the graphics with a bang, but know a lot about logic, be able to work with different frameworks and navigate in separate libraries. In this case, your competence will not go unnoticed, and weak places will not be perceived as a significant disadvantage, because when a specialist has a solid knowledge base, filling in the gaps is a feasible task.
With regard to personal qualities, they will help identify the answers and reactions to questions, as well as the rationale for the motivation to make a career in the gaming industry. All this, along with professional characteristics, will allow you to create an impression about the candidate. We present some of the qualities of a programmer, which many employers regard as undoubted advantages.
Permanent self-development. A programmer must go beyond his responsibilities and be interested in the whole process of game development, understand its mechanisms. You also need to follow the latest publications on websites and in various publications in order to keep up with the times and navigate the ever-changing world of information technology. Sometimes fragmentary and superficial knowledge is enough to get into game dev, but it is impossible to stay in it with such a level of professional training.
An effective approach to solving problems. If you’ve been trying to cope with a problem for a long time, but without success, there’s nothing wrong with finding out how other specialists act in such situations. The only difference is in your application of the information received: thoughtless copying or explanation of the essence for yourself. The choice is obvious.
Readiness for routine work. You will not only study artificial intelligence, program character movements or model water, but also deal with buttons, code behaviors, change colors and so on. From such instructions not to evade, so you need to be able to find room for imagination and bold decisions, even in monotonous daily activities. In addition, you can always optimize monotonous operations and not return to them in the future to save time for other tasks.
Sociability. The quality of the product largely depends on the coordinated work of all departments involved in the process of creating the game. Programmers must constantly maintain a dialogue with game designers, artists, animators and copywriters. It is also important to establish contact with your manager in order to ensure a comfortable creative environment. For example, if you are tired of the same type of assignments, you can ask the manager for more interesting tasks. However, do not forget that complex studies trust only competent specialists.
Ability to self-criticism and moderate ambition. Do you want to change the world by writing your brilliant engine? Think your code is the best? Can't wait to redo existing projects of the company? Working in a team, you need to moderate your ambitions, listen to the opinions of others and obey the decisions of the leadership. One way or another, there is always the opportunity to get a promotion, become the head of the team and more freely implement your ideas without conflicting with the concept of the producers.
One of the classics of Russian literature remarked: "If we are to write, then only when you cannot help but write." In the context of our conversation, this phrase takes on a new meaning. Programming in game devs is a real passion, and not just the fulfillment of official duties in the hours established by the contract. This is an integral part of life and true happiness again and again to see how the code acquires a visible embodiment in a colorful game world that brings joy to many users. If you really feel that game development is your calling, it's time to fulfill your dream!