Behind the Scenes at Playrix: The Technologies Powering Mobile Game Development

Behind the Scenes at Playrix: The Technologies Powering Mobile Game Development

Playrix is one of the most successful mobile game developers in the world. Our games have been installed 2.3 billion times, and more than 30 million people around the globe play them every day. Today you’ll hear from Ilya Bogin (Executive Technical Producer) and Maks Zhylitski (CTO) about the kinds of technology and engineering we use and the principles we apply as a market leader.

Each of you has over 15 years of experience in tech, both in game development and in other areas. Tell us — how technically difficult it is to develop casual mobile games?

Maks: Developing successful mobile games isn't easy. It's important to understand that we work in the entertainment industry, so we're not only competing with games, but also with other products in the domain. Players make a decision every day to either start a new level in Gardenscapes or turn on the next episode on Netflix, for example. This choice is what encourages us to create products that are comparable in quality to the products from top companies in the entertainment industry.

From a technical point of view, such stiff competition also sets the bar high. We have to use the most effective technologies and practices while structuring production and operations in such a way as to achieve our goal. That's why we focus on tech market leaders and solid product companies, not just game development.

Ilya: I agree with Maks in many ways, and in general I see a lot of similarities with the development of classic mobile applications. That being said, game development is characterized by a high level of technical complexity. I would draw parallels with the development of a web browser or applications focused on maps and navigation.

At Playrix, we create games using our own game engine technology. On the one hand, this gives us a lot of freedom — we can change behaviors, add effects, implement new types of animations, or optimize whatever we want. But if a problem arises, we're the only ones who can fix it. We also have a fairly sophisticated product structure and a large amount of code. The result is very complex applications, both architecturally and in terms of technical metrics.

Another element that adds complexity is the amount of graphic content. For content to appear to the user, it must be delivered either in the build or in the resource preload, which is a big undertaking. Since we work with a lot of custom graphics, there can be issues related to performance and FPS, as well as issues with startup speed or transitions between screens.

The third factor is that we can’t use the standard, native elements that Apple or Google provide within their operating systems. That is, all renderings of elements and buttons are custom-made by us, so we’re fully responsible for how they function, how fast they work, and whether they’ve been tested.

A top-quality mobile game is a very intricate piece of software. There are a number of challenges at all stages of development, as well as at the levels of development management, infrastructure, and testing.

What technology stack do engineers use at Playrix?

Maks: The technologies we use can be divided into several layers.

The most substantial layer comprises the technology to create/develop and operate games.

  1. The proprietary VSO/game engine is our core technology for developing game products. The generic engine is comparable in scale and functionality to Unity or Unreal Engine. With its versatility, it primarily focuses on the Playrix game genre and the games as a service (GaaS) model: mass production of quality gaming content. The engine in its essence is built with C++, which is the key technology for developing the game client. A lot of resources are dedicated to this team, which consists of over 70 engineers.
  2. The game server is a platform of microservices which act as building blocks for creating gaming solutions. We use Node.js and Go as our major stack.
  3. For game operations tools (LiveOps), we use analytics and A/B testing tools as well as live management of game features. The standard stack here is Go/Python.

Game development frameworks make up the next layer. We operate our framework to build game components (using C++ and Lua) and evolve automated testing (with Pytest, Appium, and OpenCV) to streamline the development of game features and events, enhance speed, and improve quality.

Finally, there’s a crucial layer of technology called Playrix Platform as a Service, or PaaS.???

  1. We use an infrastructure platform named Plazure. Under the hood it consists of AWS, Microsoft Azure, and occasionally the Google Cloud Platform. We also use local build farms.
  2. Dev experience. This is actually Ilya's domain. The goal here is to clearly understand the obstacles facing engineers (whether inside a product development team or a game engine), and then to continuously remove these obstacles to make their work smoother and more effective. We use TeamCity-based CI/CD and basic tools and technologies for developing mobile products.
  3. Data platform. This is where the engineering teams cover the end-to-end data management lifecycle: collection, storage, calculation, sharing and management.

Also, we are conducting some experiments with AI in development and trying out things like GitHub Copilot for engineers or Stable Diffusion for artists.

Ilya: In some cases, due to the games’ high degree of product and technical complexity, we can't use ready-made software solutions. To run automated tests, for instance, we have to develop internal technologies and frameworks.

What do you find to be the most interesting and challenging aspects of game development?

Ilya: Joining our team is a challenge in its own right, since Playrix employs mostly senior experts ?? But aside from that, the first challenge would be our very large and complex code base. Our flagship games were released many years ago (Township in 2013, Fishdom in 2015, Gardenscapes in 2016, and Homescapes in 2017) and they're updated every 6 weeks.

The second challenge is related to the technical quality requirements of our applications. Since each game has a lot of animations, dynamics, and graphics, the following are very important: the quality of graphics, speed of animation, and the FPS and smoothness of user interaction with the game.

The third challenge is related to the fact that Playrix games have over 100 million active users per month, which means a large fragmentation of devices that the games are being launched on. There are hundreds or even thousands of different phone models in use, and we’re committed to providing users of any device with the highest possible quality of game design and graphics.

Maks: High-quality expectations and hundreds of millions of players call for constant development and ingenuity ?? You need to think systemically and be mature both in terms of software development and your business understanding. An important skill is being able to competently defend your opinion in front of colleagues who are on equal technical footing.

Playrix has a high rate of change, which can be another kind of challenge, so we aim to recruit people who are ready for that and thrive in dynamic circumstances.

What can you say about the Playrix team as a whole?

Ilya: What I see is a very strong team at every level. That applies to management, development, content, art, audio, effects, and so on.

Maks: I agree. It may sound trite, but we do believe that by working with smart and talented people, we'll get great results. When someone is dissatisfied with the status quo and is constantly thinking about how to do something better, they work to achieve their goal. The sum of these individual achievements ultimately produces a powerful effect. In a way, I think that sums up the whole philosophy of Playrix.

Dipesh Gaurav

CEO: GauravGo GTPL||Appreciated By Narendra Modi || Certified PM

1 个月

Sergei Shestakov, thanks for sharing !!

回复
Alexander Tarasevich

Seasoned Project/Delivery manager

1 个月

Maks Zhylitski, thanks for sharing! Tech looks interesting, especially that hybrid cloud-based Plazure. Though it's kind of unclear why to use all 3 cloud providers for it. Is it operationally wise to manage that many clusters? And I liked the last part about strong and proactive team as well. It's good to have strong team around to be able grow yourself.

Just in case, you can always find a list of relevant open positions on our website https://playrix.com/job/open ??

Andrey Lipsky

Deputy CTO | Infrastructure, DevOps, BI, Service management

1 个月

Great read! Really impressive how Playrix tackles such complex challenges in game development and uses in-house technology. It's awesome to see the team constantly pushing for improvements and embracing new challenges.? Ps. Maks, ??

要查看或添加评论,请登录

社区洞察

其他会员也浏览了