The scope of game design today is one of the fastest growing in the world. The average annual growth rate of the gaming industry
is 4.8%, and it is expected that by 2020 the market value will reach $ 90 billion.
To a large extent, this market is fed by mobile projects. The number of users of mobile devices is increasing - according
to statista.com, in 2017 their number will reach 2.32 billion - therefore the value of the mobile gaming market is growing.
Not so long ago, I became interested in this topic, but so far I’m far from a full podcast on igrostroy. I decided to begin my acquaintance with this industry on the example of one of the really active and successful projects - Dmitry Degtyarev, Inventain COO, shared with me his approaches to working with technologies.
')
Disclaimer: Taking into account that we are talking about the example of a separate company, I decided to put this material in the hub “I am promoting”.
/ company office photoInventain is a small and mobile company with a narrow and professional circle of specialists. This allows you not to be distracted by the routine and fully concentrate on creating products.
Now the company is actively developing two areas of activity: gaming and start-up. In the first case, we are talking about gaming products, and in the second - about applications for people with gamification elements (without it, it is often simply difficult to show the user something new and to arrange a “visual shake” for the user).
One of the main problems of many services is the difficulty in mastering. Gamification allows you to imagine the process of mastering the service as a game: calculate where the effort is required of the user, what is his purpose, and how we can reward him for his works. Similar techniques are applied to keep the client: when he should return to the service, for what purpose, how he will know about it, and so on.
In addition, a significant stake was made on the artistic component and user experience in terms of the convenience of the UI and understanding where a person uses the product (for example, starts the game in public transport). All this cannot exist “in the air” - the work of designers and designers must be implemented on the optimal technological stack, and as a result, it is necessary to publish the finished product and “deliver” to its audience.
Development and infrastructure
At Inventain, application development is conducted using the Swift programming language and the Unity engine. Unity 3D is used to create game projects and was chosen for its simplicity, functionality and accessibility. Also at the time of selection, its price was more loyal than the Unreal Engine. The Unity game engine is much more popular with developers than any other software. For example, 34% of the top 1000 free mobile games are developed on Unity.
As for Swift, it was selected for "non-game" projects. Swift, as well as Unity 3D, is also constantly growing in popularity - in 2017, it
entered the top ten most widely used programming languages in 2017, according to
the Tiobe index . In this case, Swift succeeded Objective C because of its functional advantages (short syntax and performance).
One of the significant approaches with the help of which “mobility” and “ease” of development is achieved is to use ready-made tools. Before undertaking any complex task, the development team analyzes the existing solutions (including paid ones).
It is cheaper and faster to take something ready than to spend time and energy on it, inventing a bicycle. The ultimate goal for the team is a product, the path to it should be chosen the most optimal
- Dmitry Degtyarev, COO Inventain
Unity has its own Asset Store, which contains thousands of ready-made solutions and resources. For Swift, you can use open solutions that are on sites like Github. At the same time, implementation should not be done in the “one to one” format - any publicly available solutions cannot take into account all the features of your product, they need to be customized for a specific application.
In addition, it is worth paying attention to those materials that are published on the topic in profile blogs. An example is the
code for implementing linear regression. Such notes should be used to search for a fresh look at a particular problem, and then return to the implementation of your own solution.
Another good solution is to create your own pool of developments that are used from project to project. You can start with the simplest wiki.
If we talk about testing, then on the scale of a company like Inventain (and similar projects) it makes no sense to create a whole division. Here, one QA specialist is enough to define the vector. The implementation of this task should be given to developers who will try to achieve a balanced coverage of code with tests. The priority is to avoid the time spent on the routine actions of the tester and eliminate its potential “blunders” due to automation. Thus, a huge number of scenarios and possible errors in the "far corners" of the application will always be under control.
The desire not to waste efforts on routine work is reflected in the organization of the infrastructure - it is cloudy (AWS), although the vector on the cloud was not immediately selected. Cloud management is much easier. In the case of AWS, no special infrastructure data is needed - it is enough to get acquainted with very complete and well-structured documentation. It turns out that everybody can be managed by software engineers, and system administrators are not needed. In addition, with the cloud it is much easier to adjust to the real load and add (remove) the server dynamically, without overpaying for simple hardware. All this translates into real gain in price and flexibility: you pay only for what you actually use.
"Heavy" should only be specific
To keep up with the evolution of modern technologies and use solutions that are gaining popularity in their products, you need to spend time and effort. This is the price to be able to compete with the best products and teams in the industry.
In this case, we are talking about the accumulation of our own expertise in such areas as machine learning and motion capture technologies. If we talk about specific examples, the Inventain team can boast of having taught neural networks to recognize a person’s face and create a three-dimensional avatar on the screen. In the context of working with machine learning and neural networks, this is the implementation of transferring image styles to other objects, plus the ability to impose virtual masks on users' faces and hold them while moving.
Such “customization” is impossible solely due to the search for open projects and “quick” solutions, but it is precisely this that is the “core” of the product and justifies significant temporary investments.