为响应 GameMaker 的 LTS 2026 版本发布,名为 Release 2GML-OOP 新版本现已发布。此前版本是针对首个 LTS 版本发布的,标志着该版本已持续积极开发超过三年。

什么是 GML-OOP?

GML-OOP 是我自 2021 年以来一直积极开发的一个庞大的 GML 库。它的目标是彻底改变你在 GameMaker 中通过代码进行工作的方式,使其最重要的功能可以通过构造函数及其方法使用。它增强了这些功能,并且一旦你掌握要领,使用起来会更加轻松愉快。打包到构造函数中的数据更容易传递,其内容在字符串化时(对数据结构尤为重要)易于呈现,并且改进了错误处理,这样运行时就不会因为每个小问题而崩溃。如果你想开始编写优秀的代码,能够轻松分辨每个部分是什么,那么这个库以及我为此目的编写的另一个库可能正适合你。

有关 GML-OOP 的更多信息,请参阅其 Wiki 中的概述示例页面。

Release 2 中有哪些新内容?

新用户可能会感兴趣的是,新版本使得编写优化的图形代码变得非常简单。用于渲染图形的构造函数已经全面改进,支持带轮廓的多色渲染。这一切都基于顶点构建,因此它们可以轻松使用顶点缓冲区。无需每帧重新计算图形数据,而只需通过 toVertexBuffer() 方法预先计算一次,然后渲染,并在不再需要时销毁。所有操作只需各自一个方法即可完成。顶点缓冲区最易于实现静态图形,但高级用户肯定会知道如何利用着色器为这种实现带来动态效果。否则,每帧渲染仍然像往常一样可用。此外,由于形状构造函数现在可以访问其完整的顶点信息,因此可以通过修改每个顶点的数据来改变其实际形状和视觉属性。构造函数的代码现在利用这一点来实现精确的形状碰撞。你是否曾在视频游戏中看到过界面使用精确的、非矩形的碰撞检测?好了,现在它可能成为你游戏中的一个令人满意的特性。

GML-OOP 中精确形状碰撞的示例

对三维图形的可选支持也已初步实现。它在二维正交投影和完整三维透视下都可见,足以制作"伪 2D"或立体模型风格的游戏。对于考虑在 GameMaker 中学习 3D 开发的开发者来说,这可能很有意义,因为它正在被集成到 GMRT 中,可以推测这将是未来大多数 GameMaker 专业工作的发展方向。

还有一个新的 Callback 构造函数,用于处理延迟执行的函数和参数,这也是构造函数事件系统现在所基于的。

接下来有什么计划?

GML-OOP 的开发需要时间,但不会停止。可以期待进一步的扩展和改进,特别是在音频支持方面,其中一些已经在此版本中引入。此外,一个基于 GML-OOP 的独立库正在开发中,专注于创建可扩展的、基于顶点的、与分辨率无关的用户界面。

如果你喜欢我所创造的东西以及我所提供的质量,你可以考虑雇佣我参与你的项目,无论该项目是否使用 GameMaker 制作。