---
title: Game technologies
framework: technologyoverviews
role: article
path: technologyoverviews/games-technologies
---

# Game technologies

Plan the creation of your game and incorporate the gameplay features people expect.

## Create gorgeous graphics

Game development starts with Xcode, Apple’s integrated development environment, which includes code editors, debugging tools, device simulators, graphics performance and analysis tools, and platform SDKs. When you Creating an Xcode project for an app, Xcode lets you choose the initial platforms, templates, and game technologies for your project. If you already have a game, you can also bring that game to Apple platforms. Great games take advantage of the characteristics and capabilities of the devices that they run on. For example, someone might use their iPhone when travelling or relaxing on the couch, or use their Mac when they’re sitting at their desk. Designing for games with these factors in mind and take advantage of all available hardware connected to the device. Create gorgeous graphics Get the best graphics performance on all Apple platforms using Metal — Apple’s API for hardware-accelerated 2D and 3D graphics. With Metal, you have the power of the graphics processing unit (GPU) at your fingertips. Deliver smooth 3D animations with realistic visual effects from your game’s rendering code. Tune the performance of that code to maximize frame rates and efficiency on a variety of Apple devices.

Metal offers the features you need to create detailed graphics, with the performance you need to achieve high frame rates: Setting up a command structure directly on the device’s GPU. Encode Compute passes to run in parallel with Render passes so that computations don’t impact graphics rendering. Resource loading faster by streaming asset data to textures and buffers asynchronously. Improve the performance of 3D scenes using high-performance temporal antialiasing or spatial upscaling. Upscale low-resolution images to higher-resolution images in less time using MetalFX. Apply high-performance filters to images, multiply matrices, and vectors using the Metal Performance Shaders. Accelerating ray tracing using Metal using Metal’s built-in ray tracing support. Make your game fast and efficient using the powerful suite of Metal developer workflows. Validating your app’s Metal API usage and catch shader execution errors in Xcode. Debugging the shaders within a draw command or compute dispatch, and Optimizing GPU performance, using the Metal debugger. Analyzing the performance of your Metal app so you can fix interruptions and stutters. Profile and optimize your game's memory to improve overall performance. Analyze your game’s performance in real time with the Metal Performance HUD, which shows CPU and GPU metrics in real time. Make sure you tune your graphics code specifically for Apple silicon: Addressing architectural differences in your macOS code to ensure your code runs well on Apple silicon. Make sure your code supports virtual memory-page sizes, cache line sizes, variadic functions, memory that’s simultaneously writable and executable, and more. Tuning your code’s performance for Apple silicon using Dispatch and DispatchQoS levels. Accelerate your code’s performance using the open source SSE2Neon and AVX2Neon libraries. The Neon instruction set provides single instruction multiple data (SIMD) operations to accelerate performance on ARM processors. Tailor your apps for Apple GPUs and tile-based deferred rendering. Write your Metal code to use features like imageblocks, tile shading, and raster order groups. Build a spatial computing game for visionOS Apple Vision Pro gives you an opportunity to create immersive 3D experiences. Whether you’re creating a fully immersive game or an augmented reality experience, take advantage of visionOS features. And if you’re making a game for iPad or iPhone, that game can also run run on Apple Vision Pro in a window and use direct and indirect gestures as input.

Integrate your game’s virtual content into someone’s real-world environment using RealityKit, SwiftUI, and ARKit. RealityKit makes your virtual content look more realistic by applying depth mitigation, passthrough, ground shadows, and other effects automatically. Discover Metal for immersive apps and render everything yourself using Metal and Compositor Services. Design for spatial input using Meet ARKit for spatial computing. Support interactions with attached game controllers and keyboards, which passthrough makes visible even in a Full Space. Bring your Unity VR app to a fully immersive space or Create immersive Unity apps. Get started by learning about the building blocks that make up spatial computing, and find out how you use these elements to build your game experiences. Adapt your 2D games by adjusting your content to take advantage of 3D. For example, render objects in separate layers to create a parallax effect, and add smoke, sparks, and other visual elements that come out of visual plane. Create exceptional soundtracks Increase engagement and realism by adding sound effects and music that complement the action within your game. Play your app’s music, audio, and sound effects using the AVFAudio framework. Configure your AVAudioSession to mix your audio components the way you want, then play back your audio using an AVAudioPlayer object. Play music from someone’s iTunes library using the MusicKit framework. Playing sound from a location in a 3D scene that reacts in real time to events in your game using the PHASE framework. Perform advanced audio manipulation, or work directly with audio hardware, using the Core Audio framework. Audio to RealityKit Entity to bring those objects to life. RealityKit automatically applies reverb and real-world acoustics to your entities to give them a realistic sound. Explore immersive sound design to further improve the audio experience of your game. On iPhone and Apple TV, get the player’s attention and reinforce actions with tactile and audio feedback using the Core Haptics framework. Play both transient and continues patterns to match the events in your app. For example, play a short vibration pattern when someone toggles a switch, and play a continuous pattern to represent the ringing of a telephone. Generate haptics for an attached game controller using the Game Controller framework instead. Support input devices Let players interact with your game in more natural ways using Game Controller. Support the latest Support third-party gamepads, arcade sticks, and racing wheels, as well as the mouse and keyboard. Overlay a virtual controller on mobile devices to emulate a physical controller. Support Advancements in Game Controllers such as GCDeviceHaptics from a physical controller. The App Store adds a game controller badge to your game if it supports controllers. Build a social network Take advantage of the services Apple provides for social gaming and storing game data using Game Center. Let Apple help promote your game organically through players sharing and interacting with each other.

Grow discovery and engagement using Initializing and configuring Game Center, Apple’s social-gaming network. Keep players engaged using Rewarding players with achievements and Encourage progress and competition with leaderboards. Connecting players with their friends in your game and create new ways for friends to interact with each other. Let people continue your game on any of their devices by saving game data in their Make your app’s content available on multiple devices. Present familiar interfaces to Finding multiple players for a game with other players before the game starts. Sending messages to players in turn-based games to advance the gameplay as each person takes their turn. Exchanging data between players in turn-based games between players in turn-based games. Let people communicate with each other using FaceTime or Messages by turning your game into a Group Activities. Add a screen-sharing or game-streaming feature to your macOS game using ScreenCaptureKit. Distribute your game The App Store lets you easily distribute your game to hundreds of millions of people around the world on all Apple platforms. The App Store processes customer payments, provides secure and reliable downloads, manages releases, and helps promote your game. Distribute your game through the App Store. Join the Apple Developer Program and upload builds using Xcode. Use App Store Connect to configure game-oriented features, distribute your game for beta testing, and submit builds to App Review. Preparing your app for distribution and let the App Store optimize downloads for each platform. Enable faster downloads of your game by Background Assets, and downloading them separately. Create your product page on the App Store with app previews, screenshots, and a description that gets players excited about your game. Make your macOS game available on Apple silicon only. Target your game for the “Apple silicon-only apps” section of the Mac App Store by targeting your game to Macs with an M1 chip or later. Give players confidence that your macOS game is from you and is free of malicious components by Notarizing macOS software before distribution before distribution. Protect the integrity of your game by enabling the Hardened Runtime capability. Select options to prevent against malicious code injection, dynamic library hijacking, and process memory space tampering. Contact Apple if you’re working on a groundbreaking, unreleased game and would like Apple to consider it for the Apple Arcade game subscription service.
