MonoGame:独立开发者的框架
MonoGame 框架的开发者,在此框架下创建了《Bastion》和《Axiom Verge》,向 80.lv 媒体讲述了该包的功能及其开发过程。以下是该材料的翻译。
严格来说,MonoGame并不是一个游戏引擎。它是微软 XNA 框架的开源实现,全球的独立开发者都在使用它。通过它创建了Bastion、Towerfall: Ascension、Axiom Verge、Apotheon 和 Infinite Flight。我们与 MonoGame 的首席开发者史蒂夫·威廉姆斯 (Steve Williams) 进行了对话,讨论了它的一些功能。
关于作者
目前我和汤姆·斯皮尔曼 (Tom Spilman) 正在进行 MonoGame 的开发。我是一名拥有 17 年经验的专业游戏开发者。汤姆也是一位经验丰富的开发者。他是位于德克萨斯州休斯顿的 Sickhead Games 工作室的联合创始人,而我则在昆士兰州布里斯班的 Krome Studios 度过了职业生涯的大部分时间。我们得到了来自英国的丹·埃利斯 (Dean Ellis) 和多米尼克·路易斯 (Dominique Louis) 的支持。
MonoGame
MonoGame 是微软 XNA 框架的开源实现。框架更多的是一种平台的抽象概念,它定义了软件系统的基本结构。而引擎则是一个更为完整的构造,包含了环境编辑器、图形用户界面、粒子系统、物理系统等等。通常,它还会包括一些用于创建游戏内内容的工具。
MonoGame 的用户可以使用内置库、内容制作管道、项目模板以及安装程序,此外,如果他们从 GitHub 克隆了 Git 仓库,还可以获得完整的源代码。
开始创建 2D 游戏非常简单。大多数 MonoGame 用户都是以此为目的使用 MonoGame。SpriteBatch 类是最常用的之一,负责处理大部分 2D 渲染任务。与任何引擎或框架一样,性能取决于系统的使用方式。SpriteBatch 以最有效的方式进行渲染,具体取决于所提到的任务。
Tower Fall Ascension
3D 开发会复杂一些,但 MonoGame 同样能够胜任。通过这个工具创建的 3D 飞行模拟器的一个例子是来自 Flying Development Studio LLC 的游戏 Infinite Flight。
跨平台支持
跨平台支持的基础是 C# 语言。使用微软的 .NET 框架在 Windows 平台上,以及 Mono 在其他平台上,大部分代码在跨平台开发中均保持不变。通常在处理如 Windows 上的 Direct3D 11 或 Mac 和 Linux 上的 OpenGL 等特定组件时,会出现对平台相关代码的需求。通过这种方法,平台相关代码只作为严格定义的模块的一部分,而不会污染主要代码。因此,使用 MonoGame 的开发者可以将为一个平台编写的代码,几乎不需要任何更改地移植到另一个平台上。
最大的项目
之前提到的 Infinite Flight 是通过 MonoGame 创建的最大项目之一。其他项目还包括 Bastion、Towerfall: Ascension、Axiom Verge、Apotheon 和 Square Heroes。
社区
没有人特意测量社区的规模,但我估计,全球有数千人使用 MonoGame,并用它创造各种产品,从小型的演示到大型商业项目。在 GitHub 上,MonoGame 有 221 位贡献者,在 Gitter 项目频道上有 80 名参与者。MonoGame 可以免费下载和使用。大多数开发者使用 MonoGame 创建桌面平台的游戏(Windows、Mac、Linux)。其次是 iOS 和 Android。
Axiom Verge
在项目网站上,有供交流的论坛,项目在 Gitter 上的频道链接以及 Git 仓库链接。我们还会积极使用 Twitter 进行交流。经常使用的标签有 #MonoGame 和 #BuiltWithMonoGame。每隔一个月或两个月,我们会通过 Google Live Hangout 举办定期会议,参与者包括 MonoGame 团队成员和社区中最显著的代表。有关此事的更多信息可以在MonoGame 的 YouTube 频道上找到。
我们会出席世界各地的各种活动,尽管通常没有自己的展位。汤姆会定期出席旧金山的 GDC,德米特里和丹经常参加伦敦及其周边的活动,而我则出席墨尔本的 Game Connect Asia Pacific。
初学者指南
最简单的方式是通过我们的网站来开始了解 MonoGame,在那里可以下载安装程序并尝试使用引擎。同时还提供了文档和大量教程链接。
此外,MonoGame YouTube 频道上有很多实用的视频。用户 Simon “Darkside” Jackson 在他的频道上发布了多种有用的教程,专注于 MonoGame。
Apotheon
如果你想更深入地了解项目源代码,自己构建框架或帮助 MonoGame 开发者,可以通过此链接克隆 Git 仓库。
翻译:伊琳娜·斯米尔诺娃
来源:80.lv