Checklist for Adding Controllers

This appendix summarizes the critical issues described in this document by providing two checklists, one for iOS and one for Mac.

iOS Checklist

iOS Requirements

../Art/checkbox_unchecked_2x.png

Your game must not require a game controller.

../Art/checkbox_unchecked_2x.png

Your game must be playable using a standalone controller, without access to the device.

../Art/checkbox_unchecked_2x.png

Your game must support the pause notification. It should toggle between pausing and resuming your game.

../Art/checkbox_unchecked_2x.png

Your game must disable the screen idle timer if the touchscreen is not used in your gameplay. See the idleTimerDisabled property for more information.

../Art/checkbox_unchecked_2x.png

When the iOS device is placed inside a formfitting controller, your game must run only in landscape mode.

../Art/checkbox_unchecked_2x.png

Your game must hide any virtual controls while it is being controlled from a controller.

../Art/checkbox_unchecked_2x.png

After a controller is connected, set the player index to a reasonable value.

iOS Recommendations

../Art/checkbox_unchecked_2x.png

Provide a user interface that explains which control elements are used by your game. Use the standard names for control elements.

../Art/checkbox_unchecked_2x.png

Respond appropriately when a controller is connected or disconnected.

../Art/checkbox_unchecked_2x.png

Make a control layout that is easy for players to understand and operate.

../Art/checkbox_unchecked_2x.png

Remove any code from your app that compensates for thumbstick dead zones.

../Art/checkbox_unchecked_2x.png

When using button elements, use the pressed property to determine whether a button is pressed. Use the value analog property only if your gameplay relies on the pressure applied to the button.

tvOS Checklist

tvOS Requirements

../Art/checkbox_unchecked_2x.png

Your game must support the Siri Remote or an MFi Game Controller. (It may support both.)

../Art/checkbox_unchecked_2x.png

Your game must support the pause notification. It should toggle between pausing and resuming your game. When your gameplay is inactive, you should ignore inputs in the Game Controller framework so that this button is processed appropriately by UIKit.

../Art/checkbox_unchecked_2x.png

Your game must disable the screen idle timer if a controller’s input is being used directly. See the idleTimerDisabled property for more information.

tvOS Recommendations

../Art/checkbox_unchecked_2x.png

Provide a user interface that explains which control elements are used by your game. Use the standard names for control elements.

../Art/checkbox_unchecked_2x.png

After a controller is connected, set the player index to a reasonable value.

../Art/checkbox_unchecked_2x.png

Respond appropriately when a controller is connected or disconnected.

../Art/checkbox_unchecked_2x.png

Make a control layout that is easy for players to understand and operate.

../Art/checkbox_unchecked_2x.png

Remove any code from your app that compensates for thumbstick dead zones.

../Art/checkbox_unchecked_2x.png

When using button elements, use the pressed property to determine whether a button is pressed. Use the value analog property only if your gameplay relies on the pressure applied to the button.

OS X Checklist

OS X Requirements

../Art/checkbox_unchecked_2x.png

Your game must not require a game controller.

../Art/checkbox_unchecked_2x.png

Your game must be playable using a standalone controller, without access to the Mac.

../Art/checkbox_unchecked_2x.png

Your game must support the pause notification. It should toggle between pausing and resuming your game.

../Art/checkbox_unchecked_2x.png

After a controller is connected, set the player index to a reasonable value.

OS X Recommendations

../Art/checkbox_unchecked_2x.png

Provide a user interface that explains which control elements are used by your game. Use the standard names for control elements.

../Art/checkbox_unchecked_2x.png

Respond appropriately when a controller is connected or disconnected.

../Art/checkbox_unchecked_2x.png

Make a control layout that is easy for players to understand and operate.

../Art/checkbox_unchecked_2x.png

Remove any code from your app that compensates for thumbstick dead zones.

../Art/checkbox_unchecked_2x.png

When using button elements, use the pressed property to determine whether a button is pressed. Use the value analog property only if your gameplay relies on the pressure applied to the button.