首页
Preview

最佳9个JS游戏引擎和库

尽管 AAA 游戏公司并不将 JavaScript 作为主要编程语言之一,但使用 JavaScript 进行游戏开发的想法并不是不可行的。事实上,在过去几年中,浏览器和移动设备一直在整合一些功能,例如 WebGL 来增强其图形能力。因为他们通过 JS API 向开发人员提供这些功能,所以我们能够在浏览器中创建非常高级的游戏体验。

因此,在本文中,我想为每个想要作为业余爱好进入游戏开发的 JS 开发人员介绍最顶尖的游戏库。

作为一般性说明,找到最适合你的库或引擎完全取决于你。你知道你想要创建什么类型的游戏以及你对内部游戏架构的理解水平。所以浏览列表,挑选出最适合你需求和水平的项目。

另外,当使用 JavaScript 构建任何类型的 UI 时,始终确保通过共享你的 JavaScript 组件到云组件中心(例如 Bit.dev),使你的工作(或你的团队成员的工作)不会白费。它非常适合最大化代码重用,加快开发速度,而且简单地不会因为一遍又一遍地构建相同的东西而感到无聊。

了解更多信息:

在项目间共享 JavaScript 实用程序函数

bit.dev 上浏览共享的 JS 组件

让我们开始吧……

1. GDevelop

GDevelop 关注成为所有用户(从新手到高级用户)的绝佳工具,提供了一套不错的工具来帮助你开发你想要的游戏。

尽管他们宣传其能够创建“任何类型的游戏”,但该游戏引擎专注于创建 2D 游戏,例如平台游戏、射击游戏和你通常的 8 位游戏。

作为额外的奖励,GDevelop 允许你将游戏导出到不同的平台,例如 Android、iOS、Facebook Instant Games 等。

这绝对是一个选项,如果你有兴趣创建一个可行的游戏,然后将其导出并分发到不同的平台,但你不感兴趣深入了解游戏引擎的低级架构(例如,如果你对游戏引擎的内部架构不感兴趣)。

2. melonJS

melonJS 是另一个专注于 2D 的游戏引擎。通过将库包含到你的代码中,你可以获得所有必要的功能,例如物理支持、碰撞、精灵等,这些都是任何值得一玩的游戏所必需的。

尽管其文档可能不是最好的,但是有很多用户创建的内容供你了解需要做什么。我肯定通过创建以下文章贡献了这个列表:

这是一个非常适合初学者的库,同时也是一个非常强大的库。因此,如果你想创建一个 2D 游戏,并且对游戏开发相对较新,那么这可能是一个很好的选择。

我个人可以推荐这个,因为我自己也用过它。

3. ImpactJS

ImpactJS 是一个 JavaScript 游戏引擎,主要专注于 2D 游戏开发,就像上面的库一样。也就是说,你可以添加插件到 Impact 中以模拟 3D 环境,如下所示:

作为有趣的附注,Impact 带有几个附加工具,例如适用于任何 2D 类型游戏的级别编辑器、强大的调试工具和一个非常有趣的发布框架,称为 Ejecta,它允许你发布到 iPhone AppStore。

4. BabylonJS

BabylonJS 是一个非常强大的 Web 渲染引擎,它不是一个游戏引擎或游戏库,但你肯定可以围绕它构建游戏。事实上,因为它是一个渲染引擎而不是游戏库,你可以访问低级功能,特别是与可视化相关的功能。

如果你使用 BabylonJS,你首先构建你的引擎,然后构建你的游戏,但由于这一点,你完全掌控发生的事情以及如何发生。这对于高级用户来说非常棒,但如果你不是其中之一,则选择 BabylonJS 可能有点逆向思维。看看这个例子,它看起来很棒,但快速浏览一下左侧源代码的行数:超过 1k 行,仅用于演示。这可能相对于 AAA 游戏如今所拥有的行数来说微不足道,但请考虑你的期望和你投入项目的时间:如果你认为你有意愿和时间去学习和编写那些代码,那么这是一个完美的免费工具,可以帮助你获得惊人的结果,否则,暂时还是远离它。

5. PhaserJS

PhaserJS 是一个由社区支持的出色游戏框架,可满足你在桌面和移动端的所有需求。它支持 WebGL 和 Canvas(适用于不支持 WebGL 的设备),并且它专注于 2D 游戏开发。

虽然框架本身是免费的,并且附带了你可能需要创建自己游戏所需的一切,但有一些插件可以添加到它上面,以获得额外的功能或改进的功能。唯一值得注意的细节是,插件不是免费的,你必须为它们付费。

6. PixiJS

就像 BabylonJS 是一个非常强大的 3D 可视化库一样,PixiJS 是一个非常灵活和强大的 2D 可视化库。它与 WebGL 协同工作,并旨在构建美丽的 Web 体验,这不一定转化为游戏。这就是为什么虽然该库支持一些与游戏相关的元素,如精灵、文本甚至一些高级元素,如着色器,但你仍需要构建自己的物理引擎,你需要关注碰撞检测和其他游戏机制,例如确保构建正确的游戏循环。

总的来说,如果你不是在构建复杂的游戏,而是更关注其视觉方面而不是其他更复杂的游戏机制,那么这是一个不错的选择。

7. PlayCanvas

PlayCanvas 是一个完全基于 Web 的游戏开发环境。这意味着你可以使用他们的平台编写代码、测试代码、设置场景(它们有一个非常详细的 WebGL 3D GUI)甚至通过单击一个按钮导出你的游戏。

与我在本列表中介绍的其他选项一样,PlayCanvas 完全兼容并准备创建 VR 体验,这似乎是游戏开发中的一个不断增长的趋势。

PlayCanvas 的小缺点是它不完全免费,你当然可以使用免费层,并拥有公共项目,但你可以忘记保持它们的私密性,或者甚至删除他们的专有加载屏幕,除非你支付每月费用。

8. A-Frame

虽然之前的某些选择已经显示出与 VR 的兼容性作为一个附加功能,但 A-Frame 是专为 VR 和 AR 设计的。这意味着整个框架的重点发生了转移。

当然,这意味着你可以使用它创建 3D 游戏,但如果你正在使用 WebXR 兼容浏览器,或者甚至使用最新版本的 Chrome 中提供支持的WebXR AR 的实验性功能,你将能够最大程度地利用这个框架。

由于 A-Frame 被设计用于在浏览器上使用,所以它具有基于标记的语法,因此它不是过度依赖 JavaScript,而是使用一些自定义标记元素,如下面的示例所示:

如果你对 VR/AR 体验感兴趣,而不是传统的 3D 游戏,那么这个框架是一个不错的选择。由于 A-Frame 是专门为它们设计的,它将使你的生活变得更加轻松。试试吧!

9. PhysicsJS

最后,与其说是一个以图形为重点的引擎,不如说 PhysicsJS 专注于对象交互的物理方面。你可以将此库用于游戏开发或任何其他类型的模拟。

正如你可以在他们的 演示页面 中看到的那样,这个库可以进行一些非常有趣的交互,正如它的文档所述,你可以使用不同类型的渲染器,具体取决于你的需求。你甚至可以使用 PixiJS 作为渲染器,或者创建一个自定义渲染器,如果你想将它与我上面介绍的其他库集成起来。

虽然这个库可能有点老旧,但物理定律已经有一段时间没有改变了,你可以通过 PhysicsJS 实现非常有效的效果。因此,如果你想将复杂的物理学添加到你的游戏中,甚至如果你想使用像 PixiJS 和其他库一样的不同库创建自己的引擎,这可能是一个很好的添加,帮助你自动解决你可能需要的所有类型的 2D 物理交互。

译自:https://blog.bitsrc.io/9-top-js-gaming-engines-and-libraries-for-2020-81707d9f095

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
一个人玩
先找到想要的,然后出发

评论(0)

添加评论