A big portion of work this round has gone into improving performance on mobile and low-end PCs. In this blog post we wanted to give a few examples of the optimizations we’ve been doing.
##Mobile Optimization
When developing Path of Titans, we decided very early on that we wanted to support cross platform play on many mobile devices and consoles. While we are still working on console support, we have already made great strides towards making the game playable on mobile. Because the game is being developed on powerful PC machines, it’s always been important that we test the game nearly every day on mobile devices to see if any game changes are buggy or broken on mobile and to take the steps we need to fix them. This also gives us a good time to see performance metrics on various devices as well.
Up until now our game was running somewhat poorly on mobile because it was simply trying to run the PC version on much less powerful hardware, but this has been improved significantly during the past week. What used to run at 4 frames per second now runs at 40 frames per second, and we are still working on improvements every day to get that up even higher.
A big performance saving technique was introduced in Unreal Engine version 4.22, the ability to use different LODs depending on the device the game is running on. This allows us to significantly reduce the number of triangles that are rendered on the screen of a phone or tablet, as the mobile version of the game will use a version of the mesh that has a reduced triangle count. While the PC version can display up to 20 million triangles depending on the scene, the mobile version will only have to display around 500k triangles. Texture sizes have also been reduced on mobile to both improve performance and make the game download size smaller.
The visual differences between PC and mobile are a hard thing to balance, especially considering how many devices we plan to support and the capability differences between them. The limitations on mobile can be difficult to overcome, but we are working hard at keeping the gameplay completely intact across all devices. Here is a work-in-progress preview of what the game looks like on a high end PC versus mobile. Some sacrifices had to be made, such as density of the short grass on mobile, however all gameplay-important features, such as bushes that can be hidden in, will always be rendered so players can know for certain if they hide in a bush they are never going to be standing out in the open on a different device.
Another optimization method we’ve set up is to add quality switches inside our shaders that will detect if the game is being run on a lower or higher end device. If it is running on a less powerful device, it will switch to using simplified shaders that have significantly less complexity but still retain the general texture quality. While this method of performance improvement was intended to be used on mobile devices, it has been set up so that low end PC users can also take advantage of these optimizations if they switch their material quality settings to “Low”.
You can see the visual difference in these quality settings in the comparison below. The easiest optimization to notice is the pine needles on the base of the redwood tree that are no longer displayed on lower settings.
With these and future optimizations we are getting closer to a well-running version of the game on mobile. We are excited that a player can simply join the same server as their friends, who are all running on different devices, and for them to all enjoy a smooth running game and fun gameplay experience.