跨平台:与为 Linux 构建游戏的开发者对话
Linux 游戏正以前所未有的速度蓬勃发展。这场革命得益于跨平台开发工具、充满热情的程序员和社区支持。
在过去的五年里,为 Linux 发布的主流游戏数量急剧增加,现在有数千款游戏可供选择。这些游戏包括像《文明 VI》和《杀出重围:人类分裂》这样的 AAA 级大作,以及像《夜勤人》这样的突破性独立热门游戏。
为了这篇文章,我采访了不同的开发者和发行商,以了解 Linux 游戏市场的格局,并找出驱动其惊人增长的因素。

图 1. 多次获奖的喜剧冒险游戏《夜勤人》是许多同时在 Linux、macOS 和 Windows 上发布的游戏之一,这要归功于可以为所有三个平台构建的开发工具。
为什么要为 Linux 开发游戏?随着跨平台开发工具的引入,对 Linux 的支持蓬勃发展,这些工具使得在多个操作系统上发布游戏变得相对容易。也许更重要的是,几乎所有我采访过的开发者都个人支持开源运动,即使他们的游戏是专有的。
对于 Zack Johnson,asymmetric 旗下火柴人喜剧 RPG 游戏《荒野西部:放 গো》的创意总监来说,这款游戏起源于流行的浏览器游戏《Kingdom of Loathing》,这对游戏的开发起到了重要作用。
他说:“最初《Kingdom of Loathing》的一批玩家强烈要求我们[发布 Linux 版本]。” “我们知道在开发过程中能够从他们那里获得信息和支持,所以这似乎是一件值得做的事情。”
他制作在线游戏的经验也帮助他做出了这个决定:“我的第一个游戏项目是基于 LAMP 堆栈构建的,所以如果没有开源软件,我就不会有今天的职业生涯。总的来说,开源软件对于互联网的基础支撑的重要性怎么强调都不过分。”

图 2. Portalarium 旗下《神佑之城》在线世界新不列颠自早期 Alpha 测试版发布以来,Linux 用户就可以访问。
在 Portalarium,理查德 “Lord British” 加里奥特最新奇幻 RPG 史诗巨作《神佑之城》背后的公司,技术总监 Chris Spears 表示,支持 Linux 的动力来自内部。
像大多数游戏开发工作室一样,办公室里有很多 Linux 拥护者。当我们最终选择了一个支持 Linux 的引擎时,支持 Linux 似乎是理所当然的。
此外,虽然 Linux 游戏受众的市场相对较小,但他们充满热情,通常是更硬核的玩家,这与我们希望在受众中看到的完全一致!我们的游戏有点像“思考型玩家”的游戏,这与 Linux 用户群体非常契合,并且比大多数其他游戏更能吸引他们。
Finji 2017 年的独立热门游戏《夜勤人》——一款以衰败的工业小镇为背景,由一只名叫 Mae Borowski 的动画猫主演的成长喜剧——是用 Unity 游戏引擎构建的。其复杂叙事系统和分支对话选择的核心是 The Secret Lab's Yarn Spinner,以 MIT 许可证发布。
程序员 Jon Manning 说:“开源是使 Yarn Spinner,即《夜勤人》内部的叙事引擎,变得像游戏发布所需的那样功能丰富的原因。我们是开源的忠实粉丝,我们很乐意看到更多人为游戏、游戏引擎和工具做出贡献,以帮助游戏开发者构建他们的愿景。”

图 3. Yarn Spinner 作为 Unity 插件提供,允许开发者创建和跟踪复杂的叙事选择。
Weather Factory 旗下克苏鲁神话神秘卡牌游戏《密教模拟器》背后的工作室的 Lottie Bevan 高度评价了 Linux 粉丝。
是什么让这一切成为可能?当我们还在 [团队之前的雇主] Failbetter 时,Linux 社区给我们留下了深刻的印象——他们是我们最小的平台受众,但他们是迄今为止最乐于助人且技术意识最强的。Linux 用户似乎明白,由于他们人数很少,支持 Linux 并不是必要的商业决策,因此如果您这样做,他们会非常感激和乐于助人!
我采访过的许多开发者都强调了跨平台开发工具的重要性,尤其是 Unity 游戏引擎。以下是 Portalarium 的 Chris Spears 谈论他们决定使用 Unity 的原因。
我们选择了 Unity 3D 作为我们的引擎,它对 Linux 有原生支持。虽然这不像勾选一个“支持 Linux”的复选框那么简单,但它比构建我们自己的引擎来支持多个平台要容易几个数量级。作为一家游戏公司,我们的大多数技术人员已经精通 Linux,而且我们超过三分之一的工程师将 Linux 作为他们的主要开发操作系统运行。
Weather Factory 的 Lottie Bevan 同意:“Unity 解决了我们原本需要处理的大约 95% 的问题,这对于一个两人微型工作室来说是无价的!”
asymmetric 旗下《荒野西部:放 গো》团队成员也是这款游戏引擎的粉丝,该引擎自 2011 年以来一直支持 Linux 作为目标平台,并且自 2015 年以来一直提供 Linux 版本的开发环境。
“我们使用 Unity 引擎构建了《荒野西部:放 গো》,所以从一开始,我们就获得了对所有关键技术的支持,”程序员 Victor Thompson 说。“我对 Linux 没有任何特别的了解!我在很久以前使用过几个不同的发行版,但那严格来说是为了维护个人邮件和 Web 服务器。”
虽然许多核心工具和库都是跨平台的,但游戏的开发策略最好从一开始就考虑到 Linux 支持进行设计。
当 Lizard Cube 开发其精美的手绘重制版 Westone Bit Entertainment 经典平台游戏《神奇小子:龙之陷阱》时,总监 Omar Cornut 说。
我们使所有数据格式都具有可移植性。即使这意味着,例如,使用免费软件,例如便携式视频播放器,从运行时角度来看,它的优化非常差。但是,不维护不同的导出和专有播放器的简易性确实是值得的。而且我们使所有工具都具有可移植性。
我大量使用了我的免费软件库 Dear ImGui,它使我们能够制作一个可移植的工具 UI。事实上,游戏渲染本身也是通过 Dear ImGui 管道传输的。这个工具甚至可以在游戏机上运行——游戏机不是 POSIX 系统,也不受传统 UI 工具包的支持。

图 4. 当 Lizard Cube 的开发者创建《神奇小子:龙之陷阱》的重制版时,他们从一开始就使用跨平台系统。
Kitsune Games 的 Roguelike 游戏《MidBoss》同样从早期就支持 Linux。在《MidBoss》中,一个卑微的小妖精附身于其他怪物以获得它们的力量。“在开发过程中,我们收到了很多关于 Linux 版本的请求,”工作室创始人 Emma 'Eniko' Maassen-Yarrow 说。她补充说,“这款游戏也是基于 Ethan Lee 的 FNA 库构建的,在一些活动中与他交谈后,我们得到的印象是,Linux 游戏社区对移植到 Linux 的开发者非常好,所以我们想奖励他们。”
像许多开发者一样,她在需要时购买了专家协助:“FNA 库 [Microsoft XNA Game Studio 4.0 Refresh 库的开源重新实现] 使整个过程变得非常轻松。我们还聘请了 Ethan 来帮助我们进行移植,如果您正在开发 XNA/FNA 游戏,我强烈推荐这样做。事实上,我们非常喜欢它,以至于我们一直在移植我们新的自定义游戏制作框架以使用 FNA!”

图 5. Kitsune Games 的 Roguelike 游戏《MidBoss》依赖于 Microsoft XNA Game Studio 库的开源重新实现,将其带到 Linux 平台。
移植专家 Feral Interactive 强调图形技术的进步尤为重要。Feral 公关经理 Mary Musgrave 说。
有哪些挑战?近年来,Vulkan 取得了巨大的进步,使我们能够实现 OpenGL 无法实现的性能改进。
在流程方面,我们很大程度上建立在我们自己的工作基础上。在内部,我们有一套跨游戏(有时跨平台)使用的统一库,这意味着没有哪个移植是完全独立的。多年来,我们积累了强大的核心知识,这意味着我们的团队可以从早期项目中获得的经验中受益。
在外部,我们对开源项目以及更广泛的 Linux 生态系统的贡献产生了长期的益处。例如,到目前为止,Feral 开发者已向 Mesa 驱动程序提交了 50 多个提交,并且我们还修复了 Khronos 的 Vulkan 层中的问题。
即使使用可以像发布到 Windows 一样轻松发布到 Linux 的工具,仍然存在与支持整个额外操作系统相关的开销。
asymmetric 的 Victor Thompson 说。
主要的挑战是支持(如实际测试)足够多种类的 Linux 发行版。作为最直接负责测试这方面的人,我不得不创造性地使用各种 USB 安装和测试发行版。
我们确实遇到了一些小问题,这两个问题都是用户发现的错误。在这些情况下,报告错误的用户在找出问题所在方面提供了很大帮助。我记得有一个案例是由于没有为游戏设置适当的语言环境(这很重要,因为我们从文件中读取文本,并且看起来像“1.000”的数字根据语言环境设置意味着不同的含义)。
我还(重新)发现了替代窗口管理器的乐趣,其中一些管理器会改变我们的游戏与图形驱动程序的交互方式。我们不得不紧急添加一个图形选项,供遇到此问题的用户使用,但我仍然不知道 Unity 游戏可以做些什么来自动绕过它们。

图 6. 质量保证测试被证明是确保 asymmetric 旗下《荒野西部:放 গো》中 Linux 支持正常运行的关键问题。
质量保证是一个反复出现的问题。在 Portalarium, 《神佑之城》开发团队已自动执行 Windows、macOS 和 Linux 的构建,但“由于图形库和着色器的差异,偶尔会出现一些小问题,但我们不必专门为 Linux 平台解决太多问题。支持 Linux 最繁重的工作量可能落在了我们小型的 QA 团队身上,因为他们必须在每个平台上测试游戏的所有新版本。”
Wube Software,制造、物流和资源管理游戏 《异星工厂》 的制作商,由于游戏自动化工厂和流程的确定性,在跨平台实施方面遇到了一些具体困难。首席技术官 Michal 'Kovarex' Kovarik 表示,该团队发现在不同的平台上。
一些编译器以不同的方式实现某些函数,导致计算结果随时间变化。
事实证明,在 C++ 中,基本的三角函数(sin、cos、asin、atan 等)不能保证在不同的平台上给出相同的结果。我们这里不是在谈论精度,而是在于获得相同(尽管可能不精确)的结果。
这意味着跨平台多人游戏将无法正常运行。最终,Kovarex 编写了这些函数的自定义实现,以确保所有用户获得一致的游戏体验。
移植内部并行开发的替代方案是引入移植专家。Linux 游戏最著名的两个移植工作室是 Feral Interactive 和 Aspyr Media,两者最初都是 Mac 移植公司,后来随着他们的客户开发者开始对 Linux 平台产生兴趣,才开始推出 Linux 游戏。
沟通总监 Jonathan Miller 说。
在 Aspyr,我们是 Linux 的拥护者。在过去的一年中,我们在 Linux 上发布了《观察者》和《InnerSpace》,《Next Up Hero》计划于今年晚些时候发布。此外,我们还为《文明 VI》发布了六个 DLC 包和“迭起兴衰”扩展包。随着 SteamOS 以及智能电视的普及,我们看到了该平台的光明未来。简而言之,我们热爱我们的 Linux 支持者,并将始终努力将我们的每款游戏都带到 Linux 平台,如果可能的话。
Feral Interactive 从 2014 年开始推出 Linux 转换游戏,第一款是《幽浮:未知敌人》。自那时以来,该公司最受欢迎的 Linux 移植游戏包括《幽浮 2》、《古墓丽影:崛起》、《奇异人生》和《杀出重围:人类分裂》。
由于与许多不同的原始开发者合作,Feral 处理的游戏引擎范围更广,使用的工具种类也比我们采访过的大多数工作室都多,移植的游戏最初是用 Glacier Engine、Crystal Dynamics 的 Foundation Engine 和 Unreal Engine 开发的。

图 7. 少量但数量不断增长的 AAA 级游戏由 Feral Interactive 等转换专家移植到 Linux 平台。
Feral 的公关经理 Mary Musgrave 说:“我们认为 Linux 是一个服务不足的受众,而且由于我们在基于 Unix 的移植方面拥有经验,我们认为这应该是我们已经做的事情的自然延伸。”
Linux 游戏玩家有时会感到沮丧,即使是已经移植到 macOS 的游戏通常也不会移植到 Linux。虽然现代开发工具和游戏引擎可以使这项工作更容易,但仍然有很多工作要做。
Feral 团队向我们介绍了移植到 Linux 的关键因素,并解释了这些关键差异的来源。
- 编译器:“我们使用 GCC(GNU 编译器集合)编译 Linux 游戏,它的行为方式与我们在 macOS 上使用的 Clang 编译器不同。”
- 驱动程序:“Linux 使用与 macOS 完全不同的驱动程序集。在开源驱动程序的情况下,Feral 开发者经常为我们的游戏需要的修复做出贡献。”
- 图形 API:“在过去的几年里,Metal 和 Vulkan 的出现意味着我们的 macOS 和 Linux 游戏现在使用不同的图形 API。在此之前,它们都使用 OpenGL,尽管每个平台都需要单独的优化过程。”
- 硬件和软件测试:“当我们发布游戏时,我们会在一系列广泛的硬件和软件配置上彻底测试它,以确定该游戏可以正式支持哪些配置。macOS 和 Linux 硬件和软件之间的重叠很少,而且 Linux 用户拥有的硬件和软件自然存在更多变化。”
Feral 还开发和发布了开源工具,不仅为了方便自己,也为了方便一般的 Linux 游戏开发者。最近的一个例子是 GameMode(现在可在 GitHub 上获得),“这是一个开源工具,允许游戏请求将一组提高性能的优化临时应用于主机操作系统。以前,我们的一些游戏需要用户使用 sudo 特权命令手动交换 CPU 调速器,但 GameMode 使此操作自动化,并确保 CPU 在他们完成游戏后恢复到更高效的状态。”
市场状况主流 Linux 游戏领域最大的转变之一发生在 2012 年底,当时 Valve 为 Ubuntu 推出了 Steam beta 客户端,以及其非常成功的僵尸射击游戏《求生之路 2》。
自那时以来,该公司一直是 Linux 硬件和软件开发的坚定支持者。尽管 Valve 的 SteamOS 游戏发行版收到的反响有些平淡,但该公司继续支持它,以及包括 Linux 版 SteamVR、Steam 控制器内核驱动程序和 Linux 版 Source 游戏引擎在内的其他项目。
Steam 上所有游戏中小于 20% 的游戏——总共约 5,000 款游戏——可以在 Linux 上运行,它仍然是主要游戏发行商最大的发布平台。
与此同时,复古爱好者、无 DRM 的 GOG.com——CD Projekt(《巫师》游戏开发者)的子公司——运营着一个更精选的数字商店,总共提供不到 2,500 款游戏。自 2014 年 8 月 19 日推出 Linux 支持,提供 50 款游戏以来,GOG.com 上有 851 款游戏——超过 35%——现在拥有原生 Linux 安装程序。
独立游戏宠儿 itch.io 自 2013 年 3 月 3 日首次推出以来就支持 Linux 游戏,第一个可下载的 Linux 游戏《Sophie Houlden's Rose and Time》于当月晚些时候登陆该平台。
itch.io 创始人 Leaf Corcoran 表示,Linux 游戏和开源软件对他个人来说非常重要。
多年前我切换到了 Linux。我将它用作我的日常驱动程序并开发 itch.io。我很高兴看到为了玩游戏而回到 Windows 的理由每天都在减少。itch.io 推出第一天就支持 Linux 平台。我们在推出新产品(例如我们的桌面应用程序和我们的上传/修补工具)时,会继续优先考虑它。
作为一个发行平台,itch.io 是许多可以在 Web 浏览器中玩的游戏的家园。现在有超过 38,000 款这样的游戏——约占 itch.io 总量的 35%——所有这些游戏都可以在 Linux 浏览器上运行。还有 15,000 款可下载的 Linux 游戏,占 itch.io 所有游戏的另外 13.8%。这使其成为数量上最大的 Linux 发行平台,其上的游戏范围从艺术实验和游戏 jam 作品到更知名的游戏,例如《心跳文学俱乐部!》、《夜勤人》和《Everything》。
到底有多少人在 Linux 上玩游戏?Lizard Cube 的 Omar Cornut 表示,《龙之陷阱》的 Linux 玩家数量“非常少,不幸的是。上次我看的时候,Linux 约占我们 Windows 销量的 1.5%。我认为如果我们将 Linux 和 OS X 的销量加起来,我们刚刚弥补了那里的外部成本,所以这还不错!”
但是,他认为同时发布可能提高了 Linux 专用销售额。“我们犯了一个错误,由于时间问题,我们没有同时发布所有平台,所以我认为这无助于 Linux 和 Mac 的销量。”

图 8. 《密教模拟器》通过虚拟卡牌游戏媒介讲述故事。
整个行业的数字都差不多。《密教模拟器》当前玩家群中只有 2% 的人使用 Linux。对于《荒野西部:放 গো》(至少在 Steam 上)而言,这一比例略高于 1%。《MidBoss》的玩家中略高于 2% 的人在 Linux 上,而 Wube Software 报告称,《异星工厂》玩家中有 1% 到 2% 的人使用开源操作系统。
对于《夜勤人》,Finji 总监 Adam Saltsman 表示,Linux 仅占该游戏在所有平台(包括游戏机和计算机)上的总用户的 0.4%。
虽然 Portalarium 的《神佑之城》既有在线模式也有离线模式,但它最广泛的玩法是在线多人游戏,Chris Spears 表示其 Linux 玩家尤其投入:“目前只有约 2% 的玩家在 Linux 上玩游戏,但他们平均每位玩家的游戏时间更长。我们看到这种情况随着时间的推移略有增长,并且我们有一些玩家在多个平台上玩游戏。”
Linux 用户仅占这些游戏总玩家的一小部分百分比,但大多数开发者的数字仍然比 Steam 2018 年 4 月硬件和软件调查中报告的 0.55% Linux 市场份额有了显著提高。数字各不相同,但当一家公司不遗余力地为操作系统发布主流游戏时,他们可以期望约 2% 的客户在 Linux 上玩游戏。

图 9. 在对独立游戏友好的 itch.io 上,Linux 下载量约占总下载量的 12%。
在 itch.io 的独立游戏导向发行平台上,数字变得更加乐观,Linux 下载量约占总下载量的 12%,与 macOS 并列。itch.io 创始人 Leaf Corcoran 表示,Linux 用户平均每款游戏的下载量也高于使用 Mac 的用户。
下一步是什么?如果您热衷于开始为 Linux 开发游戏,那么现在是最好的时机,工具范围从适合初学者的文字游戏制作工具 Twine 到完全成熟的集成开发环境,例如 Unity 和 Unreal Engine。两者都支持大量的第三方资源和插件,以帮助您制作从点击式冒险游戏到现代第一人称射击游戏的任何游戏。

图 10. Unity 游戏引擎是我采访过的大多数 Linux 游戏程序员的首选开发工具。
虽然利润微薄,但许多开发者真诚地感谢其 Linux 用户玩家的热情,并且如果经济上可行,他们愿意支持该操作系统,即使它没有带来巨额利润。
如果 Linux 用户想要玩更多游戏,重要的是将它们添加到您的愿望清单中——这会影响预发布游戏在 Steam 上的可见性——并购买它们。具体而言,从您的 Linux 系统购买它们,因为许多发行平台会记录您购买时使用的操作系统。
帮助开发者提供错误报告和合理的特性请求。如果您喜欢一款 Linux 游戏,请为其留下正面评价。评价可以对游戏在在线商店中的可见性和评分产生实际影响,并给那些努力支持仍然是少数游戏操作系统的开发者带来温暖。
侧边栏:Steam 最受欢迎的 Linux 游戏Steam250 汇总了游戏在 Steam 上收到的好评数量,以揭示哪些游戏最受玩家好评(来源:https://steam250.com/linux250)。
- 传送门 2
- 泰拉瑞亚
- 反恐精英
- 求生之路 2
- 异星工厂
- 欧洲卡车模拟 2
- 星露谷物语
- 以撒的结合:重生
- 传送门
- 骑马与砍杀:战团 资源