<!--
{
  "documentType" : "article",
  "framework" : "Updates",
  "identifier" : "/documentation/Updates/GameController",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Game Controller updates"
}
-->

# Game Controller updates

Learn about important changes to Game Controller.

## Overview

Browse notable changes in <doc://com.apple.documentation/documentation/GameController>.

## June 2025

- Add support for spatial game controllers. To determine if a controller is a spatial game controller, check whether the product category is  <doc://com.apple.documentation/documentation/GameController/GCProductCategorySpatialController>.
- Add support for a physical stylus with a <doc://com.apple.documentation/documentation/GameController/GCStylus> object.
- Add <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NSAccessoryTrackingUsageDescription> to your information property list if your app requires access to accessory-tracking data for a spatial game controller or stylus.
- Add <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/GCSupportedGameControllers> to your information property list — with a value of `SpatialGamepad` — if your app supports spatial game controllers.

## June 2024

### visionOS

- For UIKit apps, add a user interaction that determines whether the system delivers game controller events through the Game Controller framework instead of the <doc://com.apple.documentation/documentation/UIKit/UIResponder> chain. To receive events through the Game Controller framework, add a <doc://com.apple.documentation/documentation/GameController/GCEventInteraction> object to one or more views and set the <doc://com.apple.documentation/documentation/GameController/GCEventInteraction/handledEventTypes> property to the types of events you want to handle.

## June 2023

- Use the classes that conform to the <doc://com.apple.documentation/documentation/GameController/GCDevicePhysicalInput> protocol to poll for game controller input in your game loop. For more information, see  <doc://com.apple.documentation/documentation/GameController/handling-input-events>.
- Add support for arcade sticks. To determine if a controller is an arcade stick, check whether the product category is  <doc://com.apple.documentation/documentation/GameController/GCProductCategoryArcadeStick>.
- Add <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/GCRequiresControllerUserInteraction> to your information property list if your app requires a game controller on visionOS or to recommend a game controller on iOS.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)