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 发布了 Vulkan API,与 DirectX 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

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