By the time we agreed to terms for this project with Square Enix, Life is Strange was already in legendary status. The game had its fanbase, very loyal, but ready to criticize anything related to the game. Fanart and fan fiction for Life is Strange lore gained a lot of attention. With that being said, we just have no right to fail fans’ expectations while making a mobile version of the game.
In this article, we will tell a complete story of bringing iconic, critically acclaimed episodic graphic adventure game to iOS and Android devices.
The general scope of our work with Life is Strange can be classified by two main tasks:
- 1. Transferring game from UE3 to UE4
- 2. Transferring game from PC/PS3 to Android and iOS smartphones and tablets.
Convert UE3 project to UE4 is a similar task to transition to the new engine.
There have been serious changes in these engine generations. The main differences between UE3 and UE4 are:
- programming language: Unreal Engine 3 uses Unreal Script — native scripting language for authoring gameplay events and game code, while Unreal Engine 4 core language is C++
- scripting system: Kismet in UE3 and Blueprints Visual Scripting for UE4
- Physically Based Rendering system in UE4
- content organization logic: assets packs in UE3 and separate individual assets in UE4, so you can’t just migrate assets from UE3 to UE4
- even unit size: 2cm in UE3 become 1 cm in UE4
That’s why you can’t just change some settings and formats to convert from UE3 to UE4. That’s why we agreed on a decision to develop a custom toolset. It helped us to transfer game logic, convert assets from UE3 to UE4, levels, and other components we needed to convert from UE3 to UE4. But it wasn’t enough, so our programming team had to transfer code manually, while also optimizing and cleaning the source code to provide a smooth shift between platforms.
Square Enix wanted mobile players to enjoy Life is Strange as good as PC or PS3/XBOX 360 players, or at least close to it. The big part of satisfaction from Life is Strange is its unique visual style. Stylized hand-painted textures with smooth VFX brought players to the stream state very well. We needed the same effect on mobile devices.
The original developers in Dontnod Entertainment upgraded UE3 in order to provide necessary visuals for Life is Strange on PC and consoles. To do the same for mobile devices, we decided to modify the original Unreal Engine 4 in a similar way.
We implemented a lot of changes to the materials system, the light system, parameters at the post-processing of UE4. As a result, the mobile UE4 version kept the unique visual style of the source game and provided great gameplay experience even on low-end mobile devices.
In order to provide smooth mobile gameplay, we also modified UE4 heavily. This was possible because of the open-source code of the engine and C++ as the core programming language. That’s why we often recommend considering Unreal Engine if you plan to develop a multi-platform game :)
With all due respect, all the mobile devices’ marketing agenda of “it provides the same technical performance as the current-generation consoles” is tricky. In terms of game development, mobile devices have much more technical limitations and narrow-focused features, determined by every platform. That’s why transferring PC games to mobile devices can definitely be called more difficult than transferring to consoles.
With Life is Strange, our team of developers and artists solved several issues to keep the gameplay experience on mobile devices close to the original:
The game project we had from the developer was full of outsized textures with unnecessarily high levels of detail. The traditional mobile compression format PVRTC doesn’t work well with this kind of textures. This results in unnecessarily large size of images and may damage them during the compression.
To solve this, we needed compression to support fourfold textures with any aspect ratio.
We discovered what compression types would cover our needs: ASTC compression in Metal RHI for Apple devices and ETC2 compression in ES3.1 on Android provided us with the necessary image quality and file size after the compression.
- Implementing special game features: Photo mode
Max, the main playable character of Life is Strange, loved taking photos, so we decided to create a new feature for the mobile version of the game — Photo mode.
This doesn’t look like a super difficult feature to implement, but still, photo mode brought us some challenges. The player should be able to control the camera, character’s outfit, position, and also edit photos via post-processes and screen effects. And don’t forget that the game should continue from where the pic was taken after the player is done using photo mode.
As a result, we coded a fully working photo mode for Life is Strange mobile in UE4. Players could take any photos, edit them, save them to their mobile devices, and share them on Facebook or Twitter.
- Controls and interfaces
The other obvious thing that differs between PC/Console and mobile gaming is the user experience part. We couldn’t just transfer gamepad or keyboard+mouse controls, so we developed touchscreen controls from scratch, including a totally new "Tap to move" control system. We also adapted all the interfaces to make them smaller and get more room for visuals on the mobile screen and also support different aspect ratios and screen sizes of mobile devices.