The post has been translated automatically. Original language: Russian
Clash Royale seems like a simple mobile game: He chose the cards, entered the arena and played the match in a few minutes. But from an IT point of view, this simplicity hides a rather complex system.
During each battle, the server needs to synchronize the actions of the two players in almost real time: card placement, unit movement, damage, timers, and the result of the match.
At the same time, the delay should be minimal, otherwise the user will immediately feel that the game is "lagging".
A separate interesting part is matchmaking. The system should quickly select an opponent of the appropriate level, take into account the rating and at the same time not keep the user waiting for a long time.

It becomes even more difficult after the release of updates. Developers analyze a huge number of matches: which cards are chosen more often, which combinations are too strong, where players win or lose more often. Even changing the damage of one card by a few percent can noticeably change the entire game meta.
Also behind the game are anti-cheat systems, analytics, A/B tests, server monitoring, and constant workload management.
Sometimes the most interesting IT systems are in those applications that look as simple as possible from the outside.
Clash Royale кажется простой мобильной игрой: выбрал карты, вышел на арену и за несколько минут сыграл матч. Но с точки зрения IT за этой простотой скрывается довольно сложная система.
Во время каждого боя серверу нужно практически в реальном времени синхронизировать действия двух игроков: размещение карт, движение юнитов, урон, таймеры и результат матча.
При этом задержка должна быть минимальной, иначе пользователь сразу почувствует, что игра «лагает».
Отдельная интересная часть - matchmaking. Система должна быстро подобрать соперника подходящего уровня, учитывать рейтинг и при этом не заставлять пользователя долго ждать.

Ещё сложнее становится после релиза обновлений. Разработчики анализируют огромное количество матчей: какие карты выбирают чаще, какие комбинации слишком сильные, где игроки чаще побеждают или проигрывают. Даже изменение урона одной карты на несколько процентов может заметно изменить всю игровую мету.
Также за игрой стоят античит-системы, аналитика, A/B-тесты, мониторинг серверов и постоянная работа с нагрузкой.
Иногда самые интересные IT-системы находятся именно в тех приложениях, которые снаружи выглядят максимально простыми.