Technical side
Back-end was developed and supported by our team. It consists of Photon custom plugin, Games API server and Messaging server.
Games API server is built with ASP.NET Core API and MongoDB. It is responsible for general data, related to the game, its players' resources and achievements calculating and storage and serving all non-battle mechanics (like City Builder, Decks management, Tournaments and Guild wars organization).
Messaging server is also built with ASP.NET Core API and MongoDB, and it uses SignalR technology for real-time interaction with client apps (Unity client and multiple web clients).
Photon custom plugin is a self-hosted instance of Photon engine for the real-time in-game functionality. It hosts server-side game engine, that drives multiplayer game sessions, receiving information about players’ actions from Unity client and sending back events about game state changes and things to be displayed on UI. Also, this server communicates with Games API via HTTP to send intermediate or final information about game sessions - this way there is a single “sourse of truth” for game result definition.
Also, admin panel for games and messaging functionality was created using Angular.