Sky Wars: Archon Rises
What we did right?
Several times our team desided to upgrade the game's infrastructure. The biggest challenge was to design code that in case of some fault or critical bug in the upgraded system, we could change back to the old system ON THE FLY, without uploading a new version of the game.
The solution I implemented used the Facade design pattern, and an online feature flags file the client was to download on every login of the game.
Because of this we were able to switch between the implementations as we pleased.
What we did wrong?
From the early days of the project the game was essentially optimized for tablet devices, specifically iPad, because the prototype of the game was developed for iPad. This small decision caused us a lot of trouble.
First was the issue of aspect ratio for phones. Every piece of menu and UI had to be remade for phones as well and we could not rely on NGUI's anchors and aspect ratio systems.
Second was the issue of performance. On most Android devices the game would run lower then 30fps and would consume incredible amounts of battery, while every thing worked decently on iOS devices.
As a result we had to make severe alterations to the way assets were loaded to the memory and stored, rewrite most of the games shaders and get rid of all the transparent elements we could in order to reduce overdraw as much as possible.