Search public documentation:
Developing games for Apple's iOS platform using Unreal Engine 3 is similar in many ways to developing on other mobile platforms. The platform does have some of its own features and considerations that must be addressed, however. This document provides a general overview of developing games for iOS devices using Unreal Engine 3.
Developing games for iOS devices using Unreal Engine 3 comes with special requirements, workflow, and considerations that must be taken into account, such as setting 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. See the Getting Started: iOS Development page for complete details to get up and running creating games for iOS devices.
As of June 2011 Gamma correction is supported on iOS devices allowing the creation of levels and content with consistent lighting across platforms.
The engine has basic VGA output support, using the VGA Dock Adapter. It will display the 3D viewport over VGA, with the following considerations:
- You must run the game with -vga on the commandline
- You must have the VGA connector connected before the game starts up
- It queries the VGA device for supported resolutions, and chooses the highest resolution whose width is no more than 1024 (which is used to generally match the iPad resolution of 1024x768)
- Loading screens/movies will usually look incorrect
- Touch input is done on the device, in the solid pink area. However, there is currently no remapping of the input locations, so if the resolution is chosen to be 640x480, you would need to use the upper left 640x480 area of the pink area.
The engine has support for modifying the game's commandline via switches and strings in the external Settings app in iOS (this is the standard Settings place you would go to set up WiFi, sounds, Airplane mode, etc). The settings are specified in a file called Root.plist in the Settings.bundle directory:
//depot/UnrealEngine3/UDKGame/Build/IPhone/Resources/Settings/Settings.bundle/Root.plist //depot/UnrealEngine3/UDKGame/Build/IPhone/Resources/Settings/Distro_Settings.bundle/Root.plistHere is what you can see in Settings:
<dict> <key>Type</key> <string>PSToggleSwitchSpecifier</string> <key>Title</key> <string>Benchmarking?</string> <key>Key</key> <string>-benchmark</string> <key>DefaultValue</key> <false/> </dict> <dict> <key>Type</key> <string>PSTextFieldSpecifier</string> <key>Title</key> <string>Benchmark seconds</string> <key>Key</key> <string>-benchmarkseconds=</string> <key>KeyboardType</key> <string>NumberPad</string> </dict>There are many things to set, each being two lines,
- Type - This is the setting type. PSToggleSwitchSpecifier is an On/Off switch, PSTextFieldSpecifier is a text box.
- Title - This is what is displayed to the user (if it's too long, TextFields will have little room to display the text)
- Key - This is the critical information. This is what is put directly onto the commandline. It must start with
?. For Toggles, the Key will be put onto the commandline if the Toggle is set on On. For TextFields, the Key will be put onto the commandline if the text is not empty, then followed by the text entered by the user.
- DefaultValue - You can set what to initialize the setting's value to whatever you want.
- KeyboardType - What type of keyboard to use. See the docs for more information about TextFields.
You can also expose the same settings as described here in the Settings.bundle. If you make a new group with a PSGroupSpecifier, then make more settings with Keys that don't begin with - or ?, then you can use the "mobile LoadSetting
When UnrealFrontend packages up the iOS application bundle, it adds a key/value pair for the version of the engine and build date for the iOS executable. The key is called EpicAppVersion. This value is displayed in non-Shipping builds. You can however, force this display on or off via the Engine.ini file, as seen in UDKGame's Config\Mobile\MobileEngine.ini:
[Build.Version] bForceShowAppVersion=False bForceHideAppVersion=False
Unreal Engine 3 on iOS has support for multiplayer and achievements through Game Center. See the Game Center documentation for information on how to set up and use these features.
Support for displaying in-game ads through Apple's iAd network is provided in Unreal Engine 3 on iOS platforms. See the In-Game Ads page for details on how to use ads in your game.