Hatchit:一个开源游戏引擎

481 位读者喜欢这篇文章。
Characters from a video game

Opensource.com

越来越多的学生通过视频游戏了解开源世界。像FreeCivMinetest这样的开源游戏邀请年轻玩家深入研究源代码,而像SpigotMC这样的项目则使他们能够编写插件来扩展他们最喜欢的游戏。

不幸的是,用于构建游戏的开源工具并没有相同的知名度。罗切斯特理工学院的学生Matt Guerrette希望通过Hatchit(他的开源游戏引擎)来帮助改变这种状况。

Hatchit 简介

Guerrette 和他的同学Arsen Tufankjian于 2016 年 2 月创建了 Hatchit。他们觉得他们在课堂上和个人项目中使用的流行游戏引擎更注重设计,并且缺乏他们正在寻找的一些技术细节。他们共同决定构建自己的游戏引擎,目标是让开发人员接触到流程的技术方面。“我们想让您更多地访问游戏引擎的编程方面,”Guerrette 说。

Hatchit 使用 C/C++ 编写,并以 GPL 和 LGPL 的混合许可授权。该项目最初旨在利用 DirectX API 进行开发。然而,Guerrette 和 Tufankjian 在他们刚开始时遇到了一个意外事件。Nvidia 发布了与 DirectX API 竞争的 Vulkan API。他们试图同时支持这两个 API,但后来选择专注于 Vulkan。

灵感

Guerrette 希望通过 Hatchit 完成一种特定类型的任务:他希望能够构建渲染通道,而不是让引擎在内部处理它。一个早期的项目激发了对该功能的需求。通过能够实时创建渲染通道,开发人员将能够创建类似自定义着色器的东西,该着色器可以实时将顶点弯曲成笔直的几何形状。他早期的项目《Mineshaft Mayhem》演示了这个概念,矿井看起来像是在扭曲和转弯,但隧道在编辑器中实际上是笔直的。

现在的情况

自从启动该项目以来,Tufankjian 已经毕业,现在在亚马逊游戏设计公司工作。在夏季,社区开始对该项目表现出兴趣。他们收到了来自核心开发团队之外的一名成员的拉取请求,并且针对引擎的不同存储库提交了几个问题。

Guerrette 今年为该项目制定了几个里程碑。他正在进行的最大任务之一是实现 Vulkan 渲染器的多线程设计并使其工作。这大大加快了项目的工作渲染时间,并且也被证明是迄今为止最大的挑战之一。除了多线程设计之外,他还希望使用 JSON 序列化游戏对象和组件。这将使编辑器应用程序更容易修改游戏数据并使用 Qt 操作配置。

在开放环境中工作的好处

在 GitHub 上进行该项目的工作以多种方式使该项目受益。其中最明显的好处之一是有人提交问题并提出对代码部分内容的担忧。“让全世界的目光都关注着您的项目以发现错误是一件好事,”Guerrette 说。在一个案例中,有人针对一个旧库提交了一个问题,该库在其计算中存在数学错误。Guerrette 发现为引擎使用其他开源库和依赖项的自由特别有用。所有许可证都兼容,并且没有出现任何问题。

借助开源工具,一些技术挑战也变得更容易。Hatchit 团队面临的最大挑战之一是编写构建系统以使用构建系统生成器软件并保持与 Windows 和 Linux 的兼容性。在项目中本地链接依赖项很不方便,并且使项目变得不必要地庞大。借助 git,他们使用子模块将依赖项链接到存储库中,并在编译 Hatchit 时从源代码构建它们。“能够链接依赖项存储库非常有用,尤其是在 Windows 上进行开发时,”Guerrette 说。此外,GitHub 和其他服务上的一些持续集成功能使快速测试更改的兼容性变得容易。

挑战

该团队一路走来面临着一些挑战。使用 git 子模块的便利性也带来了跟踪上游更改的难度。有时,依赖项可能会在项目中中断。然后,团队必须检查项目是否已更新或上游是否已更改,或者是否需要在其项目中本地进行修复。

此外,社区外联是 Guerrette 希望作为新项目负责人关注的挑战。他在他的YouTube 频道上分享开发更新,并偶尔在livecoding.tv上直播他的开发过程。让新贡献者更容易参与进来的一件事是建议他们尝试从源代码构建引擎。这使潜在的开发人员获得了编译引擎的经验,并引导他们了解了许多项目文档。

参与进来

Hatchit 团队仍在开发游戏引擎,并正在寻求社区参与。要参与进来,Guerrette 建议查看Hatchit Gitter 聊天并查看主存储库上的README 文件。欢迎任何形式的贡献,无论是拉取请求还是提交问题。

标签
A close-up portrait of a smiling white man with short dark hair and a neatly trimmed beard. He is wearing a red fedora hat, a blue shirt, and a blue lanyard with the word "Fedora" printed on it. The background is blurred, suggesting he is indoors.
Justin W. Wheeler 是一位富有创造力的创作者。他最出名的是作为开源贡献者和自由文化倡导者,最初来自美国佐治亚州。Justin 参与了众多开源社区,并在过去十年中领导了不同的倡议,以构建可持续的软件和社区。

4 条评论

知识共享许可无 (s) 作为 CC-BY-RS

嗨 Roger,不确定您对这条评论是什么意思?

回复 ,作者:Roger Silvers(未验证)

那太棒了

谢谢,很高兴您喜欢 Hatchit!

回复 ,作者:aliwaa

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.