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 多年来一直亲身支持社区。AI 游戏开发是他的日常工作。他备受推崇,曾在育碧和 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 feed获取最新的 Orx 新闻。

标签
User profile image.
白天是 C# 和前端开发人员。晚上是独立游戏开发者。大部分时间都是如此。

7 条评论

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

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

现在我只希望我有时间来摆弄这个!现在周围有一些很棒的平台游戏,我认为这很大程度上与像 Orx 这样的平台的成熟度有关。

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

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

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

很棒的文章

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