How It All Began
Our team received backend code in Cake PHP (including admin panel for balancing game on the fly and full backend logic), and protocol based on JSON, where some requests could exceed 100 kb.
On the client-side the project used NGUI as UI framework, not utilizing correctly neither it’s atlas generation, nor masking features, relying on raw images and panels. Also, the Unity project used manual animation transitioning for over 100 animations, instead of using Animation Controller and animation blending.
When Stepico was brought to the project, we were tasked with rewriting the core of the client, full rewrite of a backend, to support an array of feature changes and new features, that was not possible with old backend in very short timespan (below three months).
What And How We Did For The Project
After that Stepico team has successfully carried out the task of changing, adapting and rewriting project to customer’s satisfaction. After estimating the task at hand and consulting with leads, the team decided to use our best experiences with most applicable technologies to meet the expected deadline.
We used Photon and PUN with proprietary in-house serialization solution, to improve connection speed and reliability, as well as we added the ability for event pushing/broadcasting from the server within the same protocol that whole game is based around. Also, the size of the largest response dropped below 7kb (due to object description optimization, drop of HTTP overhead and binary serialization).
We have also rewritten server in C# (using IIS and ASP.net) to allow code reusability between client and server. On the client-side, the team updated Unity to more modern version (unity 4.5 to 5.4 migration) and improved NGUI usage in the project, by more appropriate use of atlases and shaders (materials), which resulted in visible performance boost and memory optimization throughout the project.
What Challenges Have We Dealt With
After the initial conversion of the project, we’ve continued working with a customer until now, for more than a year. During this time we have faced a number of challenges.
One of the main challenges we had to overcome was Database design. Due to time constraints and customer’s requests we needed to preserve basic DB configuration, which restricted us in the possibility of overall architecture change. We had to maximize usage of caching approaches to boost the performance of slow queries. In one particular example, we utilized the strength of Redis’ tools (like work with sets and set operations) to implement easy to use and very fast rating system, which allowed filtering and cross-filtering with a large number of different parameters.
Another challenge we successfully overcame was an improvement to the animation approach, where we vastly simplified the approach of adding and combining new animations.
To solve scalability questions, we used a combination of Photon’s game balancer and AWS infrastructure to prepare a solution, where monitoring, adding and removing game servers on the fly was not an issue.
Overall Stepico made a significant improvement to a project that suffered from development hell and helped it become an app, that attracts hundreds of users even while in open beta test, much to customer’s satisfaction. MMA Manager is gym management game, with city building, fighter progression and async PVP mechanics.
The team received project in an early stage with backend in Cake PHP, without scaling support and client-side in Unity. Project structure did not support clients long-term goals of a large audience and interactive PVP.
We used Photon and PUN within-house serialization solution, to improve connection speed and reliability, as well as added ability for event pushing/broadcasting from the server within the same protocol. Rewritten server in C# (using IIS and ASP.net) to allow code reusability between client and server. The team updated Unity to more modern version (unity 4.5 to 5.4 migration) and improved NGUI usage, by more appropriate use of atlases and shaders (materials).
After the conversion of the project, we’ve continued working with a customer until now, for more than a year. For client’s great satisfaction, the project hit open beta with more than 20 000 DAU and showed stable results. You can download the game on Google Play.