Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: meet-with-apple-214
$eventId
ID of event: meet-with-apple
$eventContentId
ID of session without event part: 214
$eventShortId
Shortened ID of event: meet-with-apple
$year
Year of session: 2025
$extension
Extension of original filename: mp4
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

Meet with Apple • Session 214

Press Start: Game development on Apple platforms

2025-11-06 • iOS, iPadOS, macOS, tvOS, visionOS, watchOS • 3:29:56

Learn to unlock the full potential of game development for iOS, iPadOS, macOS, and visionOS in this all-day online activity streaming from Cupertino. Whether you’re porting a PC or console title, crafting a mobile masterpiece, or augmenting your game with cutting-edge features, these in-depth sessions will help you find success in the Apple ecosystem. You’ll learn how to leverage Metal, optimize for Apple silicon, design compelling handheld experiences, and navigate the App Store to reach millions of players. Conducted in English. Agenda: (All times PST) 10:00 a.m. - 12:15 p.m.: Morning session - Press Start: Games on Apple platforms - Chart your course to Apple platforms - Level up with Apple game technologies - Bring your PC and console games to Mac - Power, performance, and scale on iPhone and iPad - Design great interfaces for handheld games 12:15 p.m. - 1:15 p.m.: Lunch break 1:15 p.m. - 3:00 p.m.: Afternoon session - Transform your game with Apple Vision Pro - Unlock success with premium games on the App Store - Boost discoverability and engagement with the Apple Games app - Explore curation and featuring on the App Store

Speakers: Charlyn Keating, Greg Essig, Adrienne Neumann, Allan Schaffer, Alexey Vinogradov, Rich Forster, Lionel Lemarié, Dylan Edwards, Adrianna Lewis, Nathaniel Ellingson, Mike Escudero, Nadia Thorne, Mischa Stephens, Kelli King

Open in Apple Developer site

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

Welcome to those of you in the room. Welcome. And to everyone online as well, welcome to the Apple Developer Center here in Cupertino. I'm Charlyn Keating. I'm the Graphics and Games Technology Evangelist with Worldwide Developer Relations. And on behalf of everyone here, everyone backstage, here at the Developer Center, we're just so happy that you're here today. Here at the Developer Center, our goal is to connect with you and help you create some incredible player experiences across Apple platforms.

This is actually one of four developer centers where we regularly host people for sessions, labs, and workshops. And we also stream content worldwide. So no matter where you are in the world, you can always learn something new. So today we're excited to welcome developers from 88 countries joining us online today. So thank you for tuning in.

Speaking of streaming, we do ask that you please refrain from doing your own video recording or live streaming while you're in the theater. You're welcome to take photographs and screenshots, but please leave the video to us. Thank you. your computer, or your Vision Pro, or any other device to take notes. And if you're here in the room with us, you can get online, if you haven't already, via the AppleWiFi network.

And for those of you here in the theater, if you do need to recharge your devices at any point, everybody's got power right there at your seat on the front of your armrests. So with that admin stuff out of the way, let's get into the fun stuff. So today, we've taken over the Developer Center to help you learn a ton about bringing your games to the hundreds of millions of players across the Apple ecosystem.

Let me get out of the way of the agenda because we've got a lot on it. In a moment, we're going to press Start on a full day. We're going to start with a look at the hardware and software that powers some of the amazing player experiences across Apple devices. And then after a short break, we'll show you some of the tools and the techniques that you can use to bring any type of game to every Apple device.

Then we'll head upstairs for lunch. And then afterwards, we're going to hear from Apple Arcade. We'll also explore the many ways you can bring a game to Apple Vision Pro. And we'll hear from the App Store about how they've been helping premium games unlock success on the platform.

So we're also going to welcome a special guest speaker all the way from New Zealand today. Very excited about that. And finally, we'll explore how you can boost your games discoverability using the new games app. And we'll also hear from the editorial team about what exactly they look like when they're featuring your games. So a lot of good stuff for you that we prepared. Very excited you're here again. So let's get to it. I'm going to hand it over to Greg and Adrienne, and they're going to help us press start on the day.

Discover game development on Apple platforms (standalone session)

Hi, I'm Greg. It's great to see so many of you here and online. And I'm Adrienne. Greg and I are part of Apple's Worldwide Developer Relations team. We're so excited to welcome you to a full day focused on game development across Apple platforms. Every day we collaborate with developers just like you, from indie dreamers to Triple-A powerhouses, pushing what's possible on iPhone, iPad, Mac and Apple Vision Pro. Today, you'll hear from the Apple teams who build the tools and technologies that make that possible. From graphics and hardware to frameworks and distribution. Let's start with what matters most the games.

It's an unprecedented time for games across Apple's ecosystem. In just the past year, cyberpunk 2077, Assassin's Creed Shadows, and Civ 7 have delivered stunning Mac experiences powered by Apple Silicon and Metal. We're seeing studios launch on Mac right alongside other major releases including day in date debuts. The real strength of Apple's gaming platform is the ecosystem one architecture that connects iPhone, iPad and Mac. We're already seeing it in action with games like Death Stranding and Wuthering Waves stunning high end titles shipping seamlessly across all three devices. This unified foundation lets developers reach a massive audience more easily than ever before. And now that same momentum is extending into spatial computing.

On Apple Vision Pro, we're seeing entirely new genres of spatial games emerge, blending the digital and physical worlds in ways we've never seen before. Titles like Glassbreakers from PolyArc and Pickle Pro from Resolution Games are creating fast paced, tactical experiences that could only exist in a shared spatial environment where your living room becomes the arena or the court.

This is redefining how developers and players think about Apple as a home for gaming. Before we talk about what's next, let's talk about the scale. Your games have the potential to reach players across more than 2.35 billion active devices, and that it's an incredible number. More than 2 billion Apple devices are active today, forming a unified foundation of hardware, software and technology.

So when you build for one, you're really building for all. Connecting with players across every screen in the Apple ecosystem. This means your total addressable market isn't just one generation of hardware. It's a global install base that keeps growing year after year. To put that in perspective, more than 500 million people play games on their iPhones. It's one of the largest, most engaged player communities in the world. But reach is only half the story. The other half is discovery. And now Greg will tell you more about that.

The App Store continues to be where players find great games. It drives more than 800 million impressions every single week. It's home to millions of games and hundreds of millions of active players worldwide. For developers, it's more than a storefront. It's a trusted place where quality and creativity stand out.

The App Store continues to evolve in new ways to help players find and enjoy your games. Features like preorders try before you buy, and Universal Purchase make discovery simple and seamless across Apple devices. It's a global stage designed to showcase your work and help you reach players everywhere.

All this progress makes it easier than ever for your games to find their audience. This fall, we introduced the Apple Games app, a new all in one destination where players can discover, download and connect through the games they love. It brings everything together, making discovery easier and engagement deeper than ever.

If your games on the App Store, it's already part of this new experience. The games app launcher puts it right in front of millions of players. And when you add features like Game Center, you deepen connection, turning discovery into community. And whether you publish through the App Store, arcade, Steam or your own channel, you still reach Apple's global gaming audience.

Inside the games app, players also find Apple Arcade, our curated collection of premium titles from developers around the world. Every game is hand-picked, polished, and designed to shine across all our devices. Together with the Apple Games app and Apple Arcade, they show just how vibrant gaming has become across our platforms. They represent the full spectrum of opportunity, from discovery to delivery to play. And now that we've looked at how players find your games, Adrian's going to take us into the technology that makes it all possible.

We've talked about how players find your games. Now let's look at the hardware that brings it all together. Studios everywhere are embracing Apple silicon with its incredible CPU performance, unified memory, and advanced GPU pushing what's possible in games with visual effects like advanced physics, massive open worlds, and even real time global illumination. When you design directly for this architecture, you see real performance gains with less overhead. And when you build for Apple platforms from the start, you can create experiences that scale beautifully across every device.

This year, we introduced the M5 chip, the next leap in Apple silicon, now powering the all new iPad Pro, MacBook Pro, and the latest Apple Vision Pro, along with the A19 chip family powering the new generation of iPhone. Each device is built on the same design philosophy Performance, efficiency, and a unified architecture that skills beautifully from your pocket to your desktop to spatial computing. Apple Silicon has been powering our devices from iPhone to Mac, and it continues to drive innovations like Game Mode and Apple Intelligence with exceptional gaming performance across every platform.

Apple Silicon was built for you and for your games. Unified memory lets the CPU and GPU share data instantly for fast, efficient performance. Advanced GPU architecture from hardware accelerated ray tracing and mesh shading enable real time lighting and geometry for next generation realism. Our thermal and power systems are engineered for sustained performance and smooth, stable frame rates during longer play sessions. That same architecture scales to iPhone, bringing advanced assets and effects to mobile with remarkable performance and efficiency.

Our unified platform extends into a new dimension with Apple Vision Pro. The same Apple Silicon architecture that powers Mac and iPhone drives Vision Pro as well. So your assets, shaders and optimizations optimizations carry over seamlessly. This lets you bring your existing games into a new space, or build entirely new experiences from the ground up.

Vision Pro now delivers greater performance for games, enabling richer spatial experiences. We've expanded memory to make it easier to bring high end iPad titles over in compatibility mode, and apps built with Metal can now use hover effects so players see responsive feedback the moment they reach for an element.

We're also delivering more options for precise input. visionOS now supports PlayStation VR2 Sense controllers, giving developers a familiar two handed control scheme for complex games. A native hand tracking now runs at 90Hz, providing highly responsive interactions with no extra code required from you. Now let's turn our attention to software and the API, starting with Metal. Greg.

Metal is our low overhead API that gives direct access to the graphics and compute power of Apple Silicon. And it's how you maximize efficiency and create incredible visual experiences. This year with Metal 4, we're enabling the next generation of games. You can use the full MetalFX suite, including upscaling, Frame Interpolation, and Raytracing denoising to render at higher resolutions and reach even higher frame rates, all while maintaining incredible visual quality.

It's everything you need for performance and polish, and we're integrating machine learning directly into the graphics pipeline. With Metal 4, you can run inference networks right inside your shaders to compute complex lighting materials and geometry that enables photorealistic effects that were once only possible in offline rendering, now happening in real time beyond the renderer.

We provide a rich set of frameworks to perfect the complete game experience. These are the tools that elevate good games into great ones. System features like Game Mode automatically optimize system resources for your games so you get smoother performance, lower latency, and more consistent frame rates for every player.

The new GameSave framework makes seamless cross-device cloud saves trivial to implement. Players can switch from iPhone to Mac to Vision Pro and pick up exactly where they left off with Game Center. You can bring players together through Achievements, Challenges, and other scalable re-engagement features that keep them connected and coming back for more. The Touch Controller framework lets you easily add high performance, customizable on screen controls and background assets. Solves the first launch download problem. Your games can start instantly while additional assets continue downloading in the background.

These are integrated building blocks designed to save you time and help you create experiences that feel truly native to Apple platforms. Everything works together so you can stay focused on gameplay and creativity. This all comes together in Xcode, our integrated development environment. Xcode is the best place to build, test and debug your games.

It features a powerful source editor and deep integrations with our performance and analysis tools. With Instruments, you can profile your games performance, spot bottlenecks, and get detailed insights into CPU and GPU usage, and the Metal Debugger lets you capture and inspect the frame and even debug your shaders line by line.

For those of you with existing PC games, we've built a comprehensive toolchain to accelerate your path to Mac. Your journey starts with the Game Porting Toolkit. It's a suite of technologies working together to simplify the process. Everything is designed to help you evaluate performance and bring your game over faster. The evaluation environment translates everything from direct X12 calls to input and audio, giving you a real time performance profile of your unmodified games. And with tools for remote debugging from a windows environment, you can continue using your existing PC workflows.

And the Metal Shader Converter is a robust compiler that turns your existing HLSL shaders into fully optimized Metal libraries. We're removing friction from the porting process systematically step by step. Let's take a look at Wuthering Waves. This open world action RPG from Kuro Games runs natively on Apple Silicon, delivering smooth, high fidelity performance thanks to MetalFX Upscaling denoising and optimization, every surface shadow and character comes alive with sharp detail and fluid motion.

It runs at a consistent 60 frames per second, maintaining incredible stability and responsiveness even in the most demanding scenes. Players explore vast, beautifully rendered environments and move with complete freedom across sweeping landscapes and vertical cities. It's a stunning experience on Mac, and it scales seamlessly across iPad, iPhone and Apple Vision Pro, reaching more players than ever from mobile to desktop to spatial computing. The same MetalFX powered pipeline and unified architecture deliver quality and performance across every device.

To sum it up, your great games plus great hardware and great software all come together to create this opportunity. Your work can reach players on every Apple device without compromise. That consistency means you can focus on gameplay, storytelling, and creativity. We're at the start of a new chapter for games on Apple platforms, and it's you who is shaping what comes next creating new genres, exploring new technologies, and defining the future of play. Everything you'll hear today is designed to help you build on that momentum and bring your best ideas to life.

Today is all about what you'll build next. Our teams will guide you through the full game creation journey, bringing your game to Apple devices, tuning it for peak performance, and helping you reach success after launch. It's a full day of practical insight and live demos from the teams behind the tools. We can't wait to see what you'll create. And with that, let's get started with a look at how to bring your games to Apple devices and the core technologies that make it all possible. Please welcome Allan to the stage.

Chart your game's course to Apple platforms (standalone session)

Yeah. Good morning. So my name is Allan Schaffer. I'm part of the technology evangelism team here at Apple. And just delighted to be here with an audience of game developers. I feel like I'm among family here. This is great. So thank you all for being with us here today.

Also up there, thank you to the online audience as well. So you've just heard about the incredible momentum and the opportunity that's available across our platforms, everything from Triple-A titles that are launching day and date on the Mac to groundbreaking games coming into Apple Arcade. All of that energy is very real, and we want you to be a part of it.

And if you've been developing for Apple platforms for a while, or if it's been a while since you've dived in, you might be surprised to see how much the technology stack has evolved over time. You know, with the introduction of Apple Silicon to the entire lineup now, it's now possible for your game to target Mac, iPad, and iPhone from a single code base. We call this Apple's unified gaming platform, and this architecture means that even very graphically demanding games, high performance games can run across this full range of hardware and platforms.

And the unified architecture is also the foundation for building games for spatial computing on Apple Vision Pro. So many of the core principles are the same here. So optimizing your assets, tuning performance for Apple Silicon and taking advantage of our native frameworks. And later this afternoon we'll show you how to take some of those first steps.

But. So how do you bring your game to this platform? And of course, there's many different starting points. All of you have a unique starting point for you. You know, some of you might be building your first game from scratch. Perhaps you already have a successful title or multiple titles up on the App Store or on another platform, but for the next few minutes, I'm going to focus on two specific scenarios for bringing existing high performance games to the full, unified platform.

So the first of these scenarios is for those of you who are using a major game engine. The second is for developers who are developing a custom engine from an existing PC game and coming from DirectX X over to Metal, and we'll see if some of you might fit into either of these categories. But so let's start with those of you who are using a game engine.

So if you're an expert in unity or unreal, your path to the platform is very streamlined. These both of these engines have very deep support for our platforms, and they both leverage Metal in their renderers for direct access to the GPU. And that makes it just very easy. They do the heavy lifting and makes it easy for you to target Apple platforms right out of the box.

Now, of course, many of you are targeting unity, right? I imagine here in the room. Yep. So and quite often for you it's just as simple. Or it can be as simple as going into the editor and choosing a mac or an iPhone or a Vision Pro as your build target and then use build pipeline.

It understands our platforms, it understands it, understands our tools like Xcode and packages up all your assets. You know your materials, your shaders into the right formats automatically for you. And the situation is much the same for Unreal Engine as well. It has fully native support for Apple Silicon, and you can use the editor to target iOS, macOS and visionOS.

But now let's go back to unity for a second. So because all day today, you're going to hear us talk about various features and native APIs that you should be using. But if you're a unity developer, chances are you'll be thinking, well, okay, sure, those are great features, but how do I use them in a unity project, right? And the answer is our Apple Unity plug-ins. We have a wide set of them.

So these provide a bridge to native APIs into the features that players really have come to expect in games that are running on Apple devices. So each plugin exposes a C-sharp based unity script, which maps directly to the underlying framework. And this makes it easy to add new mechanics. Make your games more accessible. Tap into the latest features and game services on our platforms. All right so let's start with these. Dive into these starting with Game Center.

So Game Center is Apple's social gaming network. And with the Game Center plugin you can easily integrate Leaderboards, Achievements, Challenges matchmaking and so on. And it's how you can tap into the Apple Games app helping you to connect with more players. And Misha is going to cover more of this this afternoon.

The Game Controller plugin gives you flexible input features with support for all of our Made for iPhone or MFI compliant controllers, as well as the popular controllers from Sony and Microsoft. Now, in addition to game controllers, that framework supports input from keyboard and mouse. You also have access to controller specific button glyphs, so you can customize your UI at runtime based on the input device that the player has connected.

And for mobile devices, the framework also includes a fully customizable virtual on screen controller. And the key to that is that it behaves just like a physical controller. So with that same API, you can support touch input on screen without having to change any of your existing game logic.

All right. Now moving on to accessibility. So the accessibility plugin helps you to build experiences that are more playable for everyone by giving you access to assistive features like VoiceOver and Dynamic Type. So with VoiceOver, this is our built in screen reader. You can make your UI more navigable for players who are blind or who have low vision. And with Dynamic Type, your game's text can automatically adjust to the player's preferred reading size to ensure that it's always legible.

You can also create more immersive physical feedback, so the Core Haptics plugin lets you design and playback custom patterns that tightly synchronize haptics on the device and audio from what we call an app asset. But the real power of this API is that the patterns aren't just static. You can modify them programmatically by adjusting parameters like their intensity and sharpness in real time. So, for example, you could tie the haptic intensity of an explosion to the player's distance from the blast. And so this means that haptic feedback can be driven dynamically by your game state.

Now let's mention audio. So I know that many of you are bringing your own audio middleware like Fmod or Wise. And both of those are great workflows, if that's what you're using, stick with them. But if you want to tap into a native solution, you can also use the Phase plugin.

So Phase isn't just a sound player, it's a full spatial audio engine. That means it understands your scene's geometry and materials to automatically handle effects like occlusion and reflection and reverberation. So you can build up whole soundscapes in unity using the Sound Event Composer and create audio logic that then reacts to the game parameters in real time.

And then finally, tying all of this together is what we call the Apple Core plugin. Get it? So yeah, it helps you to. Hey, that landed all right. So it helps you to manage build settings and simplifies all the build process. So this acts as a foundation for and dependency of all the other plugins. All right. So this Apple Unity all these plugins are all open source. They're available for you today on GitHub. And you'll find the project source the documentation there, sample code, etc.. Everything you need to get started right here at this URL.

All right. So now let's talk about our second situation which might apply to some of you, which is porting an existing PC game over to our platform. So if your goal is to bring a windows or a console game to Apple platforms, we have actually a dedicated end to end suite of tools for you called the Game Porting Toolkit.

Now, the philosophy behind this toolkit is really to meet you where you are. If you're working on PC and leveraging, excuse me, enabling you to leverage your existing PC workflows and tools. And obviously it's not just one thing, it's a whole suite of tools and resources that are designed to help you throughout your entire porting process, from the initial evaluation to native implementation and then the final polish. So let me walk through these.

So if you've already got a PC game that you're working on, the first tool that you can use is this evaluation environment. You can actually take your existing x86 windows binary as is and run it on your Mac. So it's going to use an emulation layer to translate the windows API calls to our platform APIs in real time.

And then just like that, your PC game will be up and running on a mac. So here you can see control by Remedy Entertainment. It's running on a MacBook Pro through the evaluation environment, and there's a new beta of the evaluation environment, by the way, that can support Sparse Textures, Sparse Buffers, etc. it has experimental support now for MetalFX Upscaling denoising and frame generation as well.

And then over there you see the Metal performance HUD enabled. And with that you can get just an immediate idea of your game's baseline performance running on a mac. And this is really going to help you triage your effort, showing you what's working well and which areas will need focus when you begin the porting effort.

Another thing is in while your game is running in this evaluation environment, all our graphics profiling tools in Xcode just work. So you can still use things like the Metal Debugger to capture and inspect a frame. You can use Metal System Trace to analyze the performance and all. That's before you've even written a single line of native Mac code.

Okay, so that's the evaluation environment. Moving on. So for those of you with established asset pipelines on windows, we also provide a whole set of Metal developer tools for windows. And this lets you use your existing infrastructure to compile your graphics and compute shaders, convert textures into optimized formats for our GPUs, and do all of that. All of that on your windows machines. If that's where you're working, then when it comes to your build workflow, this is something that's brand new. This is the Mac remote developer tools for windows.

So this enables you to set up a mac for remote project building and debugging, and then trigger builds and debugs right from within Visual Studio. So this is a way that you can bootstrap your port and really catch issues early. And cross platform projects that are also targeting Apple platforms.

Now, once you've evaluated performance, the next step often is to use the Metal Shader Converter. So this will automatically convert direct Intermediate language or DXIL into a Metal library. And it does things like preserve your debug information so that you can use the Metal tools in Xcode to validate and profile all those converted shaders right away.

Now, for those of you, if you're working on a PC, chances are your engine code is probably written in C++. And so that's where Metal-cpp, which is just another piece of this toolkit, comes into play. It's a very lightweight, header only C++ wrapper for the entire Metal API. And that allows you to use Metal in a language that's already familiar with you and integrate it seamlessly into your existing code.

Now, this toolkit also includes our Human Interface guidelines for games. And now let me stop and think for a second, because this is actually something that's really essential for every developer here, regardless of your path, whether you're using an engine or you're porting from PC or just building natively or from scratch on our platforms.

This is something that will really help you understand the platform conventions that players will be expecting. It has advice on everything from your first launch experience to designing great on screen controls, handling input and a lot more. And we're actually going to deep dive on this in a session coming up a little later this morning.

And then the final piece here is the last piece of the toolkit is the game porting sample code. Now don't let the name fool you in a way just like the the Human Interface guidelines, this is actually meant to have value for everybody. It's really useful as a tutorial for porting, but it's also just a complete standalone example of a native game built for Mac and targeting iPad and iPhone, so that makes it just a great reference for best practices really. Whether you're porting something from DX or building a custom engine, or if you want to use it as a foundation for a new project.

So let me show you a closer look. So this project is structured to guide you kind of step by step through the main elements of the reporting process, showing you the best practices for each element of your game. And it's all organized into all the source code tutorial documentation and so on into these folders, with each one showing you exactly how to port your game systems like the graphics, shaders, audio game controllers, and everything else.

Really. So for example, inside the folder for game input, I can see all the files that are in the project that handle that. But also there's a Readme file that explains exactly how to bring game input support over from another platform, and it just helps you understand and how to simplify your code.

And because it's a full Xcode project, you can just build it and run it and see how it all comes together. You can play around, use it as a base for a brand new game project, or feel free to take parts of it for use in your own projects. And because it it builds, it includes build targets for both macOS and iOS, so you can just as easily build and run this game on an iPhone or an iPad. So that's a real time saver for bringing up a new game on our devices.

But okay, so that's a quick overview of the Game Porting Toolkit and just how it helps you to bring your PC games to our platforms. We're going to cover more of this process in the bring your PC and console games to Mac session. That's coming up a little later, and you can find the Game Porting Toolkit.

Version three is now in beta, along with more sample code and documentation and lots of videos at developer.apple.com. Okay, so I've covered two of the paths here now for bringing your game to the unified platform. Whether you're using a third party engine or porting your existing PC game, or maybe for many of you, building from scratch.

Just to show, it's easy for you to target the full range of Apple devices and the path you choose. There is just the start. But. So now to take you on the next step, I’d like to hand things over to my colleague Alexey. He's going to tell you more about our native gaming technologies.

Level up with Apple game technologies (standalone session)

Hi, I’m Alexey and I lead the Game Technologies team here at Apple. Your players expect the best possible experience in your games. And today I want to talk about the frameworks, tools and resources that are available to help you achieve it. In fact, the Apple Arcade system is really outstanding when it comes to gaming. The vast majority of players already have more than one device available, and they are carrying these devices around using them every day. They don't need an additional dedicated device just for gaming, which means your game is already always in the hands of a lot of players.

As I mentioned previously, this is Apple's unified gaming platform, and game technologies that are available to you are also unified across Apple platforms, which means that in most cases, you don't need any special handling to support your game across Apple Cash system. Over the years, the OS and frameworks that help enable great gaming experience have continued to advance. As you can see, there are a lot of technologies available to you that can probably spend the whole day talking about.

I'm going to talk to take you through just a few of these here, like Background Assets System Experiences and Core Game Technologies, and my colleagues will later deep dive into areas like Metal or Game Center integration. When you are bringing your game to Apple platforms, there are a few areas you can focus on that will make the biggest impact in terms of players wanting to return to your game over and over again. Let's start with your game's first launch.

People who use Apple devices expect their apps to download pretty quickly and then immediately be ready to launch. That means you want to make sure players can jump into gameplay as soon as installation finishes. But if the first time the player launches your game, they see something like this a message saying that they need to download more assets before they can have any fun. Well, that's probably not the first launch experience they have been looking for.

What you want, and more importantly, what they want, is to jump into the game as soon as possible, right when the installation finishes. To do this, you want to make sure the essential content of your game is downloaded and ready at launch. An example. Initial installation could include some tutorial content that you want your players to get familiar with, so they can start playing right away. You can continue downloading the rest of the content in the background, and the player doesn't even need to know it's happening.

It can look seamless to them, and the whole game will feel playable from the first launch on Apple platforms. You can achieve this using the Background Assets framework. It is designed to deliver a great first launch experience. You can configure how the system downloads your assets to the device, and prioritize the content that is required to start playing. Using Background Assets, you can offer optional downloadable content that players can unlock within the game, and you are able to update your game assets separately from the main game bundle.

The manage Background Assets framework, introduced earlier this year, improves the API and simplifies the workflow for games on TestFlight or the App Store. You get up to 200GB of Apple hosting capacity, and the API is simple to use, including built in support for automatic out-of-band asset updates and system management.

Manage Background Assets are also tightly integrated into the same workflow you use for your game distribution on Apple platforms. You can use TestFlight to better test content changes in your game, and once these changes pass, App Store review delivered them to players. Now that your players can enjoy your game straight away, you want to make sure your game takes most of the system. Most of what system provides for gaming. Some examples of what it's important to players include latency for accessories like game controllers and headphones, achieving consistent frame rates and preserving battery life while gaming.

The first thing I recommend is to let the system know your app is a game, so that the system can enable Game Mode Game Mode optimize the system behavior to give your game even more resources. It reduces background activity so your game gets access to more CPU time to process complex tasks like rendering or physics simulation, and Game Mode also improves Bluetooth latency, making input and headphones more responsive on macOS and iOS.

Game Mode is enabled when a player launches the game in full screen. The Game Mode banner will let player know that it's active. It is simple to make sure your game enables Game Mode just add less, supports Game Mode key in your game's info.plist and set it to true.

Once enabled. Game Mode gives more system resources to your game to improve its performance, and it's important to manage them correctly to ensure your player's experience will be consistent across the whole gaming session. To do that, you can ask the system to enable Sustained Execution Mode for your game.

When it is enabled, the system will set performance to the steady state right from the game launch. This allows you to quickly identify a level of quality and performance appropriate for the target device, and you can be confident your players will have a consistent experience. It takes a couple of simple steps to enable Sustained Execution Mode. First, add the corresponding entitlement to your game. To do that, enable the capability in the sensing capabilities tools within Xcode.

Next, log in to your Apple Developer account and include this entitlement in the provisioning profile for your game. Now your game News will work together to deliver a smooth gaming experience. Last but not least is Low Power Mode, which has been tuned specifically for gaming so people can play even longer.

Starting with macOS Tahoe 26, if a game starts to use significant energy while the device is running on battery power, the system will send notification to the player and they'll have an option to enable low power mode. And not only that, with the new Game Overlay, players can toggle low Power Mode right inside it without even leaving the game.

To further improve experience for your players, you can set your game to respond and adapt to low power mode. The system provides you an API to detect when low power mode is active. Listen for NS processing for power state change notification when the low power mode state changes to enabled. You might, for example, optimize the quality settings to help extend playtime even longer. Now the system is on your side. Let me tell you about some key game technologies that will level up your player's experience.

I mentioned earlier how truly unique the gaming experience is on Apple unified gaming platform. People are using multiple devices every day and always have at least one handy all the time. Now they expect to be able to play their games across the devices they have. Your game can meet this expectation by synchronizing game state across all of your devices with cloud saves, so players can continue their progress at home, on the go, anytime, anywhere.

One of the ways you can accomplish this is by using the GameSave framework. It automatically syncs GameSave data across devices with the same iCloud account, and supports cases where the player is offline or signed out of a cloud. The GameSave framework also provides you with default UI that you use to show progress, while saved data is being synchronized with iCloud.

Notify the player about potential saved data conflicts and provide options to resolve them, or send an alert when the player is signed out of iCloud. And if you want to customize the player experience, you can use the GameSave API to integrate with your game's UI and add custom logic.

It is easy to enable the GameSave framework in your game and only takes a couple of steps. First, at the iCloud entitlement to your game. To do that, enable the capability in signing capabilities tools within Xcode. Select the iCloud documents checkbox in Game Project settings and add your iCloud container entitlement.

Next, login to your Apple Developer account and include the entitlement in the provisioning profile for your game. The GameSave framework is now ready to be used in your game. Let me show you how to start in the typical flow to use game framework. GameSave framework. First call Open Directory. GameSave will start fetching the user's saved data in the background while GameSave is sinking. You can check the status providing a window for user alert.

And finally, when sinking is finished, the save will be available from the URL. Let's run these diagrams flow into the real code. In this talk, I will use Objective-C for simple code, because I know most of the game engines you use are written in C++, and this format will be easier for you to integrate into your existing code base.

To start synchronization with iCloud, call Open Directory for container with your game's container identifier. While the GameSave framework performs a sync in the background, you can call the finish syncing, completion handler, and async logic to it. When cloud sync is done, you can check the state and handle any errors if needed. Finally, use the directory state URL to access players Savedata. Your game is now ready to share saves across all the devices it supports.

Another important consideration when when you want to make your game shine across various devices is input. Apple platforms provide comprehensive support for peripheral input devices like keyboard, mouse, and game controllers. You can allow players to enjoy your game in exactly the same way as they do on other platforms. However, in addition to that, we are especially unique in our support for high end games on touch platforms.

Apple's SDK provides a complete set of frameworks to support you, enabling all types of input in your game. Game Controller framework is an entry point to enable keyboard, mouse, and various game controllers input in your game, and Touch Controller framework is there to extend it to support touch input. Let's start with the Game Controller framework.

The Game Controller framework's goal is making it easy to add support for all different kinds of efficient, low latency input across Apple platforms by abstracting input hardware through a common API. The Game Controller framework lets you lets you write your input code once without having to worry about how input may have been mapped or other differences among specific controllers, keyboards, or pointing devices. Players can create system wide and per application Game Controller input mappings, which help make your games more customizable and accessible.

And you can build your UI to reflect the symbols and capabilities of the specific controller the player is holding. So whether your player is on team circle, square, triangle cross, or team Abxy, your game UI will look right for them. The basics of the Game Controller framework is reacting to notifications about different kinds of GC device objects, connecting and disconnecting, and either pulling active devices for input state or setting up a value change handlers to be notified about input state changes.

When controller connect or disconnect from the system. GC controller objects are created and removed. The same applies to the GC keyboard and mouse objects. When keyboards or pointing devices connect or disconnect. All you need to do is add an observer to find out. For example, GC object connects or disconnects. Then it's up to you whether to set up change handlers to notify when the state changes, or pull the state of the controllers elsewhere. This is the same pattern you should use, whether it's a controller, a keyboard, or a pointing device.

There are so many great controllers to choose from form fitting controllers like Backbone Pro or Vagabond or Razer Kishi V3 Pro XL. Easily turn your iPhone or iPad into a handheld gaming console. Game Controller framework also supports most of the modern and most popular controllers, like Xbox Controller or Sony DualSense controller. Also, players using latest macOS, iOS, and visionOS can now take advantage of easy pairing and easy switching for Sony controllers to allow even more diverse audience to access your games. Game Controller framework supports accessibility controllers like PlayStation and Xbox Adaptive Controller.

Last but not least, starting with visionOS 26, players on Vision Pro can now enjoy your game using Sony PlayStation VR2 Sense controllers. Stay tuned later. Stay tuned. Later today, Nathaniel will tell you more how to build a special game for visionOS to further expand variety of input methods your game supports. Touch Controller framework provides an easy way to add touch input support into your game.

Touch Controller frameworks comes with a wealth of button types and behaviors to support your game's common inputs. On top of that, each button can be customized to best fit the needs of your game, and the API Indirect Draws integrates directly with Metal to ensure the highest possible performance.

Touch Controller framework shares the same core principles I have explained before for the Game Controller framework. When Touch Controller is enabled in your game, it will appear as GC controller object and you will be able to pull it state or provide handlers to lead to listen for input updates.

It's very easy to integrate Touch Controller framework in your game. Here are some hints. How to start. First initialize this descriptor, which contains properties like drawable size or Metal device. You can fill them yourself, or if you're using Mbtc view, you can simply call init. M2 method. Then you create an instance of PC Touch Controller and initialize it by calling init with descriptor method and providing descriptor you've just created.

Now you can start adding controls. For example, here I'm creating the thumbstick control. I feel the descriptor and simply call a thumbstick with descriptor Matter to add it to my Touch Controller. Once you are done adding controls, call Connect method to connect the controller to your game and make it ready to be displayed.

Finally, you can draw your controller on the screen by calling render using Render Command Encoder and use existing Metal command encoder. For example, the one you are encoding your UI rendering tool to allow Touch Controller framework to handle touch events, you can simply bypass touch events you are receiving from UIKit directly to the Touch Controller by calling Handle Touch. Begin at point method.

And if you are already using Game Controller framework to support Game Controller input, you won't need to do any special handling. Touch Controller provides the same mechanism to pull information about the current state of the gamepad, like pulling the thumbstick position. By enabling touch support for input in your game, you can easily provide players with options. Some will prefer to play using touch or just don't have a controller handy. They can enjoy your game any time they are ready.

Now your players can enjoy your game on all the devices they have and interact with it the way they prefer. It is a great time to make sure it meets their and your performance and quality expectations while playing. Graphics is one of the most demanding parts of your game, and surely you want to render as much details as efficiently as you can.

Metal is Apple's low level graphics and compute API. It powers multiple generations of complex applications, including the latest games and props. Metal supports all the features you need to deliver the best in class graphics and performance in your game. It is very easy to start using Metal in your game.

It shares the same concepts you are used to when it comes to the render backend implementation using other graphics graphics APIs. Metal provides you an efficient way to submit graphics, compute and machine learning work, scaling to thousands of draw calls and dispatches per frame. You can enable all modern techniques supported by your game, like mesh shading and ray tracing, to take full advantage of hardware and provide your players with exceptional visual quality.

Stay tuned as my colleague Ridge will tell you more about Metal later today. Is there ever growing complexity of graphical effects? It takes more effort to keep the frame time of your game in budget, and of course, you want to achieve that without sacrificing visual quality. You can do that by integrating MetalFX Upscaling support into your game. MetalFX scales lower resolution image up to the target resolution in less time than it takes, rendered directly at the output resolution, and it supports both spatial and temporal upscaling so you can balance between visual quality and performance.

You can further boost your game's frame rate. When you integrate MetalFX Frame Interpolation in combination with MetalFX Upscaling, you will be able to get even more of a performance. Uplift Your game can use a Frame Interpolation to generate intermediate frames in much less time than it will take to render each frame from scratch. Pushing a game's performance even further.

Before we wrap up, I wanted to get back to this slide. There are so many game technologies available on Apple platforms, and unfortunately, I wasn't able to tell you about all of them here, but I want to encourage you to look on some of those to level up players experience even further.

Like HDR support in example, your game can take advantage of the gorgeous displays Apple devices have and give your game even more vivid look, or haptics and rumble support that give even more immersion for your players. Visit developer.apple.com and start exploring about these technologies and all the rest available to you, including best practices and sample code to get started. And now over to Charlyn. Thank you.

Hi, thanks, Alexey. So that was a lot of great stuff. And hopefully you've learned something new that you didn't know before that you can bring home today, after today. We've got a lot more coming up, though. So right now, let's take a short break. Feel free to step away from your seat, grab a beverage, have some conversation, and we'll see you back here in 15 minutes.

Welcome back. Welcome back from the break. I think a few people are still trickling in. Ah, they'll get here. So yeah, I hope you had some coffee. I hope you had some good conversation. And you're ready for what's coming next because what's coming next is we're getting technical.

So we're going to talk about the frameworks, the tools and technologies that, and the techniques as well, that are available to help bring any type of game and scale it beautifully across every type of device. And then we're going to get a little bit into design so you can hear about how to make it look beautiful on every device. So we've got a lot of really good stuff coming up. And to kick us off, I'm going to leave it to Rich.

Bring your PC and console games to Mac (standalone session)

Hi there. My name is Rich Forster and I'm here to talk to you about bringing your game and its renderer to Metal. I'm assuming you have a PC or console game, and you want to make it part of the growing catalog of titles on Mac. Bringing your game to Mac means that you can target a range of devices with the common foundation of Apple Silicon. This is inZOI, by the way. Apple Silicon means that you have a strong baseline of advanced rendering features, and knowing the capability of each device, you can give your players tune settings for their Mac.

Porting your windows game to a whole new platform typically involves many steps before you even see your first scene running, including recompiling all your source code, converting thousands of shaders from HLSL, reimplementing your graphics subsystem, and converting your use of audio input HDR and display All before you see your first scene running natively on the device. And then finally debugging and optimizing for performance before you release.

With the help of the Game Porting Toolkit, you can now see your game's first scene running on the platform much earlier. And I'll also show how the Game Porting Toolkit help simplify some of the other porting steps too. But first, you have a windows game, so let's work out how we run it on Mac.

Earlier today, Alan talked about how the Game Porting Toolkit includes an emulation environment so that you can experience how well your game runs on Mac. The evaluation environment means remedy could use the Game Porting Toolkit early in the porting process to evaluate how well their game Control would run on Apple Silicon.

With this, they were able to then experiment and find out how technologies like MetalFX would help them improve the performance of Control. The best way to test your game on Mac is to use the Game Porting Toolkit through Crossover. Running your game is as easy as copying it into Crossover and running it. For example, for remedy to run control, the first step is to copy the game into a bottle. In Crossover, a bottle is what Crossover uses to store windows applications. In this video, control is copied into a Windows 11 bottle, and once the app is in a bottle, you can create a shortcut to the executable and then run it from Crossover.

When the game starts running, it's using Game Porting Toolkit to provide the windows emulation and the game is able to run on Mac. Just like that, the emulation environment of the Game Porting Toolkit translates your windows binary and its use of windows APIs for input audio networking, file system use, and of course, graphics. All the graphics features such as GPU-driven pipelines, SIMD operations, and even older features such as Tessellation and geometry shaders are all supported and translated.

Once you know, your game can run really well on Apple Silicon without any code changes. Let's talk about how Game Porting Toolkit simplifies your porting journey. Then a core part of porting the rendering will be learning about Metal. So I'll introduce you to what Metal is, what it can do, and I'll make sure you have all the information you need to get started with your port. So let's go back to the porting Timeline to see where to start.

The first step is putting your source to build for Mac to get graphics on screen starts with porting your renderer source code. Metal is an Objective-C API. If you've not used Objective-C before, it can seem like there's a lot of extra work here, right? Like including a whole new language. This is where Metal-cpp comes in. Metal-cpp is a lightweight C++ wrapper. I say it's lightweight because it's implemented as a header only library with inline function calls.

It provides 100% coverage of the Metal API, implementing a 1 to 1 mapping of C++ calls to Objective-C APIs, and Apple is committed to maintaining and updating this library along with the latest Metal APIs. It's open source under the Apache two license, so you can modify the library and include it into your game easily.

So you're probably wondering how does Metal-cpp even work? Metal-cpp uses C to call directly into the Objective-C runtime. This is the exact same mechanism that Objective-C compiler would use to execute Objective-C methods, and within Lightning, this results in no overhead relative to the same Objective-C code. Since Metal-cpp implements a 1 to 1 mapping of C++ to Objective-C calls, it gives you memory management control. Like direct, Xcode includes lots of tooling to help you validate your object lifetimes and find any leaks.

And this 1 to 1 mapping also allows all of the Metal developer tools to work seamlessly with your Metal-cpp code. And now that you know that you don't need to learn a whole new language to port your renderer, let's talk about all of those HLSL shaders that you use to render your game To write shaders for Metal, you use the C++ based Metal Shading Language at runtime, you use functions from metal libraries to create the shader pipelines you use for rendering and dispatching compute work. The metal compiler takes your source and converts it to a metal library to use at runtime.

Starting with HLSL shaders and getting to a metal library used to be a complex chain of libraries and tools, and a limited feature support. Metal Shader Converter massively simplifies this process and exposes many more features for HLSL files. Use the DXC compiler to compile your HLSL shader to create a DXIL file. Then the Metal Shader Converter uses that DXIL file to create your metal library.

Metal Shader Converter consumes DXIL to produce metal. Use it alongside. Alongside the open source DXC compiler tool to build an end to end shader pipeline, converting from DXIL to Metal is very fast because Metal Shader Converter performs the conversion at the binary level. It also enables you to leverage advanced features of Apple GPUs such as Mesh Shaders and Raytracing pipelines, as well as all of the tools that support Metal development.

Converting your shader using the command line tool is very easy. After you set up DXC and shader converter, start by compiling your HLSL shader to DXIL. DXC requires you to specify the entry point to compile the type of shader and the output file. Next, cool shader converter on the DXIL file just created and specify the Metal library to create.

By default, shader converter generates a Metal library with the latest version of Mac OS, as well as a JSON file with useful reflection data at runtime. You pass this Metal library to the Metal device to load it and build pipeline state objects while using the command line is great for individual shaders.

Metal Shader Converter provides a dynamic library with a C interface on Mac OS and windows. This will help you get started quickly by letting you convert shaders at runtime during development, and then you'll be able to move all of the conversion offline and do it ahead of time with your asset pipeline tools.

But porting those shaders isn't just converting them from HLSL to Metal libraries. There's also the work of preparing to execute those shaders at runtime. Metal Shader Converter provides a runtime that helps with a lot of the common tasks, reducing the porting effort. This includes handling a range of binding models based on how your renderer passes parameters to your shaders, as well as how to execute your shaders in the most efficient way, like translating shaders to other stages such as Tessellation as Metal Mesh Shaders to improve performance, and then to help you adopt shader converter and its runtime.

There's a set of simple examples the porting Raytracing pipelines and porting ray query pipeline samples show how to port Raytracing, depending on whether you're using ray tracing pipelines or jQuery. The porting Tessellation geometry and instancing pipeline sample shows the more complex use cases of HLSL geometry and tessellation shaders using metals, mesh shading, API and the Function Constants and Framebuffer Fetch sample show you how you can access Apple Silicon specific features from HLSL.

The Get Started with Metal Shader Converter page has a lot more detail on Shader Converter and its runtime. This details on which shader model features are supported. Lots of reusable example code snippets. Performance tips as well as links to those samples. So now that we know the Game Porting Toolkit helps with the source code you already have. Let's talk about Metal.

As Alexei said earlier, Metal is Apple's low level graphics, compute, and machine learning API. It is powered multiple generations of complex applications, including the latest games, and this year we introduced Metal 4. Metal 4 is built with the next generations of games, graphics, and compute apps in mind. It unlocks the full performance potential of Apple Silicon, while ensuring you'll find it familiar and approachable. If you're coming from other graphics or compute APIs like DirectX.

Metal 4 is supported on devices equipped with the Apple M1 and later, as well as the A14 Bionic found in the iPhone 12 and later. I'll start by introducing you to the fundamentals of how metal works. Metal is how your application on the CPU communicates with the GPU. The first advantage of Apple silicon is that the CPU and GPU have access to the same large pool of high speed unified memory, so you're not constrained by a separate memory pool for the GPU.

This means all your buffers and textures are stored in that large pool, and can be accessed from CPU or GPU. You send work to the GPU with a command queue. You encode the work into command buffers to commit to the queue. Encoders fill the command buffer with work for the GPU.

Metal has encoders for compute, render, and machine learning and each of those draws or dispatches in an encoder can reference your buffers and textures for inputs and outputs. So your compute can read buffers and textures, generate new buffers that can then drive your rendering to generate an intermediate image that is passed with additional buffer of information to your encoder to generate your final image.

And while that covers the basics of how Metal works, and hopefully everybody has an initial understanding, Metal provides a wide range of features built upon that foundation to take advantage of. Apple Silicon. Metal supports the modern features that you depend on from other APIs, whether you're using the GPU to drive your rendering with Indirect Draws and dispatches, or taking full advantage of blindness resources with Sparse Memory Management, or rendering detailed geometry with Mesh Shaders and Raytracing.

Similarly, Metal also supports features that are specific to Metal and Apple Silicon GPU architecture to take advantage of. These will typically require extending your renderer. But as I mentioned earlier, Metal Shader Converter already supports Apple Silicon specific features like function specialization and Framebuffer Fetch. And there's that sample if you want to find out more.

As you start to use Metal, you'll find that there's a strong focus in its design to make it easy to use. There's a goal to make the overhead of the API as low as possible, while ensuring that the default behaviors make it simple to develop in Metal. However, to reduce CPU overhead, you can choose a path with more control, and this is where Metal 4 comes in. Metal 4 focuses on the best CPU performance for the API and aligns closer to other APIs like DirectX and Vulkan. For example, you can choose to use Metal 4 and manage your own resource synchronization, or get started with an earlier version of Metal that handles resource synchronization for you. And to help with your adoption, Metal provides a suite of tools.

Once you start putting to Metal and your code is compiling, the next thing you need to know is that you're using Metal correctly, right? Metal API validation checks your use of the API on the CPU side, making sure that your descriptors are correctly configured and your commands are correctly encoded. Metal shader validation checks your use of the GPU, ensuring that your shader inputs are set correctly and that your shaders don't invoke any undefined behavior. This also includes support for those HLSL shaders that you converted with Metal Shader Converter.

Both validation mechanisms will stop execution of your game and point the debugger at the location of any fault, whether it is in your game or shader code. Metal API. Validation is enabled by default in a new project. If you need to enable it. The setting is in the Scheme editor under the diagnostics tab and the checkbox underneath enable shader validation.

Once your game is rendering happily without any validation issues, you can move to the debugging and optimizing stage. Metal Debugger and Xcode enables you to do step by step debugging in case one of the pixels looks or feels wrong. When everything is looking good, the Metal Debugger and Xcode gives you insights into possible optimizations, and it shows you detailed profiling data for your GPU work to help you optimize further. Getting into the Metal Debugger is a breeze when your app is running. The Metal logo appears in the debug bar. Clicking this button reveals a popover for configuring capture settings, and the capture button brings you to the Metal Debugger.

The summary page provides an overview of the Metal workload, with some statistics and insights. To better understand the structure of the workload, use the dependencies viewer. This visualizes the workload in a graph. Starting from a bird's eye perspective. You can zoom in and see the various passes and their output resources in a short amount of time. You can scan across the entire workload, and when you find areas of interest, you can seamlessly take a closer look.

As you zoom in, the graph fades in additional details like all the resource attributes, and when there are visual artifacts, you can follow the graph upstream to find the source of the problem. And then when you narrow down the issue to one pass or even a specific draw call in a render pass, you can dive in even deeper.

Once you're at that draw call, you can start. You can start to debug that pixel that feels or looks wrong or say you're at a compute dispatch. You can also choose to debug one thread in the attachments viewer. You can zoom in, select one pixel, and then click the debug button in the bottom right corner to start the shader debugger.

The shader debugger enables stepping through the shader source code line by line. The variable sidebar on the right shows a quick preview of all of the variable values at each stage. Unlike traditional debuggers, it can capture the full history so you can move both forwards and backwards, and the navigator shows the lines of code that run for that pixel as well as the function calls. And then when there are four loops, you can see the variable values at each stage through the loop. Iterations two.

Sometimes you might find it useful to inspect the values from the surrounding pixels running the same shader. Clicking the preview button on the right visualizes the values from those neighboring threads in line with the source, and alongside runtime validation and Xcode's Metal Debugger helping you through your porting journey.

The performance HUD and Instruments will help you stay on top of performance after porting. My colleague Lionel will be talking about those tools later in the performance session. And all of these tools are a fundamental part of what makes Metal Metal, and will help you get the best out of your game on Apple Silicon.

And now that you know more about Metal and all the tools to help you port, let's talk about where to get started and find more information. I think the first thing you're going to want to do is start with a mac app that you can add your code to if you want to start from a basic application.

Skeleton Xcode 26 includes built in templates, including a game template that supports Metal 4 as the rendering technology, and provides implementations for a range of Apple platforms. To give you the basis for your own game, if you want something more detailed, let's go back to the Game Porting Toolkit.

Earlier today, Alan showed the game porting sample code included in the Game Porting Toolkit. The sample consists of an interactive tutorial taking you step by step through the main elements of the porting process. The example game that ships in this package makes a great basis for your game, and you can reuse or replace each of the subsystems in the example. And there are several sections you should really look at for more detail on porting your renderer. The first is the shader conversion and loading sections. These sections start from HLSL files, compile them, convert them, and then load them into the game project.

The shader conversion project shows step by step how you convert HLSL shaders using the Xcode build system, while the shader loading project shows you how to load the converted shaders into your game. What I really like about this example is that loading the shaders considers the best way to do it for a game, assuming that your shaders are part of a larger package file system that you ship with your game. Whereas most samples like load Metal shader libraries from loose files. Once the libraries are loaded, the shader loading project shows how to create shader pipelines from shaders in the libraries.

The other important section for porting your render is the Metal rendering section. The great thing about this section is how it covers practical issues and considerations that can come up when porting, such as how to integrate the Metal Shader Converter runtime with explanations of the resource layout options and metals residency model.

Then there's details about how to manage your render thread, how to organize your rendering into passes and achieve the best performance on Apple Silicon, and how to port your GPU-driven indirect rendering. The whole Readme is full of links to wider documentation, and the sample code gets all the rendering technologies in place before bringing it together for the final game.

And then whether you start with a game template or the game putting sample code, once you have your game running, there's a range of Metal samples that show the best implementation of Metal features to help you integrate those features into your game. For example, achieving smooth frame rates with metals Displaylink shows how to use metal displaylink to give you more control of the pacing of your games frames to minimize latency. Rendering a scene with Deferred Lighting has implementations in Objective-C, C++, and Swift to let you pick the language you prefer.

It shows how to use Apple Silicon specific features to implement a renderer with Deferred Lighting rendering reflections in real time. Using ray tracing. Implements a Hybrid renderer that draws the scene using rasterization, and then creates ray traced reflections to apply to the scene's reflective surfaces. And then my favorite modern rendering with Metal uses metal's advanced features such as Indirect Command Buffers Sparse Textures variable rate rasterization to implement Modern Rendering algorithms.

This sample demonstrates effects like GPU based mesh culling, tile based Deferred Lighting, ambient occlusion, volumetric fog, and cascaded shadow maps. I really recommend you take a look at the Metal sample code page. There's a lot of inspiration in every Metal sample to keep you warm as you adopt Metal.

But let's remember where we started with Game Porting Toolkit evaluation environment. You can run your PC game on Mac today. Metal-cpp and Metal Shader Converter will help you get started with Metal in your renderer, and Metal supports all of the features you need to port and enhance your game for Apple Silicon, with a strong suite of tools in the background to help you, and then Metal samples and documentation are there to support you on your Metal journey. And while I've covered getting your renderer running on Mac, my colleague Lionel will tell you more about improving the performance of your game and getting it running on iOS. Thank you. Over to you, Lionel.

Explore power, performance, and scale for games on iPhone and iPad (standalone session)

Hi, everyone. Lionel here from the Metal Games Performance team. Let's talk about power, performance and scale. With Apple Silicon, we've created a unified gaming platform where the same modern rendering engine can can power your Mac. Yeah, can power your game across Mac iPad and right here on iPhone.

Bringing a high end game to a mobile device presents unique challenges. How do you deliver console quality, console quality experience with incredible performance that can be sustained through long play sessions? Over the next few minutes, I'm going to walk you through the tools and methodology we use at Apple to tackle this challenge. You'll live knowing not just what our tools do for you, but how you can apply this process to make your own games run beautifully.

First, you'll remember that my colleague Rich just highlighted many advanced features that Metal offers on the Mac. Let's see which of these can be used on the iPhone. Surprise! It's all of them. The iPhone supports hardware accelerated ray tracing, mesh shading, and so much more. Your entire modern rendering engine, with all of its advanced features, can run on this small handheld gaming device, and you can use the MetalFX features, such as upscaling to render high quality frames with even greater performance.

As an example, let's look at the modern rendering sample. We've seen that it implements many advanced rendering techniques, and I've been toying with some experimental engine improvements. So does it still offer the smoothest experience? Let's find out. This is the classic approach you can use for performance optimization.

It's a systematic loop. First, we observe and measure performance over a long gameplay period. Gameplay session to to to find inconsistencies. Next, we isolate and analyze a problematic area to understand what's happening at the frame by frame level. Then we diagnose and fix the root cause using our GPU debugging tools.

And finally, with our game running smoothly, we'll tune for power and scale. We may need to do a few laps of this cycle to get to a good place. So let's begin. The first step is to observe our game's behavior over a realistic PlayStation. And our first tool in our observation toolkit is the is the Metal performance HUD.

It's your live dashboard for spotting issues in real time throughout your development cycle and during QA. You can use the Metal performance HUD to get a good sense of your game's performance, and identify particularly particular scenes and areas that will require scrutiny. At the top, you get some important context about your device, your display, your memory usage, and the thermal state. This is crucial for understanding the conditions under which you're capturing performance data.

Below that, you'll find your FPS and frame pacing charts. If you have some stutters, this is where they will be tracked. A smooth, flat line. Here is your goal. A jagged line with spikes like we're seeing here, is our first indicator that performance is inconsistent and needs investigation.

then a section for the CPU timings where you will see how much work went into populating the common buffers for your frame. This is also where you track your shader compilation. You'll typically have plenty of activity there at load time, and you can keep an eye on any runtime compilation that may be needed to make sure that it matches your expectations. If you see unexpected compilation during gameplay, it could be the source of a hitch.

And at the bottom you'll find the GPU timings, the cost of the vertex fragments, and compute shaders. This is also really useful to monitor how the work is overlapping within the frame and across consecutive frames, to make sure that some synchronization is not creating unexpected bubbles of idle time. So the HUD tells us that we have a problem to understand when and why it happens over a long period of time, we need to move on to our next tool.

to capture that longer session, we'll use Instruments from Xcode. From Xcode you can profile your game and select the Game Performance Overview template. This tool supports really long captures over multiple minutes or even hours of of gameplay, making it ideal for identifying issues that only appear over time. Here's the first five minutes trace of of our game. There's a lot of data at this scale, so let's break down what we're seeing.

Zooming in, we can focus on some key tracks. The FPS and on display tracks display the same Stutter that we spotted before. That's good. We've reproduced the issue. The CPU tracks help us check on the latency. They show how long it took from the start of the frame on the CPU through to being displayed The GPU tracks showed the GPU activity and how long it takes for the frame to reach the display. There, we notice in this case that when we see the status, the GPU activity is high. This leads us to our next step.

So we found the problematic area in our long trace. Now we need to take a look more closely at just a few frames within that area to isolate the cause of the GPU activity. For this, we'll use the Metal System Trace template. It provides a detailed low level view of GPU hardware scheduling showing precise encoded timings and dependencies.

Let's open the GPU tracks and scrutinize our vertex fragment and compute encoders. One important aspect of of this view is that it would show the GPU work being overlapped between consecutive frames. But here we can see a lot of gaps in the GPU activity, and almost no overlap between the color coded frames. This would point to a potential issue with our resource synchronization. Or maybe we're attempting to reuse resources that are still in use. Now we have. Now we have a great sense of what part of the engine is affected by the issue. Let's take a deeper look.

For this step, we'll switch back to Xcode and scrutinize a single frame. We'll use the Metal Debugger and take a frame capture. We run the game up to the challenging scene that we found, and let's click on the GPU capture icon. After a few seconds, you get a summary.

There is a lot of information in this tool, so let's take a quick tour to see if we can find where the issue is. In the performance section, you'll find an overview of the GPU timings and a list of the top shaders. This is really useful to identify which shaders to optimize if needed.

For even more detail, you can view the timeline which shows the GPU counter charts alongside a timeline of encoders. This is really powerful to dig in and find very specific encoders and shaders that require even more attention. The heatmap is also very helpful to help understand that the GPU is doing a uniform amount of work across all pixels.

Other views are available to get all the information on the resources used by each encoder, and this is where you can browse your draw calls. The memory view is also really useful to understand that the assets are in the right pools, properly compressed, are not leaking, and so on.

But we were looking for an unexpected synchronization point which prevents good overlap. So let's look at the dependency viewer and see what it shows about the synchronization between the encoders. Sync points can be implicit when the encoder writes into a render target and another encoder reads from a reads the result. Or it could be explicit, such as with metal fences.

So I've been playing with the sample. I added a Metal event to ensure that I can alias some resources into the same shared buffer, but the experiment has not paid off. I created a bottleneck in the pipeline right before the gbuffer, and it prevents the overlap that we wanted.

So I'll need to use separate render target for those passes to ensure that they can overlap. It involves multiple changes through my resources and encoder setup, and I need to remove this wait for Metal event. After a quick build, let's check the results with the Metal performance HUD. We can see that the stutters are gone.

Great. So the tools helped us witness a scene with stutters. Identify a tricky synchronization issue. Find which resources were affected. We fixed it and quickly verified the outcome. We can also take a quick look back at the game performance overview and see that each frame is now perfectly paced. So we're good here, but if needed, we could take another lap of the analysis cycle to find and fix any remaining issues.

So finally, we'll tune our game settings to ensure that we're also using power efficiently. Tuning can be a part of the analysis cycle, but is typically also a dedicated, final effort to polish everything. Now that the game is running well. So here's a checklist of the main ways to monitor and control your power usage. First off, make sure that you've marked your game as a game in the info.plist as Alex showed earlier. It enables Game Mode, which ensures that your game has access to all available resources and limits background activity whilst your game is in the foreground.

Next, enable Sustained Execution Mode. This gives your game a steady performance state from the start and throughout an extended play session. This will give your player the best experience, but will also give you a good target for optimizations, and you can keep an eye on the thermal metric in the Metal performance hood. It will surface any unexpected issues to catch them early. If you have the Sustained Execution Mode enabled, the thermal state will remain will remain stable.

You may also want to track the thermal state within your game, to ensure that it is fully aware and in control of its impact, of its impact on the device's thermal state. You can simply use the NS Process Info API to receive the notifications or to check the current state. This. This can be useful, as there are also external factors that can impact the device, such as ambient high ambient temperatures.

And you can use the Thermal Conditioner within the Xcode devices window to pretend that your device is under thermal stress, and that lets you tune your game to ensure that it continues to behave well in the face of unforeseen challenges. And finally, on iOS, you have the Power Profiler in Instruments, which has charts for your CPU, GPU, and display power impact along with other information such as an overview of your Metal performance.

And now that you have the tools to track and improve your game's performance and power usage, you need to choose a good performance target for the different devices. Should you run at 30 FPS with medium settings, maybe on an older device? Or can you aim for 60 FPS with high settings on the latest device? Let's briefly discuss some of the choices to consider when targeting a range of small to large devices, each with their own power and performance characteristics.

When tuning your game, here are three main levels that that you can pull. The most impactful is rendering resolution. Depending on the complexity of your frame, you may be able to display to target the display native resolution. Otherwise, MetalFX can help bridge the performance gap. You can choose a fixed reduced resolution for your render target and use the MetalFX spatial or temporal upscaler to get a high quality final frame to display.

MetalFX also supports dynamic resolution changes in case you want to adapt the quality of your image at runtime based on performance. Next is your assets and feature quality. Things like geometry, levels of detail, texture, resolution with graphical effects are enabled. It's important to design good quality presets for the different devices.

And and this is also where you can have a tight loop around observing and tuning and the Metal performance and gain performance overview tools are essential here. And finally, you can tailor the experience for the unique device capabilities of each display. With a gorgeous HDR display, your game can shine even brighter, and with ProMotion, you're not limited to just 30 or 60 fps, you could experiment with a smooth 48 or even 40 fps to get additional headroom to either increase the quality settings or reduce power usage.

Which brings us back to our original challenge. How do you deliver a console quality experience with incredible performance that can be sustained through a long play session? Well, we've discussed the tools and features that you can use to improve performance and control power usage on the iPhone, and with the unified gaming experience on all Apple devices. These same methods also work on Mac, iPad and Vision Pro. So thank you for taking this journey with me through power and performance optimization. And now Dylan will go over important design considerations for your game. Thank you.

Design great interfaces for handheld games (standalone session)

Hi. I'm Dylan. I'm a designer here at Apple, and I want to help you make great interfaces for handheld games. The earlier talks have gone into great detail about how to get your incredible high end games running on iPhone and iPad. But regardless of whether you've ported your own custom metal renderer or if you've built with an engine like Unity or Unreal, you'll eventually need to deal with concepts like touch input and new screen sizes.

So I'm going to give you all the info you need to adapt your console or PC games interface to a handheld device. I'll walk you through how to create flexible, scalable layouts, how best to make use of different screen shapes and sizes, how to keep your interface legible, and how to adapt input schemes for handheld devices.

While these tips will help you adapt your game to handheld, many of these are just great general guidelines as well. This isn't just extra work to do to bring your game to iPhone or iPad. Doing this right can make it easier to design your game for all devices.

That's especially true when it comes to creating flexible layouts. You may be an expert in designing and developing games for TV or computer screens, where the display is a big rectangle somewhere around a 16 nine aspect ratio. But handheld devices come in a wide range of sizes and aspect ratios for your game to look great on handheld devices.

You've got to design an interface that scales gracefully across different types of displays. This will make it easy for your game to support all of our iPhones and iPads without putting in manual work for each one. It also future proofs your design, creating something that will fluidly adapt to new displays.

The simplest place to start is to make sure your layout reacts to different aspect ratios. Even on the same platform, different devices can have drastically different aspect ratios, as you see here on iPad. taking the larger iPad Pro and the smaller iPad mini as examples, I could simply scale down my interface to fit the smaller device, but this isn't actually great. My controls don't end up where I want them because the screens have such different aspect ratios.

Simple scaling puts things in unpredictable locations and makes them difficult to reach, too small or too large, and just generally misaligned and poorly fit to the device. A better strategy is to break up your interface into smaller components, based on their position relative to the edges of the display.

You can then anchor those elements to their respective edges, and as you move between device shapes and sizes, you can keep each component at a consistent size and distance away from those anchor points. This keeps controls physically comfortable across any shape or size device, while making the best use of screen space across devices.

Using this method, you can take your games interface from something that looks awkwardly shoehorned into the device to a layout that feels comfortable and purposeful. Flexible layouts will help your game look great across all sorts of screen sizes and aspect ratios. But in addition to different screen dimensions, some devices may also have screen shapes you're unfamiliar with. But this next piece of advice will help your full screen content look great regardless on iPad and iPhone. Designing a full screen gaming experience means keeping safe areas in mind.

Safe areas are the regions of the display where you can safely place content without worrying about overlapping hardware or software features. Safe Areas help you avoid placing items where they could be obscured by the device's rounded corners. They also help you avoid the system's Home Indicator and gesture regions, as well as the Dynamic Island on iPhone, all of which could potentially overlap your controls. Designing within safe areas will ensure every part of your interface is visible and accessible to your players.

This doesn't have to be tricky, though. You can find help with all of this. Of course, there are APIs for getting a display safe area insets, and we also provide safe area templates on our developer website. If you've used Xcode, you're probably familiar with the simulator app. This is an easy way to preview your game's layout on different device models and orientations, making it easy to check whether your design conflicts with any of these hardware features.

Remember, safe areas are meant as guides, but aren't meant to be the actual margins for your game. Take advantage of every pixel on the screen for your game's environment. If there's important content in your game that's getting clipped by device proportions, first try adjusting your game's camera. Play with different zoom levels and angles. See if you can fit that content in. In some cases, like a cinematic cutscene, you might already have a pre-rendered. You might already have pre-rendered content that only exists at a specific aspect ratio.

In those cases, you can make use of letterboxing to fit all the important details on the screen to make letterboxing still feel like a full screen experience. You can either fill that area in with custom game artwork, or tint it black to blend in with the device's physical hardware bezels. But only use letterboxing if you have to. Your game will feel way more immersive if you make use of the entire screen.

With that, hopefully you can make the best use of every pixel on the display, no matter the device. Now I want to talk about keeping your game legible at small sizes. I see a lot of people get tripped up on this when bringing their game to smaller screens, and I want to help you avoid this pitfall. Something that is often overlooked when bringing games from console or desktop to smaller screens. Is that what might look great on a large TV can be barely legible if it's shrunk down to compact sizes without adjustments.

One of the smallest considerations that can make the biggest difference in your players experience is to make sure your text is large enough to read, and it sounds a little backwards, but the smaller a device is, the larger your text should be. Apple platforms have recommended default and minimum type sizes on iPhone and iPad. Aim for a type size of 17 points or higher. This size works great for body text and call outs. For less essential information. Try not to go lower than an 11 point type size, or you risk your players not being able to read what's on the screen.

And just as you want your players to be able to read your game's text, you also want them to comfortably use your controls. Make sure your controls are large enough to make them easy to select. A mouse pointer can point at a single pixel. I don't know about you all, but my fingers are a lot bigger than one pixel. So on a touch screen, players need bigger buttons for their fingers than what's required on a PC or console.

On iPhone and iPad, the default tap target size you should aim for is 44 by 44 points. This is comfortable for most people's fingers and will make your controls easy to target. For less critical elements, you can push it down to 28 points. But keep in mind that buttons at this size are going to be harder to tap. You don't want people feeling uncertain about their inputs while trying to play your game. For both text and buttons, aim for the defaults. It'll make your game more comfortable for more people.

Now, if you're wondering how you'll fit these larger text and control sizes on such small screens, remember that people are very used to scrolling on mobile devices. You can use scroll views to present as much content as you see fit. So, for example, instead of needing to cram all your game settings onto the screen at once, you can utilize scrolling to take advantage of more vertical space, which also gives you some breathing room to increase the size of your controls. Same thing with text. Use scroll views if you have an overflow of information instead of shrinking text to solve the problem.

If you're ever in doubt about whether players can read your text or reach your controls, there's nothing I recommend more than testing it on a real device. Experiencing it yourself will give you the best sense of whether your game looks good and behaves correctly. Better yet, try your game on as many devices as you can with as many testers as you can. That way, you can be confident people will feel comfortable no matter what hardware they're playing on.

So far, I've talked a lot about your game's output. What's on the screen? Let's talk input. Good control schemes are a huge differentiator, setting apart great handheld games from clunky, awkward ports. It's an opportunity to define how your game feels. For that reason, I'm going to go real deep on input.

I'll talk considerations for different input methods, and then I'll show you how to design great touch controls by adapting movement and camera, placing controls intuitively, responding to gameplay, and providing feedback. Just because we're talking about handheld devices doesn't mean players are necessarily using touch. As Alexi mentioned in his gaming Technologies talk. iPhone and iPad have excellent support for more traditional input methods, too.

Someone may be gaming on their iPhone with a controller or on iPad with a keyboard and mouse. That said, bringing your existing console and PC control schemes to our platform is pretty straightforward. There's just a couple of things to note. For one, we support a broader range of controllers than most other platforms, each with their own set of glyphs printed on the controls. You can handle this in your design work with our SF symbols app, which provides an enormous library of glyphs like these and many more. But you shouldn't bake this art into your game. That will be a headache supporting every controller out there.

You want to use the right artwork for whatever controller players may have, and you want it to update when people remap controls. The game controller framework makes this easy to do dynamically, and for the unity folks out there, this is all in the plugin that Alan mentioned earlier. When implementing keyboard support, remember that the modifier keys on Apple keyboards are arranged in a different order than your typical PC keyboard, so you'll want to test and make sure that your controls are comfortable and adjust as necessary.

In addition to mouse, keyboard, and controller support, Apple is especially unique in our support for high end games on touch screen devices. And while some players may play your game on their iPhone or iPad with a controller, the vast majority of them will play using their touch screen Because of that, touch controls are a critical part of any iPhone or iPad game. You don't want your awesome game to fall flat because of a poor control scheme. The good news is, it's not hard to create great touch controls.

You can easily create, configure, and customize touch controls for your iPhone and iPad games with the Touch Controller framework. But whether you're using our framework, a third party game engine, or creating your own controls from scratch, I'll provide some universal guidance that applies equally to anyone designing games for a touch screen.

Designing for touch is a bit different from designing for controller. Traditionally, you have a rich design space within your game to react to the static inputs of your controller. But on a touch screen, your input surface is also the output. Designing your game means designing your inputs to your touch. Controls aren't constrained by a physical controller. They exist on this dynamic screen. They can be informed by your game.

I have here a game I've built with a straightforward port of console controls to the iPhone. In its current form, the controls clutter the screen. They obscure content, and they make it difficult to comfortably and reliably press the right buttons. I'm going to rebuild this control scheme from the ground up and show you how to create something much better for touch.

I'll start with the fundamentals of movement and camera controls. How to adapt from thumbsticks on a physical controller to touch for a first or third person game like mine. I create a virtual replacement for the left thumbstick. The dynamic nature of a touch screen means I can hide this control when it's not in use, to avoid obstructing the game.

While a game controller has thumbsticks at a fixed location and size, you're not bound by those pesky physical constraints here. On a touch screen, players can't physically feel where their hand is relative to a thumbstick, and because of that, it's important to make your input area as broad as possible with a Game Controller.

My game uses a left thumbstick press to make the character sprint, but a virtual thumbstick can't do that. I could create a separate button for this, but it's cumbersome to use. I have to stop moving to toggle sprint on and off, defeating the whole purpose of the control.

Instead, I'll take advantage of the large dynamic range of the touch surface and build the sprint function directly into the virtual thumbstick. Instead of adding a button as I drag my finger further, the character can run faster. This is easier to use, and it has the added benefit of removing a control from the screen.

For camera control, which is typically on the right thumbstick. I could use another virtual thumbstick to port my controller input to touch, but this is missing out on one of the touch screens. Great capabilities, which is fast and precise tracking. Instead, I'll use direct touch input to pan the camera.

Notice how as the finger is moved left, right, up and down, it's directly manipulating the position of the camera like a mouse input for a PC game. This is way faster and more precise than any thumbstick, virtual or physical. And just as I said for movement, the input area for your camera control should be as broad as possible.

In a game with an overhead or isometric perspective, there are a couple of different things to keep in mind. While a virtual thumbstick might work for movement, you should also consider letting a player tap to move. And while panning, the camera transfers over well, you can add inertia to help quickly traverse large distances and use a two finger pinch to zoom in and out. These behaviors will be very familiar to people using iOS as they appear all over the system, like in maps.

Now that I have my core movement and camera functionality sorted out, I'll talk about how to place controls for all of the other actions in my game. Just as I mentioned earlier, when placing controls, I'll need to be mindful of the safe area insets and avoid the regions at the edge of the screen. But I also want to avoid putting controls in the areas where I expect movement or camera input to happen.

And of course, I want to avoid covering my character so I won't place any controls in the center of the display. This leaves me with the regions around the thumbs, which are ideal for placing frequent or more important actions. And the region at the top of the screen, which is a great place to put less frequently used controls like menu buttons, because players will likely be playing your game with only their two thumbs, you have to consider which controls might need to be used at the same time, so that you can place them on the appropriate side of the screen. A common control scheme is to use a left trigger or L2 button for zooming a camera to aim, while R2 performs an aimed ability like my fire action.

This control scheme doesn't translate well to touch as is. You can't aim and move at the same time, and you can't adjust your target while firing. If I swap these controls and place the zoom control on the right, I can combine the zoom with my camera input, which is a natural combination. You can see that I can hold R2 button and aim at the same time, and my left thumb is free to move my character or fire.

So with that guidance, my controls will be well placed, but I could really elevate them with some new dynamic behaviors that are only possible on a touch screen. What's great about touch controls is that they can change updating in real time to react to your game. These things aren't made out of plastic, and you can do things you could never do with a physical controller.

For starters, instead of showing static controller button glyphs, you should use glyphs that represent your game's Actions. Rather than having to teach people your input schemes, players can simply look at the controls to learn what they do. When a control changes its behavior based on context, you should update its symbol to match. And importantly, when an action isn't available or relevant, you should remove it entirely to avoid cluttering the screen.

Applying this to my game, I'll replace those standard console button glyphs with descriptive glyphs for each control. I'll remove controls entirely when they're not available, like my fire button that's only available while aiming, and when the player begins aiming, I'll update which controls are visible, revealing the fire button and hiding everything else.

I can even use my controls to reflect details about the state of the game. Here I'm using my fire button to visually represent a cooldown or when that action will be available to use again. And of course, when I show my menu, I hide all my controller buttons completely. It's crucial that your menus respond to touch. Virtual controls cover up content and make navigating difficult, navigating menus slow and difficult. No one wants to use a virtual controller to interact with buttons that are right in front of them.

At this point, I've created a great touch control scheme, but there's one final missing piece feedback. Touch screens don't have the tactile feedback of physical controls, so you need to provide feedback in other ways. It's extremely important that any touch control you create has a press. State press states give the player confidence that they've pressed a button, and without them, controls feel unresponsive and dead.

This could be as simple as darkening or highlighting buttons when pressed, but in the context of a busy game, you might want to draw visual effects like a glow outside of the bounds of your control. This helps provide feedback even when a finger is covering the button itself. You can also theme these effects to better integrate them into the visual style of your game.

Sound and haptics are another great form of feedback, and can even go beyond the feel of a simple button press. You can add subtle haptics on, touch down, and touch up to provide a sense of responsiveness. In addition to designing sound and haptics for the in-game actions that your controls perform.

With that final step of adding feedback to my controls, I've totally overhauled the input scheme and made something that will really shine on a touch screen. I hope all of this guidance helps you create an incredible handheld experience for your games. Following these simple techniques, things you might have seen as obstacles to handheld gaming are easily avoided with smart design decisions. With the right design, handheld gaming doesn't have to be a compromise. And importantly for developers, it doesn't have to be difficult either. Thank you everyone. I’ll hand it back to Charlyn.

Thanks, Dylan. All right, we covered a lot of actionable information so far. A lot more to come, but we're going to take a break for lunch. So for those of you watching from the livestream, go ahead and grab some breakfast or dinner or take a nap, depending on where you are in the world. But set your alarm, because we'll be back here in just about an hour. And then we're going to be talking to folks from the Apple store-- the App Store, excuse me-- and Arcade. So stick around. We'll see you back here.

That sounds like maybe you had some good food, right? You're in a good mood. You had some good conversation. I feel like it's inevitable, the conversation, because we've got a lot of really interesting people here today. So it was nice to talk to some of you and connect. So that's great.

So welcome back. We've got some really good stuff coming up. We're going to shift gears a little bit. We're going to have someone from Arcade come out, talk to you a little bit about the service. And then we're going to dive into the Vision Pro and talk about how you can bring either a brand new game or the game you already have and show you how it can run great on this new platform.

And then we're going to dip into the business side of things, too. We also have a fantastic guest speaker, very special guest speaker, dialing in from New Zealand today. And she's going to be talking about her team's experience bringing their award-winning indie game across all of Apple devices. So that's going to be a really cool peek behind the curtain. But first, I'm going to hand it off to Adrianna from Arcade.

Apple Arcade: From concept to catalog (standalone session)

Hello everybody. So my name is Adrianna Lewis and I am part of the content strategy and acquisition team here at Apple Arcade. So many of you have likely heard of arcade or even have active games here on the service, but if you don't today, I have the great privilege to share with you all what arcade is all about.

So the goal of arcade has always been to create the next generation arcade by offering fun, safe and unforgettable gaming experiences. But before I dive in, here's a short video showing a compilation of some of our favorite original titles. Platform three go go go. It's over there. That way. Excuse me. Hold that train. Are we going to play? We're going to go first and see what happens, right?

I watched that video like seven times, but every time I watch this, I find a new character. Did you see cinema role? Somebody say yes. Okay. So very cute. Love him. So arcade recently celebrated six years as a service, and players love what arcade has to offer, especially the 250 plus incredibly fun games. All of our games are ad free, with no in-app purchases and providing peace of mind for parents and their families. Plus, subscribers can share the fun with up to five family members for no additional cost, and there are games for everyone in the household.

We are also deeply committed to privacy, ensuring a safe and secure gaming environment where everyone can play with confidence, knowing that they are in full control of their data. And in addition, players can access their games online or offline on the go across all of their favorite Apple devices, including iPhone, iPad, Mac, Apple TV and Vision Pro.

So Aki can also be accessed via the tab on the iOS App Store, and the service is accessed in similar ways across iPad, Mac and Apple TV. And as you learned earlier, the App Store attracts over 800 million weekly visitors. This is a great funnel for players to find your game, but you can also access the arcade tab from the new Apple Games app. You will learn more about this in a later session, but this is where players can find their last played arcade games, initiate challenges with friends for a little friendly competition, or discover newly added games to our ever growing catalog.

So first, we have originals. These are experiences that are built up from from the ground up exclusively for Apple Arcade. For instance, in partnership with Bandai Namco, we launched Katamari Damacy Rolling Live, the first official sequel to the Katamari series in almost a decade. Then there are greats like Balatro Mobile Game of the year, winner games you might already know and love from the App Store or Steam, but on arcade, players get the complete Experience with no ads, no in-app purchases, and all of the DLC unlock, which is all included in the subscription.

So here are some of the studios that we have partnered with. Some large and small, some you've definitely heard of, and some awesome smaller teams that you can discover. And the truth is, we couldn't do this without our amazing developers from all over the world. I'm super proud that we have worked with 180 developers from over 30 countries.

Their creativity and problem solving skills are what makes arcade so special, and they have trusted us with some of their biggest and most unique franchises. We're talking awesome indie hits like Stardew Valley and Bloons, as well as massive titles like Worms and Sonic. And I'd be remiss if I skipped over my personal favorite, Hello Kitty Island Adventure.

And our developers have received accolades from both critics and award bodies who love these games, too. And since arcade launch, they've received critical acclaim from media outlets, garnering over 300 awards and nominations. But there's always room for a few more. So the best part is developers keep coming back.

Many of them are even launching their second or third title on arcade from rovio's Angry Birds Reloaded and Angry Birds Bounce to Pomelo Games. Outlanders one and two and Sega Sonic Racing and Sonic Dream Team. These studios are showing that arcade is a great place to launch your games. But why?

Well, a big reason is the support system that we've built. We partner each of our developers with one of our experienced game producers, someone who has walked a mile in your shoes, and they're the go to point of contact for everything arcade, essentially offering white glove treatment from start to finish. And speaking of support, a lot of developers speak highly of the creative agency. Developers love the fact that they can focus on the fun and not have to worry about converting players into spenders. But this also allows you to focus on creating the best experience.

And with hundreds of millions of unique users visiting the App Store each month. We are happy to support our partners in marketing and promotion through the lifecycle of their game, so this often means activating unique channels with and placements that offer both high reach and deep personalization to help each game find the right players at the right time. But our funding model is key, with many of our projects with little to no investment from developers, and upon launch, each game has an equal chance to earn meaningful bonus pool payments every month, regardless of the game size or budget.

Now, we know that not every game is a perfect fit for arcade. However, arcade offers a fantastic experience for players and a valuable distribution platform for developers of all sizes, and we are always seeking the world's best games and encourage you to consider us in your platform strategy. We'd love to see your ideas, so please use the link here to submit them. And thank you so much for your time and look forward to hopefully chatting soon. Now I'm going to pass it off to Nathaniel to talk about VisionOS.

Transform your game with Apple Vision Pro (standalone session)

Hello, my name is Nathaniel and I'm an engineer here at Apple. Today I want to talk about how you can bring your apps and games to Apple Vision Pro. Spatial computing opens up an entirely new dimension for gaming, allowing you to create experiences that are more immersive, interactive, and personal than ever before. And it starts with the display.

Now take a look at the huge screen behind me and imagine all those pixels shrunk down, placed in front of each eye. This is made possible by Apple Vision Pro Micro OLED system for you as a game developer, this means incredible visual fidelity. Your textures, your models, your art. It's all presented with stunning sharpness and clarity, totaling over 23 million pixels.

And with Apple Vision Pro, the display becomes an infinite canvas that surrounds you, enabled by some truly groundbreaking hardware. The canvas can be a fully virtual world, or it can be your own surroundings. When your player's environment becomes a stage for your experience, our high resolution passthrough allows your game to seamlessly blend with the physical space. The platform models their surroundings, allowing your game content to realistically interact with their world.

And this capability is on full display in games like Super Fruit Ninja. Here, the platform's understanding of the room allows the game to break out of the 2D plane and bring the action into the player space. It completely transforms the experience by making the game world and the real world feel connected.

Of course, a game needs more than a canvas. It needs interaction on Apple Vision Pro. The primary input method is the most natural one. We have a player's eyes and hands. The system tracks hand movements at a high frequency, enabling precise and low latency interactions that feel incredibly intuitive.

This enables high energy direct manipulation games like Thrasher, where your hands become the controller guiding a creature through a dynamic, responsive world. But it also supports more subtle, nuanced interactions. In Blackbox, custom gestures are used to solve clever puzzles that challenge you to think outside the box. This shows the incredible range of gameplay that you can design around hands as the primary input.

And for games that benefit from the tactile feedback of physical controls. visionOS also has robust support for controllers. Now in visionOS 26 spatial game controllers. visionOS 26 adds support for the PlayStation VR2 Sense controller with the Game Controller framework. It combines the familiar layout of a traditional gamepad with its buttons, joysticks, and trigger with full six degree of freedom spatial tracking, making it a great option for games that require complex button inputs or fast paced action.

Vision Pro was already a beast when it came to compute, and that's been pushed even further with the desktop class M5 Apple silicon chip. These incredible displays pass through desktop level CPU and input technologies are all brought to life by the power of Apple Silicon in an integrated software frameworks. This unified foundation is what makes it possible to deliver deliver these amazing spatial experiences.

So you've seen the ingredients that make gaming on Apple Vision Pro so compelling. The question now is how do you bring your games to this new platform? First, I'll show how your existing games for other Apple platforms may already be compatible with visionOS. Then I'll explore how you can build games with native frameworks which can take full advantage of all the features on Vision Pro. Finally, I'll show how you can use existing skills and workflows with third party engines like unity to port existing projects or build entirely new experiences.

So I'll start with the easiest path, which leverages work you've already done. If you have a game on the App Store for iPhone or iPad, you may have a visionOS game already. Most apps designed for iOS and iPadOS are automatically compatible with visionOS, and can be made available on the App Store for Vision Pro.

Here's a great example Wylde Flowers is an Apple Arcade title originally built for iPhone and iPad. On visionOS, apps built for other platforms can run in a window that the player can resize and place anywhere in their room, offering a beautiful personal big screen experience. And input works great using the standard look and tap gestures.

To make your compatible game available on visionOS, all you need to do is go to your app's pricing and availability page in App Store Connect, and ensure that the checkbox to make this app available on Apple Vision Pro is selected. It's as simple as that. Because Wylde Flowers already runs on these other devices, it's automatically compatible with visionOS. It provides a fantastic experience automatically with no additional work from the developer.

So that covers the out-of-the-box compatibility experience for iOS and iPadOS apps with no code changes. But sometimes you might want to adapt your compatible games behavior specifically for visionOS. For example, since there's no touch screen, you might recommend the use of a game controller or adjust your UI layout.

To do that, your app needs to know when it's running on Vision Pro. So new in iOS 26. The is iOS app on Vision flag allows your compatible iPhone or iPad game to know when it's running on visionOS. You can use this to conditionally enable features that make the most sense for a spatial experience, and we also want to ensure your most graphically intensive games look their best. That's why new and visionOS 26 memory limits have increased for performance intensive iPad games. This means you can bring your highest quality assets to visionOS with confidence.

Leading developers are bringing their ambitious and graphically demanding titles to the platform, thanks to compatibility across Apple devices. Control pushes the boundaries of real time graphics and enables Raytracing with the new M5 chip. Where Winds Meet showcases massive open world scale and titles like Pools and Sniper Elite four demonstrate the diverse range of high end gaming experiences possible on Vision Pro.

For those of you who want to begin blending the 2D world of your game with the 3D world of spatial computing, the next step is to recompile your game against the visionOS SDK. This unlocks the ability to use native visionOS frameworks. The team behind Wylde Flowers did exactly this by recompiling. They were able to use RealityKit to add a beautiful, dynamic 3D frame that exists in the player's world, and a spatial garden right alongside their existing 2D game view. This is a great incremental step towards a more spatial experience.

Next, I'll show you how you can build apps and games for Vision Pro with native Apple frameworks. Apps built with native frameworks have access to the full spectrum of immersion, from windows and volumes in the shared space, to fully immersive experiences in the full space where your game can completely take over the player's surroundings. By default, apps launch into the shared space where they can exist side by side. You can think of this like app windows on your desktop.

The sample project Petite Asteroids exists in a shared space, a volumetric window that you can place on the floor or a tabletop. Petite Asteroids uses native frameworks like RealityKit and SwiftUI, and you can download the complete project from the developer website to learn more about how we put this game together.

The other type of space is a full space, and you can think of this like the full screen version of an app on your Mac desktop. Here, only your app's views are visible to the person wearing the device. When developing in a full space, you have access to two powerful paths for rendering your content. You can build with RealityKit, which provides a rich set of features right out of the box, or for maximum control, you can drive the display directly using Metal and Compositor Services.

Both of these native paths unlock the ability to create a truly the truly immersive experiences we're about to see. All full Spaces on visionOS can fill a person's entire field of view. They can be rendered with or without pass through, and you can add a skydome to a full space to completely immerse a person inside a virtual world.

To build for these spaces, you'll use our native Apple frameworks. There's a comprehensive suite of technologies available, and it's helpful to think of them in a few key categories. For example, SwiftUI is the backbone of your app on Vision Pro, and it's how you declare views, including the immersive spaces in your app. Next, frameworks for 3D content and rendering, where you'll probably choose between RealityKit or Metal.

And finally, frameworks for core gameplay services like SharePlay for shared experiences. Game Center for Leaderboards and Leaderboards. Achievements and Challenges and Game Controller for input. I'll start with the backbone of native app UI SwiftUI. SwiftUI helps you build great looking apps across all Apple platforms, with the power of Swift and surprisingly little code. You can bring even better experiences to everyone on any Apple device, using just the tools SwiftUI provides.

There are three types of SwiftUI views you can create for your apps on visionOS. The first type is window, which presents your content inside a flat panel and is similar to how you'd build windows for iOS and iPadOS devices. Next is volume, which is the three dimensional analog of a window and provides a volumetric canvas for your spatial content.

These are bounded spaces, and content outside the volume won't be rendered. The final type of view is an Immersive Space. These are unbounded spaces can't be presented with or without pass through, and let you completely surround your audience with content. Only one Immersive Space can be active at any time.

Another useful framework for games is SharePlay, which is Apple's high level API for building shared experiences across Apple devices. SharePlay helps multiple people share activities like viewing a movie, listening to music, playing a game, or sketching ideas on a whiteboard while they're in a FaceTime call or Messages conversation. Games like Defenderella use SharePlay to enable multiplayer and co-op gameplay with nearby players. New and visionOS 26 people can easily share windows with others nearby, allowing you to build games that people can experience in the same space.

Next, I'll talk about one of the two options you have for rendering content on visionOS RealityKit. Alongside Apple's scene authoring tool Reality Composer Pro, RealityKit provides many APIs that are common to game development realistic rendering, physics simulations, spatialized, audio playback, and more. So what is RealityKit? It's Apple's modern framework for creating high performance 3D and spatial games. It provides the core technology to render, animate and simulate your content, making it look and feel physically present in the player space. RealityKit is designed to handle the complex work for you, like realistic rendering, physics and audio so you can focus on creating a great game.

Your same RealityKit code can run on just about any Apple device, making it easy to port your games to new platforms. When you create content for RealityKit apps. Use USD files to author spatial assets. USD stands for Universal Scene Description and is both a set of open source tools and a file format.

USD can contain, can contain, can contain data for meshes, materials, and animations, and serves a similar function as other formats you might be familiar with, like FBX or OBJ. USD was originally developed by Pixar and is becoming widely adopted thanks to the support of companies like Apple and Nvidia. Pixar developed USD to enable collaboration on complex scenes worked on by large and growing teams.

But how do you use USD to build your games? That's where Reality Composer Pro comes in. Reality Composer Pro is Apple's scene authoring tool for apps built with RealityKit. It's included with Xcode and enables you to build scenes using USD assets. Here's a screen capture of an open scene in Reality Composer Pro. If you've used other scene authoring tools or game engine applications, you'll notice a familiar UI.

On the left is a scene hierarchy where you can organize entities, materials, and references to other scenes. In the middle is the viewport. The viewport renders your scene just as you'll see it on device, and on the right is the Inspector. And here's where you'll view and edit the properties of the current selected object.

USD references can be used in the same way as prefabs in other engines like unity. In this screenshot, you can see a scene open with a reference to an asset called Toy Biplane. When the source asset updates, that change propagates to any scene with the USD reference to that asset.

And this way you can build up complexity in your scenes layer by layer, adding particle effects or custom components. Timeline in Reality Composer Pro is a no code solution for sequencing actions and behaviors in your scene. Many of the events in this intro sequence in Petite Asteroids were configured by a designer in Timeline.

Shader Graph in Reality Composer Pro enables advanced graphics effects for Petite Asteroids. We created these drop shadows on an otherwise unlit material using Shader Graph, as well as the squash and stretch effect on the character as she jumps. You can learn how we used RealityKit, Reality Composer Pro, and other native frameworks like SwiftUI to build Petite Asteroids by downloading the project from the Apple Developer website. This is a complete vertical slice of a platformer game on visionOS, and we made the full source code available as inspiration and reference for your own RealityKit projects.

Let me mention one more framework that is built on top of Apple technologies like RealityKit and SharePlay TabletopKit. TabletopKit makes it easy to create multiplayer tabletop experiences with RealityKit by providing streamlined APIs for setting up multiplayer experiences, especially those inspired by classic board games or tabletop RPGs. To get started building with TabletopKit, check out the sample project Creating Tabletop Games available from the Apple Developer website.

So that's a look at building with RealityKit and its powerful authoring tools. Now I'll explain the other path. Taking full control of the render loop with Metal and Compositor Services. Metal is a modern, tightly integrated graphics and compute API coupled with a powerful shading language designed so you can take full advantage of Apple silicon. Compositor Services lets you render to a CompositorLayer using Metal APIs. Compositor Services then combines or composites those layers into the final image.

If you've used Unity or Unreal, these engines are already bringing their technology to Vision Pro using Compositor Services. In fact, Metal and Compositor Services is the recommended path for bringing your own custom game engines to Vision Pro. When rendering with Compositor Services, you'll use a dedicated full space. This means players will be focused only on your game, and other apps will be placed in the background.

This highlights the fundamental choice between these two paths. When you build with RealityKit, you get a rich feature set for game development like physics simulations, skeleton based animations, and custom rendering with Shader Graph. When you choose Metal in Compositor Services, you are in complete control of the renderer. This means you'll build these systems yourself, tailored exactly to your games needs. But that doesn't mean you're starting from scratch. For example, ARKit, another native framework, provides data about a person's real world environment, and it pairs perfectly with apps built using Compositor Services.

ARKit lets you bring a person's real world into your app by providing APIs for reconstructing a virtual mesh of the real world or tracking body movement. The recording on the right is from an iPad app using ARKit Scene Understanding to allow the digital bug to hide behind a real world tree.

ARKit uses advanced hardware sensors to in combination with software algorithms to detect surfaces in the real world. With the observed data generated by these sensors, a mesh of the real world is object is reconstructed at runtime. For apps presented with passthrough, this reconstructed mesh will appear to exist in the real world. You can use this information in your apps to create incredibly realistic experiences.

Now I'll show how to build a space with Metal in Compositor Services. To the right is an example of how you can initialize a simple render loop using Compositor Services. And on the left is an abstract diagram of that same construction. Start by defining an Immersive Space for your app. All scenes rendered with Compositor Services will require a dedicated Immersive Space. Then create a CompositorLayer with a configuration object. This is the layer where your app will render content directly using Metal.

Inside the render callback for your CompositorLayer, create a new thread. Your render thread. This is the core render loop for your very own game engine using Metal. In this case, we use a separate function to keep our code organized, but the code on the right is available in a sample on the developer website for a working demonstration. Check out the sample project rendering hover effects in Metal Immersive Space. This sample not only showcases how you can build a simple render loop, but also how to work with privacy constraints to enable gaze based hover effects for objects in your scene.

Now let's talk about how many of you are already developing your games that is, using existing third party game engines. Unity, unreal, and Godot are each viable tools for bringing your games to Vision Pro. These engines bring familiar workflows to Vision Pro development, although the extensive extent of features possible in each engine varies. D-Day. The camera soldier uses unity and Poly Spatial to power this Emmy Award finalist documentary. This experience blends stereo video with interactive scenes to enable viewers to have a hands on experience with historical events.

So let's talk about how to target visionOS with unity. Unity is an easy choice for many developers when starting their projects. Because of the wide variety of platforms unity can target, including visionOS. From the start, unity has powered many of the immersive experiences you've seen on Vision Pro, so let's take a high level look at how you can do the same. When building games with unity, you have the option of configuring your app to run in one of several modes that can be selected in your project's player settings. The first mode uses Metal and Compositor Services to render content.

This mode, like all apps rendered with Compositor Services, renders its content in a dedicated full space. These apps can exist with or without passthrough. To enable passthrough, set the immersion mode to mixed or automatic. Set your camera to have a solid color background and make sure the alpha channel for the solid color has a value of zero.

The next mode uses RealityKit to render content and is available to developers with a Poly Spatial license. Because Poly Spatial apps use RealityKit to render content, these apps can also exist in the shared space where your players can see them running alongside other apps they may have open. These. These apps can also exist in volumetric windows, a type of window that is otherwise only available with RealityKit APIs.

The materials you create inside unity are converted automatically by Poly Spatial so that they can be rendered by RealityKit. When you build a material in unity using Unity's Shader Graph tool, that Shader Graph is automatically converted through material Ex. Material ex is an open standard for defining the look of 3D assets. Because both unity and RealityKit understand the shared language. Your Shader Graph concepts and nodes can be translated and converted into a native RealityKit material, ready to be rendered in your visionOS app.

Another mode is Hybrid, which allows developers to switch at runtime between RealityKit rendering with Poly Spatial and Metal rendering with Compositor Services. For example, you can present part of your app in a volumetric window rendered with RealityKit, then open up a full space rendered with Metal and Compositor Services, all powered by unity.

Before I leave the topic of unity, I want to mention one more aspect of unity development for for Apple platforms. Unity plugins that enable native Apple code to run in your unity app. As Alan mentioned earlier, a select set of these frameworks are available to include as a plugin in your unity project. The Game Controller framework, for example, enable support for classic Bluetooth gamepads. And just last week, we released an update that expanded support for spatial game controllers like the Sony PlayStation VR2 Sense controllers that can be a native that can be enabled natively in your unity game.

Integrating these plugins into your project has a few extra steps you may not be used to. Rather than being distributed through Unity's Asset store, these plugins are distributed as Xcode projects that can be built on your Mac. Check out the Quickstart guide in the repo for more information. These plugins exist in a public repository on GitHub, and we welcome your feedback about feature requests or bugs.

Next, Unreal Engine is another pathway to bringing your games to Vision Pro. Unreal Engine is known for its high fidelity graphics and Triple-A tools and can target a wide, wide range of platforms, including visionOS. Glassbreakers Champions of Moss is a cross-platform multiplayer game developed by PolyArc using Unreal Engine. Glassbreakers is expected on Apple Arcade November 13th. Many of the tools and workflows you're familiar with can be brought to your Vision Pro projects.

Unreal engine enables immersive games using Metal and Compositor Services. These apps can be presented with or without passthrough, and you can learn more about how to configure Unreal Engine by visiting their official documentation. Additionally, much of the source code for Unreal Engine is available to developers, and it is even possible to modify the engine to expand functionality. This enables advanced DIY implementations for native platforms, including visionOS.

Finally, I'll mention Godot engine and what is possible today, because a lot may have changed since you last took a look. Godot is a fan favorite for many developers because the Godot project is free and open source. This means you have direct access to the source code without restriction, and development on the core engine can happen broadly and rapidly based on developer engagement.

Earlier this year, the Godot community graciously accepted a contribution from Apple that enables visionOS as a target platform. This contribution enables only windowed experiences, meaning you can present your Godot apps and games in a flat screen on visionOS. If you're interested in using Godot to build games for visionOS, I encourage you to follow updates on the official Godot repository on GitHub to see the latest contributions from the community, including from Apple.

So I just went over a lot. So let's recap the paths available to you to bring a game to visionOS. The journey can begin with compatibility, where your existing iPadOS and iOS games find a new home on a stunning personal big screen. For a deeper spatial experience. You can build with our native frameworks.

Here you make a key architectural choice. Use the rich built in features of RealityKit, or take absolute control of the renderer with Metal and Compositor Services. And of course, you can leverage your existing skills with familiar game engines. Powerful tools from engines like from like engines like unity, unreal and Godot allow you to bring incredible content to visionOS using workflows you may already know.

And I want to leave you with one more piece of advice. Find us on the developer forums. Apple engineers, including myself, hang out on the forums answering questions about APIs and bugs. So please reach out to us during development with any questions you might have. And with that, I'll hand it over to Mike. Thank you.

Unlock success with premium games on the App Store (standalone session)

My name is Mike Escudero and I'm on the App Store business development team looking after games in particular. So I'm going to spend a little time today talking about the App Store in general, and then drill down and talk about premium games on our platform. Free to play games, as we all know, are predominant on mobile and the App Store, but we see other game types and business models also find success.

As I'll show you in the next couple of slides, the App Store is a huge platform reaching hundreds of millions of gamers. So when you think about who's playing, it really is all audiences, from the hardcore to the casual and everyone in between. So let me get started. The App Store is a trusted place for people around the world to discover your game. Reaching players in 175 storefronts on more than 2 billion devices, which you've probably heard a few times today and in 39 languages.

And the App Store continues to grow, reaching more than 800 million visitors every week. So this presents a huge opportunity for you to get your game discovered by people across the globe. As our editorial team sometimes likes to say, the today tab on the App Store is the most widely read front page in the world.

And to help you grow on Apple platforms, we continue to invest in features that help you market and promote your games, like in-app events and featuring nominations, as well as app analytics to measure success and so much more. So some of these are newer, like app tags or the new Apple Games app, while others have been enhanced to better support you. Today, I'll kick things off by quickly sharing some highlights of key features shown here, and then we'll spend more time going deep on the Apple Games app and Game Center, which my colleague Misha will talk more about later.

So a good place to start is with TestFlight, as it is the easiest way to make sure a game is ready to launch on Apple devices. You can use it to invite people to test your game and collect their feedback before your game is published. With TestFlight, you can distribute just to your internal team or open it up to external testers as well.

You can invite up to 10,000 testers by sharing a public link or using their email address, and TestFlight makes it easy to manage tester groups, review their feedback, and test in-app purchases without incurring any costs. All of this lets you make sure your game and purchase process provide a great customer experience at launch.

After you've tested your game and determined a launch date, you can make it available for preorder in any brand new region before it's released worldwide. This lets you build excitement for your upcoming launch up to 180 days before your game is published. You can soft launch your game by releasing it in a select number of regions and offering it as a preorder in others. You have the flexibility to offer different release dates for different countries, and on launch day, your game will automatically be downloaded onto user's device, letting you build momentum and climb those top charts upon release.

So, of course, before you make your game available to the public via preorder or really any way you're going to want to have a business model determined. And the App Store supports several different types. So first, there's the traditional paid model. With a paid model, players buy and pay for the base game up front and that's it.

Today, an example of that could be anything from Death Stranding to unpacking. And also last year's indie hit Balatro, which we like so much. It's also an Apple Arcade. There are no additional purchases needed, and there are players on the App Store who only spend money on these types of games.

Then there's what we call the freemium business model, or more commonly known as free to play. The majority of games on mobile and the apps are freemium, including one of our Editor's Choice games, Marvel Snap. Here, players download and start playing the game for free, and then within the game they can choose to purchase consumable items like lives or currency.

Over time, we've seen some developers use a blend of these two models, which is sometimes called premium. So Dead Cells sells the base game, and the players can make optional purchases for things like DLC via in-app purchase directly from within the game. And lastly, the Try Before You Buy business model. This is where players can download your game for free, and then unlock the full game content via a single in-app purchase. So we're starting to see games that are paid on other platforms actually use this model on the App Store, such as a little to the left.

So everything on the App Store is bought with in-app purchase system. This includes things like in-game items, DLC, subscriptions, and even paid games. Purchases are completed using Face ID, Optic ID, or Touch ID, offering a safe, quick and seamless purchase experience and to help you reach customers around the world. In-App purchase also includes end to end payment processing for up to 200 payment methods, including credit and debit cards, digital wallets, carrier billing, and more.

In addition, our system also automatically handles taxes for you, so that's calculation, collection and remittance as well as any compliance requirements. So it's easy to sell your games and digital goods around the world. And if people have any questions or issues with any purchases happen, sometimes Apple provides you with tools to help you resolve any problems that arise, including a world class customer support team.

And once your game is live, you can use in-app events to showcase exciting things happening in your game. Whether it's new content drop or DLC, people can tap an in-app event card to download or open your game, and a deep link will take players right to the event page within your game.

You can submit in-app events without submitting a new build, and people can discover in-app events across the store. So in search results, personalized recommendations, and editorial collections, and you can measure performance in-app analytics, where you can see key metrics related to your event. But within app analytics, you can do so much more. You can also get data related to your apps for performance and marketing campaigns, your app engagement and usage proceeds. Propane user. It's an important one. Peer benchmarking and more.

This data helps you understand how people find, download and play your game and can help you improve discovery and the player experience. All of the data and app analytics, and in fact, all the features that I'm going to cover here today are included and available to you at no additional cost as part of your Apple Developer Program membership.

And if you offer your game on iPhone or iPad, you can use product page optimization to test your store listing for better results. So this feature allows you to test elements of your product page like your icon screenshots, preview videos to see which combination of these results in the best conversion. Up to three treatments can be created and tested at once. And you can choose a percent of audience that will see each treatment. You can also narrow these tests down to specific localizations if you really want to optimize by region.

In addition to all of that, as a platform, we are working hard to empower developers to make games that are truly cross-platform. With Universal Purchase, players can pay once on the App Store on any device and play everywhere. If you go this route, we do recommend implementing cloud saves so players can go from playing on their Mac at home to their iPhone anywhere they go, and vice versa. And every year, we're going to make it easier for you to develop once and deploy everywhere.

So now that I've covered some key App Store features, I want to share with you some best practices for bringing paid games to the App Store. So these four areas here preorder try before you buy. Universal Purchase and Game Center are best explained with an example. So in the next few slides, I will share how Doggle games use them to launch Thronefall on the App Store earlier this year. So Thronefall is a fantastic game for those who haven't played it. It's very fun, very easy to pick up, great art style, and it actually released on the App Store in June of this year. But they began to build awareness early by going live with preorder.

So this not only this, not only did a few things, it gave us the opportunity to promote it on our store, as you can see here, but also gave the developer a landing page where they could direct traffic and capture player interest with any marketing activities that they were doing.

And to enhance conversion and the total number of preorders and ultimately downloads, rather than selling the game with an upfront purchase, the developer utilized the Try Before You Buy business model to remove any barriers and really open up the top of funnel. Try before you buy moves the purchase from prior to download to somewhere later in the game experience. So for example, either after a user has played for a certain amount of time or made a certain amount of progress in the game.

Really, it's completely up to the developer and what works best for their game. To reach more players and increase the value proposition for customers. Thronefall is also available across Mac, iPad, and iPhone via Universal Purchase. So if a player bought the game on one of these devices, they can play it on all of them for no additional cost.

And because Dock L games implemented Cloud Save, a player can continue playing across all these devices without losing any progress. So what's powerful here is that there are so many Apple devices in the world with App Store natively installed. You have the chance to reach hundreds of millions of players with your game.

And to boost engagement with their game, and appear in more places on both the App Store and in the games app. The developer implemented the full offering of Game Center features. So first there's initialization, which authenticates the player and brings them into the Game Center social platform. So this does a few cool things that Mischa will actually talk more about later. But one of which is showing you who of your friends are also playing the game. So if you see across the top here, these are my friends who are playing Thronefall.

The developer also implemented Challenges, which are limited time events that players can initiate and invite friends to participate in, regardless of whether or not that friend has the game installed. So it's an acquisition tool as well. And then lastly, Dock Games implemented two more traditional game mechanics that are supported by Game Center Leaderboards, which can be both global or contained to just your friends. And then Achievements as well.

And so that's how Dock games launched Thronefall on the App Store this summer. And if you haven't played it yet, you should check it out. You can try before you buy. That was much cooler in my head. And so one last thing that I want to mention here before I close out is a small business program.

So if you're a new developer of the App Store, or if you made less than $1 million in the prior calendar year, you can sign up. When you're part of this program. The App Store commission is reduced from the standard 30% to 15% in order to help propel your growth. We definitely encourage you to check this out and apply if you are eligible.

So that concludes my section. What I want to say that we're committed to making all kinds of games successful on the App Store, from free to play to premium and everything in between. So if you're interested in learning more, please find me after today's session. And with that, I'd like to warmly welcome our guest speaker, I'm Nadia, CEO and producer at Black Salt Games.

Discover how DREDGE was reimagined for Apple platforms | Black Salt Games (standalone session)

The team of four behind dredge, a fishing adventure where you play a boat that somehow became a global indie hit.

Today, I want to share how we took that success and found new depths on Apple's platforms. What we learned, what surprised us, and what it could mean for other premium Indies. Exploring the App Store as a platform for their games. Before we focused on whether we could make dredge feel native, we had to ask ourselves whether we should.

And while we never expected our little cosmic horror fishing game to be a global hit, it was clear right from launch that players saw the possibility for the mobile version. It's a great game for travel and therefore mobile play. And except for a couple of technical challenges and design doozies. I'll get to those. So did we.

Once we had added and so much content to the game as we had wanted and frankly, could. By that point, we asked ourselves if we were up for tackling this next challenge to deliver the same dredge experience that carried in our players pockets. Give the players what they want.

This philosophy guides how we craft our games. It's not about simply giving the players what they ask for. Obligatory. Henry Ford and his dubiously attributed horse quote. But it's also not about forcing your vision to fit their reality. You need to find a balance between the two where what you imagine and what they want to feel come together harmoniously.

We spent countless hours during the initial development of dredge watching players test our builds, making sure the controls were intuitive, that we were guiding players while still supporting the freedom of play, and that the game secrets were discoverable but remain genuinely surprising once they were found. When we decided to bring dredge to the App Store, we knew we'd need to revisit many of those foundations from the beginning. Controls had to be redesigned to support touch screens, and the overall game flow would inevitably change because of it.

Our players trust us to provide an experience of escape, not one of buggy frustration. So if we were going to release dredge on mobile devices, it had to feel every bit as good as it does on PC or console, not a runner up version. We did have an ace up our sleeve that probably made an iOS conversion a lot less intimidating for us. We already were mobile developers.

You can see it in how quickly we delivered dredge with such a tiny team, and how tightly optimized our assets are. What, ten years in mobile game development taught us is discipline, working to minimum spec, and the constraints of making a performant and atmospheric open world game that runs well on mobile devices is a habit that stuck with us.

It means we still build our PC and console games with that same efficiency without ever compromising on quality. And because of that approach, our games ran beautifully on Apple devices even from the beginning. And even though it's not a dedicated, dedicated gaming console, iPhones and iPads are more powerful than some of the consoles that we do have to build for.

There are still a few shader and battery life optimizations to sort out, but when it came to the nitty gritty of converting a mouse and keyboard or controller game into a touch game, our obstacles were mostly around the conversion of our gameplay and UI to support it. Three main ones really. The first big job was the interface. Dredge's layout was designed for a nice wide 16 by nine display, and we made a conscious decision not to support anything squarer than 16 by ten.

We couldn't accept that for our tablet users, though, we size the characters down slightly for some of the taller screen ratios. Redesigned the buttons so they felt tappable rather than just informative and adjusted how buttons responded. To touch on PC and console, you can hover over a button before you click it, and tooltips and prompts will appear to give the user more information.

Hovering with your finger wasn't exactly viable, though. We spent a lot of time refining adjusting where elements were placed because of where thumbs naturally fall and how far they move. We ended up shifting parts of the UI, changing the sizes of buttons and making in-world UI prompts into Tappable buttons. Touch controls sounds simple. In theory, you can just tap what you'd normally click or select with a controller, right? If only. But we knew right from the start that this would be one of the most critical things to get right. One of our biggest concerns was visibility.

Dredge is an open world game where the player is the boat, so being able to navigate the seas while still seeing the world around you is essential to the experience. We control that through two inputs movement and camera, which is easy enough with a controller or mouse and keyboard. But dual onscreen joysticks meant two thumbs, taking up a good chunk of the display. We worried it would pull players out of the experience, but we also didn't want to make our mobile version controller only. So once again, we prototyped.

To our surprise and relief, players found it completely natural, even immersive. That tactile sense of directly steering their boat without the usual layer of abstraction was actually preferred by some players over the desktop or TV experience. From there, it was all refinement, supporting simultaneous inputs, adjusting thumb zones, accounting for tiny finger lifts, and tuning movement speed based on how much players pushed the joystick.

A lot of planning and effort. Also, the players never have to think about it. I always feel bad that our playtesters, while getting to see our games earlier than everyone else, also see and play the worst versions of them. The heroes we need but don't deserve. Fishing is one of the core parts of Dredge's Loop. Go out. Catch fish. Come back.

Sell. Upgrade. Repeat. Please do it hundreds, if not thousands of times in a normal playthrough, so it had to feel smooth and intuitive. But in dredge, we found the traditional flow resulted in too many misplaced items frustrating our players. So that had to change. At first glance, it doesn't look like we changed much, but under the surface it was one of the biggest redesigns we did. We flipped some elements of the fishing UI and added a tap to bring up interaction for what was essentially our hover menu.

That extra step might sound slower, but through testing we found it was actually smoother on touch, players were no longer picking up the wrong item and having to put it back down again. Second, the fishing and inventory flow. Rotating fish is a really important part of our game.

I promise it's a lot more fun than I'm making it sound, but it's not necessarily easy. If your finger happens to be bigger than the fish you're trying to spin. Pricing is always the elephant in the room when you bring a premium indie game to mobile. There's this long standing idea that mobile games have to be cheaper, that players won't pay the same price they would on PC or console.

But we weren't bringing a discount version of dredge. This was the full experience, built and refined with the same care and scope as every other platform. So we decided early on to keep price parity with our other SKUs. Launching at US 24.99 for an average ten hour playthrough.

If we were going to take that untraditional route when most premium games are priced 30 to 50% lower on mobile, we needed to make sure players were getting real value for their purchase, that they felt confident in what they were buying. And for us as a business, it was important to have as much visibility on our launch as possible.

One of the biggest ways we added value was through Apple s Universal App system. It's one of only two true cross-platform versions of dredge one purchase that works across iPhone, iPad, and Mac and carries your saved data between them. Technically, there are separate code bases. Our Mac build is based on the PC version and our mobile build on iOS. But for players, it just works.

You can play a few minutes on the train, then pick up exactly where you left off at home. That kind of flexibility makes the premium price feel worthwhile, because you're not only getting what PC gamers get. You additionally get to play that game on your phone or tablet.

Try Before You Buy was suggested to us by Apple early in development to give players confidence in their purchase. As PC and console developers, we're used to releasing demos, so it immediately made sense. It's a model that lets players check that dredge runs well on their device, and more importantly, that it's the kind of experience they're looking for before committing to purchase. It's performed really well for us.

The conversion rate from Try Before You Buy is around 30% higher than when that same paywall sits up front on the store page. It's simple and it builds trust. Players get to experience the game firsthand, and when they decide to buy, they're already confident and invested. Our trial allows players to explore the first of five biomes takes, on average, about two hours to complete, so accounts for about 20% of the overall experience.

Preorders were a big part of our launch strategy. They're available for up to six months on the App Store, which gave us a long runway to build awareness before launch. Actually, Dredg launched with more preorders on the App Store than it had wishlists on steam, a dedicated gaming platform.

So that speaks to the reach of App Store preorders, and those preorders mattered. Players who preordered on the App Store went on to purchase at around four times the rate we've seen on other storefronts, and in the first six months, those preorders accounted for roughly 4% of our mobile sales.

Since launch in February. This year, we've reached over 1.5 million players via the App Store. Many of them are in places where console gaming isn't the norm. India and parts of Southeast Asia. And that's been incredibly rewarding. We talk a lot about accessibility in terms of mechanics, but for us this was accessibility and reach, bringing the experience to people who wanted to play dredge but simply couldn't play it before.

Critically, the reception has been fantastic. We've had strong player reviews, industry recognition and Dredge Mobile has also earned several awards, including New Zealand's second ever Apple Design Award for innovation. That one meant a lot because it validated the decisions that were hardest to make. The UI redesigns, the control reworks and of course, the endless testing.

Financially, it was a positive return within the first month of launch, even though it was our most expensive conversion, because we did take the time to make sure it was purpose built for these devices. And yes, even though our game is priced at $24.99 on the App Store.

Looking ahead, I think the opportunity for premium games on Apple platforms is only getting stronger. Discoverability is always a challenge. But the new Apple Games app is a great example of Apple responding to both developers and players feedback. Giving players a more focused space to find games they'll love, and amplifying the ProMotion of your most valuable acquisition channel. Word of mouth. For us, bringing Dredge to mobile was never about chasing another platform.

It was about making the game accessible to more people without compromising what made it special, or lowering the quality and user experience standards that we hold our games that have our name on them, too. Because if there's one thing this process has reinforced, it's that players everywhere respond to quality and care. So to sum it up, Apple made it easy for us to add real value for our players. The universal app try before you buy preorders. Those are systems that make it simple for developers like us to give players more flexibility and confidence in what they're buying.

We want to dredge to feel great on these devices, not just run on them. And we did have to spend some time redesigning the UI and wrestling with controls, but a lot of that was our own decisions coming back to bite us. It was our first PC console title, and now we know how to make more platform agnostic decisions from the start of development. But all of it was worth it.

Dredge looks beautiful on Apple devices and plays seamlessly across them, and it feels right at home on Apple's platforms. For us, this was never about just adding another SKU. It was about doing it properly, adding value for our players without compromise. And we learned how to make our games more adaptable in the process. Now back to Cupertino.

That was cool. So the audio was a little themed, was a little underwater. But hopefully you got the message. That was pretty interesting and kind of a rare peek behind somebody's thought processes as they're exploring these challenges we've been talking about all day. And we've got another really interesting behind the scenes look ahead from the editorial team about what they're looking for when they feature games.

And also, we've got a look at the Games app, which can help bring your games to more players than ever before. So the last few sessions are, I would say, a don't miss. We are going to take a short break before we jump into those. So 15 minutes, I'll see you back here.

All right, come on in. Welcome back. So all right, we've had a lot of stuff today. We only have two more things for you, two more speakers. But I think you're going to really like what they have to say, because they're both talking about how you can get your game noticed by even more of those hundreds of millions of players on Apple platforms that we've talked about. So I'm going to get off the stage so they can get back on here. Without any further ado, I'll hand it off to Mischa. Thank you so much, Charlyn.

Boost discoverability and engagement with the Apple Games app (standalone session)

Welcome everyone. My name is Mischa. I'm on the App Store product team at Starling said. And I'm so excited to share a lot more about the brand new Apple Games app with all of you today. Start with an overview of all the ways that your games can be discovered across the Apple Games app. Then we'll share how you can boost your discoverability in the games app by initializing Game Center. And lastly, I'll cover how you can get the most reach and engagement by adding new and existing Game Center features to your games.

Okay, let's dive in. As you all know, today people can visit the App Store to discover new apps and games and learn more about them. And this fall, we launched the Apple Games app, a brand new all in one destination for players and their games. The games app complements the App Store and is designed to help players more easily discover new games that are personalized to them. Jump back into their favorites and connect with their friends.

The games app is automatically installed with our latest operating system, OS 26 on iPhone, iPad and Mac so players can seamlessly discover, launch, and engage with their games across their devices. Let's take a look. The first thing players see when they open up the games app is the home tab, which offers a personalized look at what's new across all of their games.

At the top, players can see a carousel that shows the latest activity and events that are happening inside of their games. They'll also see highlights of their friends activity from Game Center, and personalized recommendations for new games and new releases featured by our editors, and so much more.

They continue playing section shows players the last games they were playing so they can jump right back in. It also shows the games that they've recently downloaded so they can remember to check them out next. Players can then scroll down on the home tab to explore games in new ways, like the Friends are Playing section, which makes it easier for players to discover what games their friends are playing. Personally, my favorite way to find out about new games.

There's also the new top played games chart that shows what games are trending and being played the most right now. As players scroll down the rest of the home tab, they'll find collections curated by our editorial team And category pages where they can browse their favorite genres, like card games. The home tab also includes a dedicated section highlighting in-app events from the games that players already own to inspire them to return and enjoy the latest content.

Next, we come to the friends tab, which makes it easier than ever for players to connect and play together on the friends tab. Players can invite friends to compete in challenges, get recommendations of what games they can play together, and see what their friends are up to in all their games. Last but not least is the library tab, where players can quickly navigate to key waypoints like arcade games, new events in their games, and their achievements.

They can also view all the games that they've ever downloaded from the App Store on any of their Apple devices, which is great for rediscovering old favorites. And of course, players can also tap here to search for all the games from the App Store. When they tap to view a game, they'll get to the game page. Each of your games has a dedicated page where players can learn all about it.

As you may know to appear on the App Store, you provide all of your metadata via App Store Connect. That same metadata is used to automatically power your game page on the games app, such as your icon name, age rating, your screenshots, description, and more. So no additional work is needed to make all of that appear right here. To complement your icon, the games app automatically customizes your game Pages background colors to provide visual harmony.

When you support Game Center, players can see the emojis of each of their friends that they most recently played the game, showing up all around your icon. And when you integrate more Game Center features, your game page really comes to life. Putting your features and related social activity front and center, like when a friend passes them on a leaderboard. They can also see which of their friends are playing the game and all the challenges that they can invite them to.

Leaderboards and achievements are also displayed on your game page, so players can see their progress and recent rankings, and to help players connect with friends. Every player has a profile that shows their latest game activity, letting them see what Leaderboards and Achievements and games their friends are playing, and they can even invite them to play together, all from within the games app.

So that was a quick preview of the new Apple Games app. Now let's take a look at how you can take full advantage of all the new services within the games app. Starting with Game Center initialization. As you may already know, Game Center is a set of features that make playing on Apple devices more connected and rewarding for players. And now, with the games app, we've given these features a new home to better drive social discovery and re-engagement with your games.

The way to get started with Game Center is by adding initialization to your game. Initialization automatically signs players into their Game Center account, which is set up at the system level using their Apple ID. Initializing Game Center enables your game to appear in key placements across the games app, including on the top played games chart and on the friends are Playing section. Motivating them to download and play your games.

And to give your game additional opportunities for social discovery. These placements can appear on the App Store as well. Keep in mind, only players who are initialized will appear in the friends or playing section and be counted towards the top played games chart. So initializing as many of your players as you can will maximize your chance to appear in these key placements.

Finally, Game Center makes it easier for players to seamlessly continue playing their games across their Apple devices. For example, when someone plays a game with Game Center on their iPhone, it will not only be the first game they play there or see there, it'll actually also be the first game they see on their iPad or their Mac. So enabling Game Center is a great way to stay on top of the mind for your players as they move between their Apple devices.

Now let's talk about how you can take your potential for discovery even further by adding more Game Center features to your game. In this section, we'll talk about how you can attract new players and engage existing ones by implementing features like Achievements, Leaderboards, Challenges and activities. To start, let's talk about Achievements Achievements. Reward players for completing milestones in your game and they encourage deeper engagement. Progressive Achievements are particularly effective at motivating players to continue making progress, since we automatically show Messages to give them just an extra bit of encouragement.

Players can see achievements across the games app, including ones their friends are getting front and center on the home tab, as well as on their friend's profile pages and in their library. Players can see their completed achievements and their progress towards getting their next ones. When players tap on an achievement, they'll see all of its details, including any progress they've already made, which of their friends have unlocked the achievement and its rarity? Automatically calculated based on the number of players who've earned it.

Next up, let's explore Leaderboards. Leaderboards give players a way to measure their skills and encourage friendly competition. They're designed for flexibility so you can use them to track things like most coins collected in a level or best daily puzzle time. And they can be ongoing for things like all time high scores or reset on a recurring basis, such as daily or weekly.

Leaderboard activity appears all across the games app, motivating players to jump back into your game. And best of all, players get notified when a friend passes their high score. That way, they can reopen or redownload your game to reignite the competition. Next up are challenges, which are a great new way for players to bring their friends into your game.

With Challenges, players can invite up to 15 friends who gets to see who gets the best score in a time based competition. Challenges let you turn single player experiences into social ones that players can share with their friends. And best of all, challenges are built upon existing leaderboards. So if you already have created a suitable leaderboard, you can enable a challenge for it with no additional code required.

Players can discover challenges across the game's app, including in the hero area of the home tab on the friends tab, and on friends profile pages, making them a great way for new players to discover your game and invite their friends in on the fun. Once players start a challenge, they They can see how much time remains, where they rank among their friends, and get notifications whenever anyone beats their score. And when time is running out, keeping everyone coming back into your game to see who can be crowned the winner.

To close out the Game Center features section, let's talk about activities. Activities allow you to create a deep link that brings players to a specific destination in your game, and they can be associated with any other Game Center feature that we've already talked about. So you can make them even more engaging.

There you go. For example, with an activity associated to this challenge, tapping the Start Challenge button that you see opens the game right to the point where players can begin competing in that challenge immediately. You could also associate activities with the leaderboard for a daily word puzzle. Deep linking players right into today's puzzle. And lastly, you can use activities to link directly into multiplayer matches, letting you promote your multiplayer experiences across the games app so players can discover them and invite their friends to play even into versions of your game that are outside the Apple ecosystem.

And that's how you can use Game Center features to make the most of the games app. Game Center features also appear within the Game overlay, which gives players quick access to important information about your game at the touch of a button, like their achievement progress, leaderboard updates, and friends who are playing.

All without needing to leave the game. Now that we've covered all those Game Center features, let's recap. So first, just by publishing on the App Store, your games automatically appear on the games app so players can more easily jump back into your games, rediscover them in their library, and find them in search.

You'll then get more value by initializing Game Center, which unlocks social discovery for your games through friend recommendations and the top played games chart. And the more Game Center features and in-app events you adopt, the more you can maximize your reach and engagement potential, whether it's via push notifications or appearing on the home tab of the games app. So that's how you can make the most of the games app. Start by implementing Game Center initialization and consider additional features like Leaderboards and in-app events, and for unity developers. Most of the features that we cover today are also available as part of the unity plugin.

You can find out more about the games app and Game Center features in two DK 25 sessions. Engage players with the Apple Games app and get started with Game Center. You can find these on the Apple Developer website and on our YouTube channel, along with more resources and documentation on our developer website. And of course, be sure to explore the games app on your iPhone, iPhone, iPad, and Mac to experience all these great new features firsthand. And now I’ll turn things over to Kelli from our editorial team.

Explore game curation and featuring on the App Store (standalone session)

Hi everyone, I’m Kelli. I'm a games editor on the App Store editorial team, and I describe myself as a lifelong player. And when I say lifelong, I mean my first Mac was a tan box with a floppy disk drive. So it's been a minute. Now, one of my favorite parts of what I do is getting the chance to help players find new favorite games. So if there is an opportunity for me to help make a connection between what you're making and all the people who are going to love it, I consider that doing my job well.

Today, I'm going to share a bit more about how players discover your games through editorial, across the App Store and the games app. I'll take you through what editorial placements look like. Then I'm going to talk a bit about what we're looking for in games. And after that, I'm going to tell you how you can tell us about your latest projects.

Okay. Let's get started. So there are three primary ways that people can discover your games on the App Store by browsing our curated tabs, by being referred from outside the store, and by using search. As a member of the editorial team, I'm going to focus on how we curate and how that curation shows up when people browse the App Store and the games app.

Now we're very proud of our store. It's curated by hello again, real humans worldwide. Our editorial approach is to celebrate the best games that the App Store has to offer. Create a trusted place that's curated by experts, where players can find great new games for their devices, and then to make stories and collections that inform, help and inspire our players every day.

The App Store, as you heard before, is available in 175 storefronts and more than 39 languages, and our editorial featuring is reflected across all of these markets. Our global editorial teams play everything that we feature once we found a game that we want to promote, we then decide how, where and when to highlight them on the store so that we can help shine a spotlight on your incredible work. And we do this across every platform and every app Store, from iPhone to iPad, Mac and Apple TV.

Now, when people open up the App Store, the first thing they'll see is the today tab, which is updated daily to include the latest stories. You'll find a lot of types of coverage here, and we'll go into that in a moment. From there, visitors can tap to view the Games and Apps tabs, which have a higher density of content, encouraging broader discovery across the App Store catalog with more focus on collections and personalized recommendations.

On today, Tab editorial takes many shapes, from tips about our favorite games to behind the scenes developer stories. To launch stories like this one we have up here about The Stanley Parable. We also put a lot of focus on in-game game event coverage and other opportunities for players to reengage with their favorite games.

We want to showcase the biggest and best events happening on the store, while also personalizing the page so they see what's most relevant. This way, players are not only discovering new games they've never played before, but they're also able to keep up with what's inside their favorite games.

Editorial also features curated collections. These showcase games that share a common theme. Some of those might be things like controller support or offline play, or what we're looking at here. Try before you buy, which includes games that can be downloaded for free with a one time purchase to unlock full access. Our collections cover everything from subgenres that suit different moods to specific features, themes, and styles of play.

Moving one tab over on games tab, our visitors get a games only experience that showcases more of a broad content, and here there are plenty of opportunities to be featured in different ways. In the example we have up on the screen, I've highlighted some of the placements that include artwork, which we may request from you.

You can also tap into categories that focus on more specialized interests. For example, not all of our players are interested in roguelikes, but if someone is looking for them, we want to make sure that they can find them. Just like today, GameStop includes collections where we publish things related to trends and cultural moments. Another example, let's say a popular superhero movie has just come out. We might have a superhero collection for players to interact with that content. Players can come to this tab to regularly find new games, updates, and relevant events.

Your game may be considered for coverage BeatsX that we hit at regular intervals during the year. Got to catch my breath. Some are festive moments, like we just had Halloween or Valentine's Day, which is coming up. Others align with events that may be International Women's Day, Earth Day, Accessibility Awareness Day, and pride.

This is when the stories behind your games can really shine. As we highlight relevant in-game events, do behind the scenes profiles, and also surface the games in related collections. In addition, our global editors will plan content based on events in their local markets. What you're seeing here are just a few examples of some of the things we've done in the past. Could be cultural moments, seasonal celebrations, or any other themes that we could highlight.

I'll get into how we make sure that we know your game includes those features in a little while, but these are definitely moments that you can think about when you're trying to think about how your game may appear on the store. Our curation also appears on the games app.

Misha just went over that app in detail, so I'm just going to quickly touch on where you'll see editorial content on the app. You're going to see a lot of the games that we've featured on the store pages, but with some additional considerations for Game Center features. On the home tab of the games app, you'll see curated games from collections from our editorial team.

These are displayed alongside other personalized recommendations like Game center activity and events for games you're playing. On these pages, you may see stories to help customers understand the app or various pieces of curated content like single app cards, where we have a standalone piece of art or collections to get customers deeper into our catalog of games.

And as Mischa mentioned before, if your game is utilizing Game Center features, there are more opportunities to find it placed in the games app. More straightforward categories like racing, action and indie are also available on home. They'll lead to fully curated destinations, and we're excited to showcase a lot of the best games that we found here. Those categories will also appear when our customers head over to search.

Now that I've covered how editorial appears on the store, let's talk a little bit about how we make featuring decisions. When considering what to feature in general, our teams look for great games across all categories and business models. There's no checklist that we go through or specific requirements, but some of the factors that we consider are on the screen right now. Our editors may look at things like your gameplay design, your mechanics, your UI, the gameplay flow.

We may also consider artistic considerations like your visual style, your animation and your sound design, or more technical aspects like your controls and overall performance on our devices. This could also include OS and device specific features. In-game localization and accessibility are also important considerations, as we try to ensure that our featuring can appeal to players around the world.

I could probably create an entire new presentation, just talking about all these different facets of games. But what I'd like to do now is just spend a little bit of time going into detail on just a few and giving you some of the practical considerations that we look at as a team. I'll be going through examples in gameplay design, art and animation, storytelling and controls.

So I'm going to start with a game called Afterplace. This is an adventure designed to be played with one hand in portrait mode, where you use swipes and moves and taps to attack. While the game feels easy to pick up and play, there's plenty of depth to really master challenging fights as you explore the world.

Each character has a whole lot of really amusing dialog, and the cryptic map has a lot of well-placed secrets. Putting all of these features together, we were able to get into something that makes the world feel not only worth exploring, but replaying. And I've actually replayed this game maybe two and a half times, and I don't think I've found everything.

Our team awarded the game Editor's Choice. It went on to win an Apple Design Award, and the game fits into a wide range of different collection types, so I could consider this for adventure games, indie games, great games on iPhone, or when the developer submits things like post game content or releases it on other devices, which this developer has. There are many other opportunities where I could feature, and he consistently kept us alerted about those updates.

Next, let's take a look at art and animation with Ubisoft's Prince of Persia: The Lost Crown. Standout examples for art and animation can take many forms. Sometimes that's creative use of pixel art or more high production value games like the ones we're seeing here. This one launched not only on Mac, but what you're seeing on iPhone and on iPad. The developer brings us into a rich and detailed world with vibrant colors and a satisfying amount of comic book style flash.

The side scrolling look is a nod to classic Prince of Persia games, while also bringing modern elements into this mythical setting. It looks great and it runs extremely well across all the platforms we played it on. A game with well crafted visuals may be considered when we're looking at collections of games with great graphics. Now, the visuals can be a high point, but it's definitely not the only thing that we consider. We're always looking for original ideas and overall high quality experiences.

Which brings us to cyberpunk 2077. This is a game our team was happy came to Mac earlier this year and the game looks amazing. Absolutely, yes. But this is also a great example of storytelling. Cyberpunk's incredibly detailed world is filled with immersive stories and complex characters. The stories touch on themes like the blurred lines between man and technology, while also making the experience feel customizable and centered to how you choose to move through Night City. It does this with expertly voiced dialog and a wide array of choices that players can make to make the story feel like their own.

Considering this point in a different way, never is a beautiful game from a small studio that definitely has a memorable and recognizable art style. And that art also goes a long way when it comes to storytelling. Never manages to do that with almost no spoken words. Its themes are driven home through rich color scapes, well-crafted sound, and really amazing hand-drawn animations. It tells a poignant story about love, loss, and growth that anybody can understand.

And now, my last example. I'm sure everyone recognizes this game. We're going to take a look at Dead Cells, but specifically talk more about controls. When the team considers controls, we're not just looking at whether they function. We're looking at how well they function and how they feel to use in Dead Cells. Even with fast paced action, the controls remain responsive.

The developers also included customizations to make the game feel more comfortable with touch controls, things like auto attacking functionalities. The game features a lot of accessibility considerations like minimizing screen shake, so we've actually featured this game in games that are accessible on Global Accessibility Awareness Day. Players have the ability to move button locations on the screen as well for more tailored input experiences.

While we don't expect this level of customization and versatility in every game we review, these are just great examples of giving players tons of options to improve their experience. Again, there's no featuring checklist, and there is so much more that I wish I could cover right now. But if the game that you're making is incorporating any features like this, or features you think are important to tell us about, it's definitely something we're looking for when we plan promotions.

At this point, I've covered a lot about featuring opportunities across the App Store and the games app. So how do you get that information to my team so that we can consider you for these placements. Our teams are always looking to feature new games in game events and preorders, and with the featuring nominations tool, which you can find through App Store Connect, you can submit that information directly to editorial team members all around the world. And we're checking these nominations every week.

Using this tool, you can tell us about your game, launching big updates or interesting facts about your development or your game content. I'm going to give you a few helpful submission tips for the tool when you're planning to submit a nomination, especially if you're planning to submit for a new game, you should do so when you have a TestFlight build available, or a build in your system that you feel comfortable with an editor playing.

Like I said earlier, we play all the games that we feature, so if we don't have a build that we can test, we won't be able to make that featuring decision and we don't feature games that we haven't played. If you're going to describe your content in our fields, it's best to keep those notes short, but there are other areas of the tool where you can add TestFlight links, other descriptions, roadmaps, anything you might think is helpful for us to get specific information.

For timelines. You should ideally submit nominations at least three weeks in advance to give the editorial team time to review your content for consideration. Depending on how your game is highlighted, it can sometimes take an extended amount of time to plan featuring. So if I was going to plan featuring for your game in a collection, that might be something I could put up pretty quickly. But if I was going to plan a story for your game, that might take a little bit longer.

For stories, it's best to give us about eight weeks. That might sound like a lot of time, but it gives us time to assess the game. If it's new, write and edit copy request, and then maybe prepare video for your artwork placements and then have the option to globally localize that coverage so it can be published more broadly.

If your game has multiple unique updates on the way, please submit those as individual nominations. So if you know that you're going to be releasing new content in your game, and it's going to come out over a period of a few different dates, it's best to send those in as separate nominations for individual updates.

And if your important dates change, not a big deal. You can go into the tool and you can adjust the dates. Keeping these things in mind will help ensure that the editor reading your nomination has the most accurate and up to date information when they plan for featuring.

Most of the information that I've covered can be found on the Getting Featured on the App Store page on the Apple Developer website. This page explains some of the ways that we highlight content on our store, our featuring considerations, and has a link for the featuring nominations tool. That's it for me on editorial, and I thank you for spending the day with us. I’m going to pass it back to Charlyn.

Thanks, Kelli. That was cool, huh? So I mean, maybe you've already had a game featured on the App Store, in which case, awesome. Congrats. Hopefully, everybody else has gotten some inspiration about how we can see your apps featured on the store in the future. We'd love to see that.

So anyway, this is the point in time where we're going to say goodbye to our livestream audience. We'll say good morning, good afternoon, maybe good night And for you in the theater, why don't you join us in the lobby for Community Mixer? We'll have right after this. I'd love to see you out there. Thanks again, everyone, for joining us today. We've really enjoyed having you here at the Developer Center. And we look forward to playing all of your games across the Apple platforms.