Black Wind Foundation talked about some of the technical challenges of bringing the award-winning adventure game from desktop and consoles to mobile platforms.
The talented developers from Black Wind Foundation talked about some of the technical challenges of bringing the award-winning adventure game from desktop and consoles to mobile platforms.
Transferring the project from UE3 to UE4
Transferring the project from UE3 to UE4 can be compared with transition to a new engine, because almost everything is different: programming language (Unreal Script vs C++), logic creation system (Kismet vs Blueprints), content organization (assets’ packs vs separate assets), and moreover, even the units’ size has been changed (2 cm vs 1 cm). You can find more information here.
All in all, one does not simply take a UE3/UDK project and turn it into a UE4 project. For Life is Strange we’ve developed a toolset for transferring of maps, assets, logic etc. In addition, our programmers had to transfer the code manually, as it had to be optimized and cleaned due to the shift to another platform. Besides, because of the differences in a light system, post-processes’ parameters and materials’ system, we had to modify UE4 in order to adjust parameters to UE3. That allowed us to keep the unique visual style of the game without causing any breaks.
The last but not the least, the engine of the original game was also GREATLY modified in many aspects. However, thanks to an open source code and C++ usage as the main programming language in UE4, we were able to implement all the necessary (and even extra) modifications to the engine for the mobile version.
Visuals
One of the main purposes of porting was keeping the unique visual style of the original game at the quality level close to the previous generation console (PS3). Mobile devices’ manufacturers like to describe their products as if they have “performance similar to consoles”. However, it’s not true) Mobile platforms have much more limitations and specific features that are determined by the platform among other things. The situation was improved by the release of RHI and ES3.1, but it is not a universal remedy at all.
Moreover, a special system of shaders and light was used in the original game. Thus, we had to add new Shading Models, such as Blinn Microfacet and SSS, and “to make them work” on mobile devices. Also, I’ve already mentioned that we’ve carried out a lot of work in order “to adjust” light systems and post-processes to those that are used in the original game.
Textures were a separate challenge. The game is full of outsized textures with a high degree of detail. Traditional PVRTC format does not support such textures, this results in a large size of images and damages them during the compression a lot.
Again, we have used Metal RHI that supports ASTC compression on Apple-devices and ES3.1 that supports ETC2 compression on Android- devices. Mentioned types of the compression support textures multiple of 4 with any aspect ratio and allow to obtain good image quality and file size after the compression.
The photo mode
We’ve developed photo mode for Life is Strange by ourselves, taking into account the required capabilities, changes in engine and integration with the platforms in order to support native saving and sharing.
Photo mode does not look like a “heavy” feature; however, it has a number of pitfalls. For example, for the time of taking a shot, the game should be “frozen”. However, there should be a capability of controlling the camera, the position, and outfit of the character. The player should also be able to change the image with help of post-processes and screen effects. After switching back from the photo mode, the game should continue from the initial state. Many things can go wrong; there are high risks of forgetting or breaking something. In addition, each platform has its own methods and permissions on images saving and sharing, which bring extra troubles. Nevertheless, the result is worth the effort.
The workflow
It is not our first port (and I’m pretty sure not the last one) to mobile platforms. Each similar project requires a specific approach and work organization. Under this project, the main challenges were creation and usage of the toolset for project transferring from UE3 to UE4, as well as optimization for mobile platforms with a constant control of the logic, play-through and visual representation of the project. In addition, one should not forget about the adaptation of controls and UI, because mobile devices differ a lot with regard to interaction experience.
Advice: reserve time for research in order to determine possible risks/challenges and to find ways to overcome/solve them; define the platforms and specify the range of supported devices; control the performance on each device continuously; be patient and calm – your path is difficult and challenging. Not ready? Then, just call on the experts – contact us).