入门汇总

深入探索游戏

无论你是打算构建新游戏,还是希望将现有游戏移植到 Apple 平台,Apple 都为你提供了必不可少的丰富工具,助你打造新一代游戏。借助 Apple 芯片的最新改进,你可以通过统一的游戏平台进行分发,为全球数百万玩家提供精彩的游戏体验。

为 Apple 设备设计游戏

优秀的游戏会融合其运行设备的独有特征和功能。玩家玩游戏时,可能正在旅行途中、坐在办公桌前、在沙发上放松或者站在客厅里,请充分考虑各种情况,并善加利用高分辨率显示屏、Apple 芯片、外置游戏控制器、耳机和扬声器。在 visionOS 中,根据玩家的周围环境调整音频、处理触控事件并添加自定手势。

《人机界面指南》:针对游戏设计

调整游戏界面以适应较小的屏幕

创建绚丽的图形

Metal 是一个用于绘制硬件加速 2D 和 3D 图形的框架。它专门针对 Apple 强大的图形处理器 (GPU) 架构而设计,可让你提供令人惊叹的图形,同时具备卓越的能效表现,支持畅玩游戏数小时。

除了友好且紧密集成的图形和计算 API 以及强大的着色语言外,Metal 还包含一套无与伦比的 GPU 剖析和调试工具,可帮助你调试及提升图形质量和性能。它的低开销模型可让你直接控制 GPU 执行的任务,从而高效地实现你在游戏艺术风格、动画和视觉感受方面的愿景。

借助 Metal,你的游戏在 iPhone、iPad、Mac、Apple TV 和 Apple Vision Pro 上可以充分利用 Apple 芯片的超强性能和超高能效。

你可以使用 Xcode 中的 Metal 游戏模板作为入手点,也可以查看 Metal 示例代码库,其中包含许多实用的示例,可在获得许可授权后使用这些示例帮助你学习相关知识,甚至可作为构建游戏的起点。

Metal 示例代码库

《Metal 编程指南》

《Metal 最佳做法指南》

在你熟悉图形基础知识后,了解如何提供更出色的玩家体验:

在 macOS 中管理 Metal 游戏窗口

提升游戏的图形性能并改进游戏的设置

改善下载量较大的游戏的玩家体验

提供直观的体验

你的游戏应支持游戏运行设备的默认交互方法。例如,由于用户通常使用触控操作来玩 iPhone 和 iPad 游戏,因此,适用于这些设备的出色游戏都是围绕轻点、轻扫、手势、平移、绘制路径等方面来构建的。对于 Mac 游戏,玩家希望能支持键盘和触控板或者鼠标。对于 Apple Vision Pro 游戏,用户希望能使用眼睛和双手来控制。

你还可以提供身体反馈来匹配游戏中的重要事件,并支持游戏控制器。

查看每个平台上可用的操控方式。

iPhone 和 iPad:触控控制、虚拟控制器、游戏控制器和触感反馈。iPad 还支持键盘、鼠标和 Apple Pencil。

Mac:键盘、鼠标、系统手势和自定手势以及游戏控制器 (支持触觉反馈)。

Apple Vision Pro:眼睛、双手、系统手势和自定手势以及游戏控制器。

输入:

键盘

指针设备

手势

聚焦和选择

游戏控制器

陀螺仪和加速感应器

遥控器

Apple Pencil

眼睛

游戏控制器

Core Haptics

利用虚拟和物理游戏控制器

打造出色的配乐和音效

Apple 平台提供一整套全面的音频技术,可助你打造丰富的游戏体验。利用这些技术,可通过空间渲染让玩家沉浸在多声道音频中,还能实时处理声音。

AVFoundation

PHASE

此外,你也可以选择利用第三方 SDK 来播放与游戏逻辑集成在一起的音乐和音效。例如 Audiokinetic Wwise 和 FMOD,可随时在 iOS 和 macOS 上使用它们。

设计音频触感体验

探索沉浸式声音设计

帮助玩家查找、交流和分享

借助 Game Center 让你的游戏具备社交属性 (甚至带一点竞技属性),Game Center 还提供美观的用户界面可显示玩家进度。

GameKit

ScreenCaptureKit

创建实时游戏

创建回合制游戏

集成辅助功能

考虑大家将以各种不同方式与设备互动,让每个人都能畅玩你的游戏。

在 SwiftUI 和 UIKit 中创建易于访问的 App

打造无障碍的空间体验

在 Unity 游戏中添加辅助功能

相关文档

辅助功能

通过游戏了解切换控制

旁白迷宫

动画图像

助听设备支持

观看更多辅助功能开发视频

探索空间计算

Apple Vision Pro 提供了一幅无边的空间画布,供你打造 3D 体验,能以全新方式让你的游戏鲜活逼真。用户可以在与周围环境保持联系的同时与你的游戏进行交互,也可以完全沉浸在你创造的世界中。

如果你正在构建适用于 iPad 或 iPhone 的游戏,还可以利用能提供逼真图像渲染、相机特效、动画、物理特效等效果的增强现实。

通过使用间接手势和直接手势,现有的 iPad 和 iPhone 游戏 (甚至那些自身设计不支持增强现实的游戏) 都可以在 Apple Vision Pro 上的窗口中自动运行。要添加立体效果并充分利用设备功能,例如使用手势输入和各种特效,请使用 RealityKit 针对空间计算设计游戏。

开发你的第一款沉浸式 App

为空间计算制作精彩的游戏

将你的 iOS 或 iPadOS 游戏移植到 visionOS

了解适用于 visionOS 的 TabletopKit

相关文档

visionOS

适用于 visionOS 的游戏

ARKit

RealityKit

AR 创作工具

使用现有引擎

一些第三方 SDK 封装了这些 Apple 框架,带来预打包程度更高的体验。根据你正在构建的特定游戏和你的熟练程度,你甚至可以决定通过第三方游戏引擎来利用这些 Apple 技术。你可以在 Apple 芯片提供的众多选项中,选择合适的现有引擎构建游戏,并与 Apple 技术集成。

例如,Simple Directmedia Layer (libSDL) 是一个热门的跨平台开源框架,可让你轻松创建窗口,在这个窗口中,你可以绘制 2D 和 3D 内容、接收系统事件以及更新游戏循环。这种方式非常适用于创建或移植无需与平台深度集成的较为简单的游戏。

如果你使用的是 Unity,可以利用 Apple Unity 插件 访问 Game Controller、Core Haptics、GameKit、PHASE 和 Accessibility 框架。你还可以使用 Unity 为 Apple Vision Pro 打造新游戏,或者重新设计使用 Unity 创建的现有项目。

已经构建适用于其他平台的游戏?了解如何将你的游戏移植到 Apple 平台。

即插即用:向你的 Unity 游戏项目添加 Apple 框架

在 Unity 游戏中添加辅助功能

打造沉浸式 Unity App

将你的 Unity VR App 带入完全沉浸式的空间

编写你自己的引擎

选择以下任一语言,创建你自己的自定游戏引擎。

Swift:这种编程语言功能强大,使用简洁而表现力强的语法,从设计上保证安全,并具备出色的编译器支持可方便捕捉常见错误。

资源

教程:使用 Swift 开发

C++:当你需要精细控制对性能至关重要的代码时,可以使用这种热门编程语言。请注意,它仅适用于 CoreFoundation 和其他基于 C 语言的框架,而且可能会导致一些编程错误变得更加常见且更难调试。

借助 Swift 与 C++ 的互操作性,你可以从使用 Swift 和访问所有 Apple 框架入手,然后继续处理游戏中对 C++ 性能至关重要以及跨平台的部分。或者你可以从 C++ 入手,然后在采用平台框架时集成 Swift。对于以 C++ 编写的图形 App、游戏和游戏引擎,Metal-cpp 可帮助你向其中添加 Metal 功能。

Metal-cpp

Swift 与 C++ 的互操作性

将你的游戏移植到 Apple 设备

了解在跨 Mac、iPad 和 iPhone 的统一游戏平台上,面向全球玩家推出游戏能有多便捷。了解如何在搭载 Apple 芯片的 Mac 上评估你的 Windows 可执行文件,如何使用代码示例开始游戏移植,如何将着色器代码转换为 Metal,以及如何将游戏移植到 iPhone 和 iPad。

将高端游戏移植到 Apple 平台

为 Apple 平台设计高端游戏

相关文档

进一步了解游戏移植工具包

了解 Unity 的资源

深入探索

更深入地了解 Metal

开始使用 Metal 后,请查看以下资源,了解如何充分发挥 Apple GPU 的强劲动力。

在 GPU 上运行计算。对计算通道 (在 GPU 的多个核心上与渲染通道并行运行) 进行编码,这样一来,计算便不会影响图形渲染。

计算通道

渲染通道

将资源流化到 GPU。通过异步方式将资源数据流化到纹理和缓冲区,从而更快地载入图形资源。

资源载入

调试和剖析游戏。使用 Metal 调试器调查视觉构件并优化 GPU 性能。采集你的 Metal 工作负载,并使用“Performance”(性能) 时间线查看 GPU 执行性能。采集 Metal 工作负载后,使用着色器调试器调查其中的视觉构件。

Metal 调试和优化工具

Metal 调试器

使用光线追踪打造逼真的光效。在场景中追踪光线,从而实现全局照明、反射、光线追踪阴影和光线追踪环境光遮蔽等高级光效。

使用 Metal 加速光线追踪

实时分析性能。在游戏上叠加 Metal 性能 HUD,以查看 CPU 和 GPU 指标。

监控 Metal App 的图形性能

从代码示例中学习。Metal 示例代码库包含许多实用的示例,可在获得许可授权后使用这些示例帮助你学习相关知识,甚至可作为构建游戏的起点。

Metal 示例代码库

通过 MetalFX Upscaling 功能实现性能提速。使用高性能时间性抗锯齿或空间画质提升功能来提高 3D 场景的性能。与直接渲染图像相比,使用 MetalFX 可以在更短的时间内将低分辨率图像提升为高分辨率图像。

MetalFX

优化内存使用。使用 Instruments 剖析工具让游戏保持较少的内存占用,并提高游戏的帧率。

查找并修复问题。在 Xcode 中运行游戏,以验证你的 Metal 代码并捕捉着色器执行错误。

验证 App 的 Metal 着色器使用情况

修复图形中断或卡顿问题。使用 Instruments 中的“Game Performance”(游戏性能) 模板来分析游戏帧率低的问题,该模板整合了线程和系统调用信息以及 Metal System Trace 工具。

分析 Metal App 的性能

了解提升 Metal 着色器性能的最佳实践

使用 Metal 优化 GPU 渲染器

将游戏移植到 Mac,第 3 部分:使用 Metal 进行渲染

面向 Apple 芯片调节图形密集型游戏

更新 CPU 线程优先级。除了使用 POSIX 线程优先级和调度策略外,还可以使用 Grand Central Dispatch (GCD) 管理线程调度和保持系统快速响应,并使用服务质量 (QoS) 给线程附加语义。

面向 Apple 芯片调节代码的性能

构建适用于 Apple 芯片的代码。使用虚拟内存页面大小、缓存线大小、可变参数函数、同时为可写和可执行的内存等。

在 macOS 代码中解决架构差异

优化 GPU 性能,提高 GPU 效率。编写使用 GPU 功能 (例如图像块、分块着色和光栅顺序组) 的 Metal 代码。

针对 Apple GPU 和基于图块的延迟渲染量身定制 App

借助 Neon 实现性能提速。Neon 指令集提供单指令多数据 (SIMD) 操作,以提示 ARM 处理器的性能速度。在 Apple 平台上使用开源 Neon 资料库 (可在 GitHub 上获得)。

SSE2Neon

AVX2Neon

面向全球发布游戏

了解如何向世界各地的玩家分发游戏,以及 App Store 可以为你提供哪些帮助:

通过 App 内购买项目提供增值内容。

通过各种不同的方式推广游戏。

测试不同版本的产品页面。

使用其他产品页面重点推介特定内容。

使用 Apple 独家提供的分析工具来衡量游戏的表现。

进一步了解