Orx 开源游戏引擎入门

偶尔,您会在互联网的某个安静角落遇到一个小项目,它恰好满足所有需求。Orx 2D 游戏引擎就是这样一个项目。
542 位读者喜欢这篇文章。
Getting started with the Orx open gaming engine

Hazardous Attack。Oxl Games,CC BY

互联网上有大量的游戏引擎。有些专注于 2D,有些专注于 3D。语言各不相同。有些是基于 Java 的,Javascript,C#,C++,或者可能是它们自己的特殊脚本语言。许可证也各不相同。有些可以免费使用,但按销售额付费。有些是完全免费的,您可以随意使用。

有些拥有大型社区、丰富的工具集和强大的企业支持。而且非常偶尔,您会在互联网的某个安静角落遇到一个项目,它恰好满足所有需求。然而,大多数人只是忽略了它。

Orx 就是这样一个项目。

Orx 自 2007 年开始开发,其根源可以追溯到 2002 年,是一个供 C、C++ 或 Objective-C 开发人员创建高性能 2D 游戏的引擎。这个小引擎有两个方面。一方面是 API 的简洁代码,完全用 C 开发,但具有面向对象的设计。另一方面是一些非常巧妙的东西:配置系统。

配置系统旨在用用户定义的数据配置替换大量的代码、计时器和事件监听器。是的,这确实很拗口,可能对描述它的用途没什么帮助。

最好描述一个典型的游戏开发场景,以及 Orx 的配置系统如何使任务变得更加容易。

编码

假设您想在屏幕上摧毁一个外星人。您会在外星飞船的顶部放置一个爆炸精灵,然后摧毁外星飞船本身。如果爆炸对象触发了一些较小的爆炸对象,您将需要一个循环来创建所有这些对象,然后设置事件来跟踪每个对象并更新其位置。然后,您的事件代码还需要计时爆炸和子爆炸的生命周期,并在其生命周期结束后将其删除。

这需要大量复杂的代码。Orx 如何以更好的方式处理这个问题,并使开发人员的生活更轻松?通过构建类似于以下内容的对象配置

ExplosionObject
  ExplosionObjectGraphic
  Spawner
    SpawnerObject
       SpawnerObjectGraphic
       Direction: 360 degrees random, 5 units of velocity
       LifeTime: 2 seconds
       FadeOutToAlphaFX
  FadeOutToAlphaFX
  LifeTime: 1 second

这是伪配置。但这仅仅意味着:定义一个带有图形的对象。给它一个生成器。生成器将喷射生成器对象,这些对象反过来也有自己的图形。但是以一定的速度向任何方向发送这些对象,每个对象仅存活两秒钟,并在移除之前淡出。

同样,主对象也将在移除前一秒淡出。

所有这一切的结果是:在屏幕上创建一个单独的 ExplosionObject,它下面定义的所有内容都将自动为您发生。如果您不想管理对象,则无需代码。无需代码来跟踪其生命周期或预期要执行的操作。

这就是 Orx 配置系统在一个小而复杂的示例中的绝对美妙之处。但这仅仅是冰山一角,就独立游戏开发者可以使用的强大功能而言。

社区

Orx 有一个非常小但友好的社区。正如您所期望的那样,有一个论坛,其中包含多年的建议和对开发人员问题的解答。该论坛充当信息和技巧的宝库。

最近,Orx 社区在 Gitter 上开设了一个活跃的聊天室。这有助于加速 Orx 引擎和基于 Orx 的项目和游戏的更改,并实现用户之间更快的沟通。

社区的负责人是 Orx 的开发者 Romain Killian。Rom 多年来一直在为社区提供支持。人工智能游戏开发是他的日常工作。他备受尊敬,曾在育碧和 Nihilistic 等公司工作过。他也非常友好和谦虚。这成为我自己和其他人被吸引到社区并扮演积极角色的主要吸引力之一。Rom 对用户的支持促使社区将 Orx Wiki 扩展为一个活跃的学习中心,其中有大量使用 Orx 的示例和教程。列表每周都在增长。

Little Cells game screenshot

小细胞。Fully Bugged,CC BY

大池塘里的小鱼

虽然大多数独立开发者几乎立即转向 C# 和 Unity,这主要是基于同行开发者的影响和推荐,但 Orx 是不同的。它是一个基于 C 的引擎,并且在许多方面可以胜过 Unity 的输出。

选择更高的性能确实是有代价的。Orx 社区较小。因此,没有您期望随 Unity 等产品一起提供的游戏构建器风格的工具。有人可能会说,有了 Orx 提供的配置系统,编辑器根本不是必需的。

但是当您习惯于使用编辑器进行设计并且已经开始依赖它时,这并不好。虽然这样的产品会很有益,但在 Orx 中开发游戏时,它并不是一个决定性因素。

这并不是说 Orx 没有工具。许多工具,如 Inkscape、Tiled MapEditor 或 DarkFunction 精灵动画编辑器可以使用,并且所有这些工具都有转换器。此外,Orx 确实有自己的编辑器,专门用于设计 Galaga、1942 或 Raiden 风格游戏中的外星人波形。

Flip Runner game screenshot

Endless Flip Runner。Volcano Mobile,CC BY

速度

我有没有提到 Orx 速度很快?非常快。该引擎经过了很好的优化。使用 Orx 编写的游戏在配备 Pentium N3700 CPU/Intel HD Graphics 的 Intel NUC 上以 1920 x 1080 的分辨率进行了测试,达到了稳定的 60FPS。我不确定其他引擎可以匹配这些低端规格。

当然,在配置更高的机器上,性能非常出色。

灵活性

使用 Orx 没有固定的模式,也没有隐藏的陷阱。您很难找到 Orx 无法支持的 2D 游戏开发概念。您不会在项目进行数周后才发现引擎缺少某些东西。没有决定性因素。

您期望从顶级引擎获得的功能都在那里:图形、动画、声音、着色器、事件、时钟和时间线、文件 IO、效果、字体、输入、物理,当然还有配置系统。当然还有更多。要充分了解可用的功能,API 在线提供。

自由

Orx 不隶属于任何公司或商业利益。您可以简单地获取引擎,开发您喜欢的任何平台上的任何内容,并以任何方式出售您的游戏,而无需对 Orx 进行任何致谢。

有什么陷阱吗?嗯,没有。

您可以自由地做您喜欢的事情。但是,在您的游戏中致谢引擎始终是一种礼貌的感谢方式。

这与其他有商业利益支持并且相互之间竞争激烈的引擎形成对比。许多这些付费模式允许您免费使用和开发引擎,但仅在销售额达到数千次后才支付版税。这还不错。但这也不是完全的自由。

各有千秋。

结语

多年来,欢迎 Orx 的新来者一直很有趣。有些人留下来,有些人离开。许多人跟随大众前往 Unity 或 Löve 等引擎。但是,当更大的引擎在公共领域争夺时,互联网边缘的安静引擎将继续做它多年来一直在做的最好的事情。

小型的 Orx 社区将继续聚会并为桌面和移动设备制作游戏。

当然,大门始终敞开,欢迎有兴趣尝试最好的小型 C/C++ 2D 引擎的新独立开发者。

开始入门

如果您有兴趣使用 Orx 编写游戏,学习 Wiki 上提供了初学者指南。这将指导您下载和设置 Orx,然后编写一个简单的游戏。

论坛包含大量帮助和建议。Wiki 上有示例教程Gitter 聊天室非常适合从社区获得实时帮助。

您可以从官方网站Twitter 订阅源获取最新的 Orx 新闻。

标签
User profile image.
白天是 C# 和前端开发人员。晚上是独立游戏开发者。大多数时候。

7 条评论

对 Orx 的出色介绍。我之前没有听说过这个引擎。对社区及其核心开发者 (Romain) 的描述也非常积极。祝团队一切顺利。我希望将来在项目中使用 Orx。感谢您的帖子,Wayne。

之前没听说过 Orx。感谢这篇文章!

现在我只希望我有时间来尝试一下!目前有一些非常出色的平台游戏,我认为这很大程度上与 Orx 等平台的成熟度有关。

很棒的文章 - 已收藏以备不时之需!

Orx 也有声音。许多引擎都忘记了声音/音乐。

感谢您的这篇文章!我没有听说过这个游戏引擎,我想我会尝试一下。

很棒的文章

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