将游戏移植到 Mac,第 1 部分:制定游戏移植计划

2025-11-30 10:57:31

Metal 3 提供了现代高端游戏 所使用的所有高级图形处理功能 和计算功能 包括 MetalFX 快速资源加载 离线编译 网格着色器 以及光线追踪等 这使得图形代码转换过程 变得非常轻松简单 本系列视频的第三期 “用 Metal 技术渲染” 将会讲述 如何将渲染器移植到 Metal 上 并基于 Apple 芯片获得出色的性能 在 Game Porting Toolkit 完成对游戏基本输入功能的评估后 现在可以将游戏移植到 Mac 上 并使用震动反馈等进阶功能了 Window 版游戏要么是 基于跨平台游戏引擎开发 并使用了通用输入插件 或直接用 XInput 和 GameInput 等低阶 Windows API 或使用游戏外设绑定的自定义 SDK 在 Apple 平台上 Game Controller 框架 提供了保障游戏的线程安全 且低延迟的 多种游戏外设的输入支持 包括游戏手柄、键盘、鼠标、 赛车方向盘和街机操纵杆等 开发者还可以使用 游戏控制器的附加功能 包括触感和震动 在 Apple 平台上 从系统层面通过用户偏好设置 为每个 APP 提供输入重映射都支持 包括自动支持 截屏和屏幕录制 以及直接通过游戏控制器 导出 15 秒游戏高光时刻 移植游戏的输入逻辑变得十分简单 如果需要进一步了解相关信息 可以观看之前发布的两期视频 “利用虚拟和物理游戏手柄” 和 “游戏手柄的进展” 你可以查看相关细节和示例代码 出色的音效同样是 提升游戏体验的关键所在 将现有游戏的音频工作流程和功能 移植到 Mac 上非常简单 Apple 设备装载了一流的内置扬声器 可以在输出 响亮而清晰的游戏音效的同时 不会受到冷却风扇噪音的干扰 此外还与许多 出色的有线和无线音响外设 和 Apple 设备兼容 并且支持低延迟空间音频 现有版本的游戏中可能已经使用了 跨平台的音频中间件解决方案 如 Wwise、Unity 和 FMOD 等 这些中间件产品通常抽象了 系统音频 API 及框架 在 Windows 平台上 你可能 会通过中间件来使用底层 API 比如 DirectSound、XAudio2 和 WASAPI 在 Apple 平台上 也有同样的中间件产品 这些产品使用了种类多样的高阶和底层的 Apple 音频框架 包括 Spatial Mixer Audio Unit、 PHASE 和 AVAudioEngine 等 好消息是 所有这些中间件产品 在原生 Apple 芯片 SDK 上 都能得到全方位的支持 这个过程几乎不需要你再做什么 但是 如果现有版本游戏 没有使用中间件 开发者可以直接使用平台提供的 音频框架和 API 就象那些中间件所做的一样 尤其要说的是 如果要在此级别上 实现出色的空间音频效果 请查看 PHASE 文档以及示例代码 演示了如何使用 AUSPatialMixer 通过 12 声道 7.1.4 PCM 数据创建空间音频 可以通过之前关于 CoreAudio AudioUnits 和 PHASE 的讲座学习如何使用这些底层系统框架 哪怕你的游戏并非基于音频中间件 最后 想让游戏玩家获得 身临其境的绝佳游戏体验 Apple 的显示器必不可少 通过 Game Porting Toolkit 开发者可以观察到在转译环境中 游戏的渲染代码与 标准动态范围 (SDR) 和 帧同步 API 的交互运行情况 在 Windows 平台上 为了实现 高动态范围 你可能调用 颜色管理和色调映射 API 例如 AdvancedColorInfo 颜色空间 API 等 也可能会使用 IDXGISwapChain 中 提供的计时和反馈来同步游戏中的 SDR 和 HDR 内容 CAMetalLayer 的扩展动态范围支持 可以保障开发者使用 更高级的显示功能 开发者可以轻松调节 HDR 和 色调映射逻辑 无论是基于浮点或 10 位整数范围 还是基于 HDR10 或 PQ10 着色器 CAMetalDisplayLink API 提供 细粒度控制功能 旨在尽可能地降低 游戏的输入及显示反应时间延迟 如果需要了解如何在 Metal 技术 渲染过程中添加 EDR 支持 请查看以下视频 “探索 iOS上的 EDR” 其中讲解的像素格式和 Metal API 在 macOS 和 iOS 上都可使用 观看视频 “探索使用 EDR 的 HDR 渲染” 则可以很好地了解 如何充分利用 EDR API 和功能 Apple 芯片 Mac 平台 提供了所有将游戏移植到 Mac 上 所需的软件和硬件的功能 同时 在 Game Porting Toolkit 和 Metal Shader Converter 助力下 游戏移植 将变得前所未有地轻松便捷 记得观看第二期视频 “编译着色器” 以及第三期 “使用 Metal 技术渲染” 我已经等不及要在 Mac 上 体验各位开发者制作的游戏了 ♪ ♪