Solus Linux Creator Ikey Doherty 凭借新的开源游戏引擎进入游戏开发业务

艾基·多尔蒂, 的创造者和前首席开发者 仅有的,带着一个新项目回来了。 他的新公司, Lispy Snake, Ltd, 使用开源技术创建游戏,重点是 Linux 支持。

我问了 Ikey 一些关于他的新项目的问题。 这是他的答案。

是 FOSS:是什么让你决定进入游戏开发?

爱键: 老实说,我不得不说对老游戏的尊重。 坦率地说,来自如此多限制的创造力是惊人的。 如果你想想 NES 或 C64 有多么有限,(或者确实是我的 Amstrad CPC)——然而人们从这些平台上体验到了多少快乐。 这是我无法避免的嗡嗡声。 尽管我们现在距离那个世界还有很长的路要走,但我仍然希望尽我所能模仿这种卓越的技术和创造力。 我喜欢讲好故事。

它是 FOSS:已经有几个开源游戏引擎。 你为什么决定自己做? Serpent的杀手锏是什么?

爱键: 有很多开源和闭源的,每个都有很多功能。 但是,我是一个相当老派的开发人员,我最讨厌的就是 IDE 或“拖放”无代码环境。 我只是想尽可能少地大惊小怪地创建独立游戏,并使用我不必妥协的框架。 一旦你达到“必须在 Linux 上很好地工作并且是开源的”,你就有点缺乏选择了。

我收集了一组项目,我将它们用作 Lispy Snake 的第一款游戏的基础,但需要某种框架来将它们联系在一起,作为所有游戏和更新的可重用代码库。

我不会说现在还存在杀手级功能——只是一组明智的决定。 Serpent 是用 D 语言编写的,因此它具有比 C 或 C++ 更低的入门门槛的高性能。 它使我能够充实一个适合我的开发理想并关注行业需求的框架,例如高性能多线程实体组件系统或精灵批处理系统。

当您将所有功能和决策结合在一起时,您将获得一个可移植的代码库,这要归功于它选择了 SDL 和 bgfx 等库,最终将在所有主要平台上运行,而我们只需付出最小的努力。 这基本上意味着我们将“免费”获得 OpenGL、DirectX、Vulkan 和 Metal。

能够以最新的 API 为目标并轻松创建独立游戏,行业标准功能不断涌现,来自一个不会强加于您的工作流程的框架……这是一个非常好的组合。

是 FOSS:你为什么把你的公司命名为 LispySnake? 你小时候养过一条有语言障碍的宠物蛇吗?

爱键: 诚实地? 顽皮狗 被拿走。 一定要喜欢一些 Bandicoot。 另外,最初我们正在从事一些 Python 承包工作,我觉得这个名字很有趣。 就像我以前的许多项目一样,这几乎是一个荒谬的名字(如 Dave。或 Dave2。)

是 FOSS:作为多年的操作系统开发人员,在做一些更小的事情感觉如何? 你会说你作为操作系统开发人员的时间给了你作为游戏开发人员的优势吗?

爱键: 操作系统开发者需要一个非常高级的视图,并且能够从宏观到微观的上下文切换,然后再返回。 大型生态系统中的许多移动部件。

Serpent 更加以任务为导向——尽管在定义宏观系统和交错微观特征以构建一个有凝聚力的整体方面存在相似之处。 我在 OS 开发方面的背景显然是一个巨大的帮助。

它特别闪耀的地方是处理“胆量”。 我认为很多独立开发者(请原谅我的扫荡)通常很乐意从现有的工具包中构建并接受它或解决问题。 那里有一些真正的宝石,比如异星工厂,它们超越了我,我必须对它们敬而远之。

在构建新工具包方面,我们可以正确地考虑缓存一致性、并行性能、内存碎片、上下文切换等。

Serpent 的消费者(当以更稳定的形式发布时)会知道该框架旨在利用 Linux 功能,而不仅仅是为其构建构建。

这是 FOSS:最近你移植了你的 游戏引擎从 C 到 D语言. 你为什么做出这个举动? D比C有什么特点?

爱键: 是的,老实说,这是一个有趣的举动。 我们最初正在开发一个名为 lispysnake2d 的项目,它是一个简单的 SDL 包装器,为我们提供一个微型游戏库。 这只是使用 SDL_Renderer API 来 blit 2D sprites,最初似乎足够了。 不幸的是,随着开发的进展,很明显我们需要一个用于 2D 的 3D 管道,因此我们可以利用着色器和特殊效果。 到那时,SDL_Renderer 不再对您有好处,您需要使用 Vulkan 或 OpenGL。 我们开始抽象管道,然后看到了疯狂。

退后一步,我分析了该方法的所有缺点,厌倦了肯定会出现的可移植性问题。 我不是在谈论库,而是在谈论处理各种文件路径、编码、Win32 API、DirectX vs OpenGL vs Vulkan 等。 然后在样板时间、C 字符串的缺点以及避免链接到臃肿的“跨平台”标准库样式库所需的大量重新设计。 这是一张糟糕的照片。

做了很多 在开发过程中,我开始研究 C 的替代品,这些替代品具有并发意识、字符串健全并包含强大的跨平台标准库。 这是每个人都会自动告诉你使用 Rust 的部分。

不幸的是,我太笨了,无法使用 因为语法确实冒犯了我的眼睛。 我不明白,我永远不会。 Rust 是一门很棒的语言,随着学术努力的进行,它非常成功。 不幸的是,我太实际了,在 C 风格的语言中寻求安慰,在那个世界里生活了太久。 因此,D 是勾选所有方框的最佳候选者,同时具有 C 和 C++ 互操作性。

我们花了一些时间来恢复功能奇偶性,但现在我们有了一个并发友好的框架,它通过 OpenGL 和 Vulkan 进行了测试,支持 sprite 批处理并且有很好的 API。 此外,由于我们利用了 SDL、bgfx 和 DLang 标准库的所有功能,因此大部分重新发明都消失了。 赢赢。

这是 FOSS:你打算如何发行你的游戏?

爱键: 演示方面,我们最初只关注 Linux,看起来我们将为此使用 Flatpak。 随着时间的推移,当我们推出对 macOS + Windows 的支持和测试时,我们可能会关注 Steam 商店。 尽管具有闭源性质,但多年来 Valve 对 Linux 的支持和支持要友好得多,而 Epic Games 等公司长期以来一直高度反对 Linux。 所以这是不行的。

It’s FOSS:人们如何支持 Serpent 游戏引擎的开发并做出贡献?

爱键: 我们有几种不同的方法,值得。 最简单的就是 购买终身许可证 – 这是 20 美元。 这使您可以终生访问我们所有的 2D 游戏,并有助于为我们的游戏和 Serpent 的开发提供资金。

或者,您可以 直接在 GitHub 上赞助我 在需要的地方在 Serpent 和上游工作。 有点 FOSS 的爱。

我要感谢 Ikey 花时间回答我关于他最新项目的问题。

你们中有人用开源工具创建过游戏吗? 如果是这样,什么工具以及体验如何? 请在下面的评论中告诉我们。

如果您觉得这篇文章很有趣,请花一点时间在社交媒体、黑客新闻或 红迪网.