经验:如何有效地开发一款跨平台游戏

2015年11月12日 11:53 0 点赞 0 评论 更新于 2025-11-21 19:22

作为游戏开发者,同时也是 Linux 用户,我们BrutalHack团队在项目中会尽可能支持更多平台。鉴于许多开发者在 Reddit 和 Twitter 上讨论跨平台开发这一主题,我们决定分享所掌握的知识。

“跨平台开发是很昂贵的”

这是游戏开发中的常见误解。我们会详细介绍如何在控制成本的前提下,实现跨平台(台式机、手机和主机)开发。在后半部分,我们还会提供测试建议,并推荐一些性价比高的硬件。

移植很危险

多数开发者先面向一个系统开发游戏,临近完成时才开始“移植”。这种做法会在开发后期引入新要求,软件工程师和项目管理者都清楚,事后提出的要求可能会让整个项目陷入困境。

许多游戏在发布 Linux 版本时就遭遇了这种问题。例如《Gauntlet》《Divinity:Original Sin》和《Contagion》,由于各种原因,它们的 Linux 版本未能完成。尽管这些游戏工作室有多年 Windows 开发经验,但跨平台开发对他们来说仍是全新领域。我们希望帮助开发者避开这些陷阱,开启成功的跨平台开发之旅。

跨平台的心态

开发跨平台游戏时,应选择能交叉编译目标平台的游戏引擎,同时关注以下要点:

  • 纵横比:可能需要将 4:3 的内容适配为 21:9 的比例。
  • 屏幕大小:涵盖智能手机、平板电脑和台式机,屏幕尺寸从 4 英寸到 40 英寸以上不等。通过模拟不同屏幕大小,可以有效应对这两个问题。
  • 音频和视频解码器:不同平台支持的解码器不同。
  • 平台特定的设计功能:不同平台有不同的界面和功能。

台式机

得益于 Valve 的 SteamPlay,在三个常见桌面平台发行游戏变得更为普遍。虽然 Windows 市场份额最大,但 OSX 和 Linux 用户更愿意购买相关平台的游戏,以支持平台发展。

三个平台的输入方法基本相同,但要注意第三方插件和框架的兼容性。此外,还需测试以下重要差异:

  • 文件系统:不同平台的文件系统和路径语法不同。Windows 不区分大小写,主目录为 C:\Users\Dude;OS X 不区分大小写,主目录为 /Users/Dude/;Ubuntu/SteamOS 区分大小写,主目录为 /home/Dude/。
  • 显卡驱动程序:Intel、AMD 和 nVidia 驱动程序在不同平台存在差异。需要尽早测试其功能(如着色器模型版本)和兼容性。
  • 平台管理器整合:确保游戏能有效整合到平台的管理器中。

手机

在手机平台上,需要将特殊输入方法与台式机输入方法结合。手机平台的显示方式最为多样化,存在以下特殊区别:

  • 文件系统:与 Windows Phone 相比,Android 和 iOS 的文件系统区分大小写,且不同平台的文件系统访问权限不同。
  • 着色器支持:Windows Phone 8.1 只支持 shader model 2。
  • 工具兼容性:受欢迎的 Unity “Spine” 工具不支持 Windows Phone,开发者已知该问题但似乎无意解决,因此需要不断检查相关资产的平台兼容性。
  • 编译器选择:在 Unity 中开发 Windows Phone 应用时,推荐使用 Mono 编译器,而非微软的最大兼容性编译器。

主机

免责声明:几乎所有主机开发包相关内容都受保密协议约束,我们只能提供公开信息。

当前主机的硬件与台式机相似,应用生态系统与手机类似。以下是主机平台的区别:

  • 着色语言:Xbox One 支持 HLSL(Direct X 11);PlayStation 4 支持 PlayStation Shader Language(GNM,GNMX);Wii U 的着色语言为 GX2;Unity 的 GLSL 着色器不能交叉编译。
  • 文件系统访问:游戏通常运行在沙盒中,会限制文件系统访问权限。
  • 外围工具:不要忽略特殊的外围工具,如 Wii 控制器。

跨平台游戏测试

设备成本高昂,对于独立开发者来说,起步阶段难以购买所有可行系统。遵循上述建议,初期只需较小的测试环境。

如果开发的不是原生跨平台多人游戏,只需确保游戏能在所有系统上启动。使用 Unity、Java 等跨平台环境时,可以假设交叉编译器/虚拟机能保证游戏在所有支持设备上逻辑一致。随机选择一个系统测试新功能是个好方法,因为游戏逻辑测试对平台要求不高。

发行游戏前,必须在每个目标平台上进行明确测试,任何微小的属性问题都可能导致尴尬局面。

最小的测试环境

我们总部在德国,以下价格基于德国 2015 年 10 月的零售价。假设使用 Unity 5 开发游戏,需要关注所有跨平台问题(如不同的纹理格式),潜在目标平台包括台式机(Windows、OS X、Ubuntu/SteamOS)、手机(iOS、Android、Windows Phone 8.1)和主机(Xbox One、PlayStation 4、Wii U)。

为减少设备购买数量并有效测试游戏,初期测试环境预算建议不超过 200 欧元。

台式机

这些平台较为相似,遵循上述建议,可先使用开发机器进行测试。在 Windows(或 OS X)计算机上安装 Linux,测试区分大小写和不区分大小写的系统。确保游戏能在 Windows(或 OS X)以及 Ubuntu 窗口管理器上(最小化、全屏)正常运行。

这些平台支持键盘/鼠标和控制器输入,建议购买一台 Xbox 360 控制器,它在 Windows 和 Linux 系统上具有 “plug’n play” 兼容性,在 Mac 上需要安装驱动程序。

  • 推荐的“初始”桌面设置(30 欧元)
  • 开发计算机(低分辨率图像运行也可)
  • Xbox 360 控制器(30 欧元,全新)

手机

尽管手机设备的触屏外围装置和传感器相同,但 iOS、Android 和 Windows Phone 的操作系统差异较大,文件系统访问也不同,因此发行游戏前需测试所有文件操作。

建议购买配备高通四核 CPU 和 1GB 内存的最便宜触屏设备。

  • 推荐的“初始”手机设置(70 至 150 欧元)
  • Windows Phone:微软 Lumia 532(70 欧元,全新)
  • 可选:最便宜的 Android 平板电脑 Amazon Fire(75 欧元)

主机

开发主机游戏时,要协调好计算机和控制器(Xbox 360 控制器适用于 Windows 和 Ubuntu/SteamOS)。

主机开发包价格是常见话题,索尼和任天堂对 PlayStation 4 开发包价格保密,微软表示若认可游戏理念,可免费提供 Xbox One 开发包。建议先使用免费的 Xbox One 开发包,再考虑其他开发包。

主机制造商要求签订保密协议合同,需仔细阅读,合同可能包含开发包使用时间和游戏发行等重要信息。

完成测试环境

面向所有平台发行游戏前,需在真实硬件上进行测试。以下设置约需 2350 欧元,包括苹果的 OS X 和 iOS。若想节省成本,可暂时借用朋友的系统。

推荐的“完整的”桌面硬件(1630 欧元左右)

  • 带有集成 GPU 和双系统(Windows 10 和 Ubuntu 14.04)的 AMD A10 CPU(400 欧元左右,全新)
  • 带有 Intel CPU + 集成 GPU + 专用 nVidia GPU 和双系统(Windows 10 和 Ubuntu 14.04)的计算机(500 欧元左右,全新)
  • 若预算充足,可购买带有 nVidia GPU 的 MAC(eBay 上约 1500 欧元)或带有 AMD GPU 的 Mac(全新 2000 欧元)
  • 需注意,“Hackintoshes” 是非法的,在此不做讨论。
  • Xbox 360 控制器(约 30 欧元,全新)
  • PC 的两个 Windows 10 授权(约 200 欧元) 由于 Windows 7 和 Windows 8.1 仍有一定市场份额,要确保游戏能在这些早期操作系统上启动和运行。

推荐的“完整的”手机硬件(695 欧元左右)

  • Windows Phone:微软 Lumia 532(70 欧元,全新)
  • Android:Motorola Moto G 第一代(150 欧元,全新)
  • Windows:可购买驱动更好的 Nexus 5(约 320 欧元)
  • 最便宜的 Android 平板电脑 Amazon Fire(75 欧元)
  • iOS:iPad mini 4(约 400 欧元)

购买 Lumia 532、Moto G、Kindle Fire 和 iPad mini 4 可以测试最重要的纵横比和屏幕大小,覆盖所有主要手机操作系统。需注意,大多数 iOS 配置工作流程需要一台 Mac。

结论

最初开发跨平台软件和游戏时,我们惊喜地发现跨平台代码库的诸多优势,因为它无需对底层操作系统做过多假设。借助 Unity 5 等现代引擎,跨平台开发变得更加简单。

作者信息

洞悉

洞悉

共发布了 3994 篇文章