Epic takes the fight to Unity with Unreal Engine 4.6 release


Epic has announced the latest version of Unreal Engine as the company continues to try and wrest market share away from Unity in the mobile space.

Unreal Engine 4.6 boasts a whole host of new features for game developers, including the ability to add 3D UIs via a new widget, demo recordings for capturing in-game replays, new static lighting effects, and the ability to create larger 3D worlds (with an extra 20km across).

But for mobile developers, perhaps the most useful new feature is the addition of a mobile preview tool within the editor. This gives developers a quick preview of what their scene will look like on mobile devices, with shaders emulating the look and feature set of OpenGL ES2.

Unreal Engine’s mobile preview feature


Epic’s new release comes amid an escalation in the battle with Unity. After years of Unity going largely unchallenged in the mobile and indie game sector, Epic finally shifted strategy back in March, opening Unreal Engine 4 to the general public and rolling out a new – more indie-centric – pricing system. However, Unity is still the dominant player on mobile (with a 50% share of the market) and is preparing to bring its largest release yet – Unity 5 – out of beta (although so far no release date has been set).

The release of Unreal Engine 4.6 also comes with many new additions to the marketplace. One of the key benefits Unity had over Unreal was its asset store, which helped smaller dev teams cut down the workload considerably, so Epic has been keen to build-up its own library. New additions include Medieval Inn and Tavern by Ennelia Studio, VFX Weather Pack by Thomas Harle, 3D Cloud Models by Quantum Theory Entertainment, Military Pack Part 1 by Manufactura K4, Hand Painted Textures Pack by 3DFancy, FX Alpha Textures by UETools, 50+ Vector Particles by W3 Studios and more.

Other iOS and Android specific feature additions include:


  • New: First pass at google play store IAP added. Further changes are incoming.
  • New: Improve Android device detection logic to detect unauthorized devices and query SDK and release versions, displaying the OS version in the device manager
  • New: Several Android toolchain updates:
    • Updated to support Android 5.0 (SDK 21 and NDK 21) – however we default to NDK 19 since compiling with NDK 21 headers generates code that will not run on devices before 5.0).
    • Implemented incremental APK generation to reduce the time spent in the final .apk file generation (when compiling or packaging).
    • Also added the ability to easily add more Java libraries without needing to update UnrealBuildTool code (just put your lib in \Build\Android\JavaLibs like we have google now in Engine\Build\Android\Java\JavaLibs)
    • Changed the APK generation code to hide the spammy output and show more useful stage progression.
  • Improve Android logging to break up log messages at newlines to deal with buffer limit.
  • Corrected JNI call (AndroidThunkCpp_IsMusicActive) to use CallBooleanMethod.
  • Removed a negative delta time fatal error (occurs on some Android devices).
  • Fixed an issue where you couldn’t cancel Google Play sign-in in some cases
  • Fixed errors when building games for Android in “for distribution” mode
  • Fixed looping and playback issues with Android ADPCM samples


  • New: You can now specify the minimum iOS version supported by the game as well as the which devices are supported. These settings are located in the iOS section of the Project Settings.
  • New: The mobile provision and signing certificate can now be specified via the iOS Project Settings. Selecting the Install Provision or Install Certificate buttons will install the selected item.
  • New: Enabled C++11 support on iOS
  • New: Facebook SDK for iOS upgraded to 3.16
  • New: iOS and Mac Media Player added. This allows users to stream movies to slate textures in game.
  • New: Added support for iPhone6/6+ resolutions
  • New: Added Metal support for Tappy Chicken (reduced battery usage if nothing else!)
  • New: Added an on-screen message for when you run a Metal-only app on a device that doesn’t support Metal (which the App Store should disallow, but it’s still possible to get it on a non-Metal device)
  • New: Shipping and Test configurations for iOS now include the arm64 executable. This will be a requirement for putting apps on the app store in February, so we wanted to give users time to get used to the increased sizes.
  • New: IPhonePackager is now used on a Mac to detect provisions and signing-certificates. This starts the process of unifying the code path for both PC and Mac workflows.
  • New: Added an iOS framepacer which allows users to specify how often they sync rendering with the iOS frame ticker.
  • New: Receipts are now returned as part of the In-App Purchase payload for IOS.
  • New: Added Copy Repository functionality to iOS deploy stage of UFE.
  • New: The additional commandline args files in UFE can now be used to specify a commandline for launch on device when selecting Copy Repository as the deploy method.
  • Fixed an issue with xcode project generation when a sample had been renamed from the launcher. This was causing an invalid scheme to be generated and causing code signing issues.
  • Fix for crash when utilizing landscape mode on iOS devices.
  • Properly parse UTC times from the mobile provision files so we can accurately detect valid provisions.
  • Updated IPhonePackager to provide a better message when the bundle identifier of the mobile provision that is installed doesn’t match the bundle identifier of the game it is being installed for.
  • Stat Macro renamed to avoid a mismatch with one from apples core animation api.
  • dSYM files can now be generated when deploying to iOS from Xcode.

For a full list of Unreal Engine 4.6 features check out Epic’s blog post here.