Overview

Developing games for iOS devices using Unreal Engine 3 comes with special requirements, workflow, and considerations that must be taken into account. This document explains how to set up your development environment for building games for iOS devices, as well as general workflows for testing, packaging, and deploying an Unreal project that runs on iOS devices.

Requirements

You must be a registered iOS developer in order to develop games for iOS devices using Unreal Engine 3. If you are not already registered as an iOS developer, you can register at the iOS Developer Program site.

Note: Apple charges $99/year to register as a developer.

System Requirements

In addition to registering with Apple as a developer, there are also hardware and software requirements associated with developing and submitting iOS games.

Developing iOS Games

The hardware requirements for developing games for iOS devices are the same as the normal system requirements for building games with Unreal Engine 3. You need a PC capable of running the Unreal Editor.

Unreal Engine 3 currently supports the following iOS devices:

iPhone 4

iPhone 4s

iPhone 3GS

iPad

iPad2

iPod touch 4th generation

iPod touch 3rd generation (except for 8 GB 3rd generation devices.)

iOS devices must have at least iOS 3.2 or later installed in order for Unreal Engine 3 to run. If you have an older device, or a device with an unsupported version of iOS installed, then you will not be able to run your application. Also note that certain features are only available with some combinations of device and iOS versions. For example, iOS 4 or later is required for multisample antialiasing.

The minimum hardware requirements for developers are:

Windows XP SP2 with DirectX 9.0c

2.0+ GHz CPU

2+ GB RAM

A graphics card with Shader Model 3.0 support, such as nVidia GeForce 7800

In order to develop iOS games with Unreal Engine 3, you need the following programs installed on a PC:

iTunes

Submitting iOS games

In order to submit an iOS game to the App Store, you need access to a Mac. Apple requires that applications are uploaded using their Application Loader utility which is only available for MacOS X.

You will need the following applications installed on a Mac:

Application Loader

Provisioning

Provisioning refers to the generation of keys, certificates, and mobile profiles necessary to test and distribute games on iOS devices. Apple requires that any device that is to have an iOS application run on it, even for testing purposes, must be set up with a provisioning profile. The process of setting up the provisioning necessary to develop iOS applications with Unreal Engine 3 is simplified by the use of the Unreal iOS Configuration Wizard, though it still requires the use of the iOS Provisioning Portal on Apple's Developer website for certain aspects.

Existing Developers

If you are an existing iOS developer and you have already deployed to a iOS device from Mac or PC previously, you will need to transfer your signing identity over to UDK using the Already a registered iOS developer tab of the configuration wizard. This also involves retrieving your existing developer certificate from the Keychain application on your Mac.

Testing

Testing out maps for iOS games can be done directly from within UnrealEd, either using the Mobile Previewer which simulates a mobile device or by deploying to a connected iOS device to test out the map natively.

Mobile Previewer

Mobile Previewer allows you to visualize your game on PC using an OpenGL ES2 renderer that behaves very similarly to the rendering on the mobile device. This gives you as close to a 1:1 preview of your game without having to deploy to the device to test it. Along with graphics, some other features are emulated such as simulated touch controls.

For more information on emulating mobile devices on PC, see the Mobile Previewer page.

Play on iOS Device

Maps can be tested out directly on a connected iOS device from within UnrealEd. Clicking the button on the UnrealEd toolbar will package up and install the current map loaded in UnrealEd as an app on the connected iOS device.

The progress is displayed as the map is packaged and transferred:

Clicking the button will display details of the process:

Once the packaging and transfer is complete, the game will be playable like any other app on the device:

Packaging and Deploying to iOS Devices

In order to play your game on an iOS device, it must first be packaged into an iOS app that can then be deployed, or transferred to and installed on an iOS device, or devices.

Unreal Frontened is the control center for building games with Unreal Engine 3. It handles many tasks, such as compiling scripts, cooking packages, packaging games, etc. When it comes time to package up and deploy a game to an iOS device, Unreal Frontend will handle the entire process.

For a reference to the Unreal Frontend application, see the Unreal Frontend page.

Click the button to open the configuration settings:

Make sure the settings are as follows:

Game

Platform

Game Config

Script Config

Cook/Make Config

MobileGame

IPhone

Shipping_32

ReleaseScript

Shipping_32

Click the button to save the settings.

The Mobile section should now be visible if it was not previously. Make sure the Packaging Mode is set to Default. Otherwise, the packaged game will not be able to be deployed to a connected device by Unreal Frontend.

Next, you need to add all the maps that need to be packaged into the application. This can be done in the maps section:

Click the button. A window will open listing all existing maps in the current game project.

Select all the maps in the list you want to add:

Click the button to add the maps and close the window. The maps should now be listed in the maps list:

Make sure to set the map to be loaded by default:

Make sure all the steps of the pipeline job are enabled by clicking each of the buttons shown below and toggling on the Step Enabled option in the menu for each step.

Click the Start button to begin the pipeline job. The graphic will display while the pipeline job is in progress. Once complete, the output window will show the results.