开发人员将游戏引入Linux时可能需要考虑的一些事项

来自Linux游戏的Liam:

我最近在Twitter上提出了一个问题 ,我要求开发人员加入一些有关将游戏引入Linux时要了解的基本知识的想法。 让我们来看看一些答案!

在本文中,我将介绍一些有用的答案,对发送该消息的人给予充分的感谢,并提供指向他们发送给我们的推文的链接。 然后,我将针对每个问题发表自己的想法,并提供任何相关的帮助链接。 我们可能会指出数百件事,但是我认为这是一些需要记住的更常见和重要的问题。

一些答案让我发笑,让我们从关于Arch Linux的一个古老的笑话开始( 源代码 ):

如果您完全无法使用并且几乎无法重现的怪异错误,请检查它们是否正在运行Arch Linux…

我很喜欢这里和那里的分布,但这确实是真的。 在所有发行版中,Arch确实是最成问题的。 并不是说Arch不好,而是处于领先地位(它比大多数其他发行版更快地更新软件)明显增加了可能出现的问题数量,因为它花在解决问题上的时间更少了。

在Ubuntu上进行测试,如果可以,也可以在SteamOS上进行测试。 如果在其他发行版上不起作用,则他们可能会有变通办法,因为他们可能会做一些不同的事情。 不要觉得需要测试每个发行版,这是不可能的,只是不需要,不要想太多 。 也不要害怕将支持范围限制在主要的较大发行版上。 某些人可能不喜欢这个主意,但是在大多数情况下,这太多了却徒劳无功。 支持大型发行版,其余部分则省去(至少直到您对Linux更加熟悉为止)。

David Gow的其中之一( 来源 ):

QuoteUse SDL2 或使用本身使用SDL的东西。 在任何情况下均不得直接编写X11代码。

不一定需要是SDL2 ,还有SFML ,可能还有其他。 关键是,这样的项目可以使您的生活更加轻松。 您可能希望将所有内容都保持较小,但是这些项目之所以大是有原因的,因为它们涵盖了您可能根本没有想到的大量边缘情况和烦扰。

Valve,Feral Interactive,Humble Indie Bundle和许多其他产品将SDL2用于Linux端口是有原因的。 哎呀,甚至Unity游戏引擎也移到了在Unity 5.6中使用SDL2的地步。

下一个来自于id Software的Timothee Bessett( 来源 ):

QuotePlayers希望您的Linux版本成功。 让他们参与进来,例如让他们为您测试东西。

我认为这是任何开发人员都要记住的重要点。 Linux用户希望您的游戏表现出色,我们经常会帮助您免费测试,因为我们希望提供帮助。 每当我看到开发人员呼吁Linux测试人员时,他们最终就会被大量愿意提供空闲时间来提供帮助的人所淹没。 向少数选定的人开放私人Beta版也总是一种选择,有很多方法可以让用户尽早参与。

但是,这不能代替您自己的测试! Linux可以永久免费下载和使用,可以单独安装,也可以在Windows和Mac上安装。 如果只想看一下,也可以将其安装在虚拟机中。

这个小窍门来自我们的德国朋友Holarse Linux-Gaming( 来源 ):

对于文件和保存游戏,存在XDG(例如Windows上的%approot%

我特别希望开发人员知道这一点。 请,出于对我的理智的热爱,请不要在我的主目录中放一个简单的“游戏名称”文件夹。 如果您想知道在哪里存储配置文件和保存的游戏,可以在此处找到更多信息。

例如,Unity游戏通常位于/home/user/.config/unity3d中。 注意“ config”之前的点,它是一个隐藏目录,因此它不会污染用户的主目录,也不会用随机文件夹将其填充到边缘。

Holarse Linux-Gaming的另一个( 来源 ):

QuoteYes linux文件系统区分大小写

您可能知道这意味着什么,但是如果您不知道的话:在Linux上,“ This”与“ THIS”并不相同。 在游戏中发生的崩溃绝对困扰着您? 检查您是否在寻找正确的文件名。 这个问题使我亲自与之交谈的许多开发人员绊倒了。

让我们与另一位来自Feral Interactive开发人员( 来源 )的有趣的事物进行分解:

QuoteSomeone将在他们的工作渲染场上玩您的游戏,并报告错误[..]如果我说这只发生过一次,我会撒谎。 128核!? 1TB RAM !?

如果我说这没有让我笑很多,我会撒谎。 您认为从Windows获得的一些错误报告足够奇怪吗? 做好准备。

这位Feral Interactive开发人员还提出了可能的最重要的观点之一( 来源 ):

随时随地使用交叉兼容工具,当您尝试移植时,任何东西都可能变成拐杖

我们见过开发人员宣布发布Linux端口的次数,无论是在Steam的旧Greenlight平台,Kickstarter还是其他平台上发布,直到后来宣布他们不能使用它,因为他们使用的仅是Windows的东西相当惊人。 尽早检查并经常检查工具,中间件和其他工具是否可以在Linux上正常工作。 不要陷入专业尴尬的境地,在此您不必大意打开平台支持。

寻求帮助并不令人尴尬,也不应该被视为任何弱点,如果您提出寻求替代产品或在Linux上工作的帮助电话,您可能会惊讶地发现能够经常提供帮助的人们。 我已经看到数百名开发人员在Twitter,Reddit和其他站点上闲聊,提供有关Linux问题的帮助和建议。

来自Feral开发人员的另一个( 来源 ):

引用外壳,越快越好。 您要在发布前2个小时做的最后一件事是在学习bash时摸索

我见过很多开发人员在不了解Linux的情况下进行构建的时间:如果您不了解该平台的第一件事,您希望如何修复其中的错误? 进行一些早期的研究和测试将大有帮助。 起初,该终端似乎有些吓人,但对于那些甚至不认为自己很聪明的人来说,那就干吧! 学习它,您可能会找到一个新朋友。 还害怕吗? 该站点可能会帮助您了解Linux命令行的基础知识。

如果您打算在Steam之外发布游戏,并且想要使用方便的安装程序,请查看MojoSetup 。 GOG,著名的游戏商店实际上在Linux发行版中使用了它。

我还想提出一个重要的观点:不要指望Linux的销售能使您变得富有。 这是一个较小的平台。 将游戏带到Linux上不仅仅意味着要从其他平台上获得销售,您还应该记住,我们所有人都可能会认识Windows和Mac上的人,最终我们会推荐该游戏,尤其是当它具有任何形式的多人游戏时。 通过各种Linux网站的额外广告和额外的口碑可能会很有用。

如果您想知道是否需要制作游戏的32位版本,以我的诚实观点,您就不必费心了。 仅64位就可以了,特别是因为我们的统计数据告诉我们,在1921年回答分配问题的人中,只有1位使用32位分配。

另外,请不要让大声和白痴的用户为之振奋。 所有社区都会有巨魔和仇恨者,请忽略任何发现的内容。

如果您试图移植到Linux而被卡住,请不要担心! 喘口气,过来聊天。 我们有一个论坛 ,我们的电子邮件收件箱始终处于打开状态,我们有一个IRC频道, Discord等。

最后,如果您正在考虑将游戏引入Linux –谢谢,迫不及待想尝试一下!

请分享您评论中的其他任何一般性提示。

https://www.gamingonlinux.com/articles/some-things-developers-might-want-to-think-about-when-bringing-a-game-to-linux.9907