我正在寻找一个跨平台的游戏开发框架。MonoGame看起来很容易学习和快速开发,但我看到他们页面上的大多数游戏都不起作用,或者有很多错误。
谁能解释一下 MonoGame 对于 ios/droid 专业手机游戏开发是否可靠?
我正在寻找一个跨平台的游戏开发框架。MonoGame看起来很容易学习和快速开发,但我看到他们页面上的大多数游戏都不起作用,或者有很多错误。
谁能解释一下 MonoGame 对于 ios/droid 专业手机游戏开发是否可靠?
MonoGame 目前(据我们所知)在 iOS App Store 上发布了 28 款游戏,在 Android Market place 上发布了 5 款游戏,还有一些最近在 Mac App Store 和 Linux 市场上发布的游戏。如果这些游戏中的任何一个失败,请与开发人员联系以确认问题是否与 MonoGame 相关或他们的游戏中的错误。
MonoGame 并不完美,但正如已经提到的,它在每个人的帮助下都在积极开发和改进。2 个星期天前,我们在 FOSDEM 会议上做了一个介绍,概述了我们将在来年开展的工作。首先是 MonoGame 2.5 版本中的 ES 2.0 支持(希望在接下来的 2-3 周内推出)。这将为我们所有的平台添加着色器支持。在那之后,我们将专注于添加 3D,因此我们最大的版本 MonoGame 3.0。
您可以在此处观看我们的 FOSDEM 演示视频 - http://www.youtube.com/watch?v=kLWE52mkii0 以及关于我们在 3D 支持方面的进展情况的预告视频 - http://www.youtube.com /watch?v=vEAdC-4gfHI - 这是我们在 FOSDEM 2012 上首次公开展示的在 MacOS X 上运行的 MIX10 3D Reach 演示。
如果您使用推特,请关注我们的进展@MonoGameTeam。我们倾向于在 #MonoGame 频道的 irc.gnome.org 或 irc.gimp.org 上进行讨论。我们还尝试在 monogame.codeplex.com 讨论区回答问题。
我希望以上信息对您有所帮助。
D.
这个问题很久以前就被问过了,但值得更新。
MonoGame 团队展示了流行的独立游戏。在撰写本文时,包括:
其中。
归根结底,理论很有趣,但没有什么比看到使用该平台非常成功的独立游戏的现实更重要了。
编辑 2014 年 1 月 27 日
截至 2014 年 1 月,Monogame 已宣布他们将支持PS4,但没有为 Xbox One 发布此类公告。
编辑 2014 年 9 月 9 日
添加了几个额外的游戏。还可以查看推特上的#MonoGame哈希标签。
编辑 2017 年 6 月 1 日 Monogame 自 2016 年以来一直支持 Xbox One。
编辑 2020 年 8 月 20 日 Monogame 支持 Dot Net Core。
Mono 产品 (www.xamarin.com) 在每个版本中都变得越来越好。
目前我正在将 2d 游戏从 Windows Phone (XNA) 移植到 iphone 并使用 ExEn (http://andrewrussell.net/exen/) 和 Monotouch (http://xamarin.com/monotouch),它工作得非常好。(目前不支持 3d)
我使用 monogame (http://monogame.codeplex.com) v2 进行了一些测试,发现了一些使用 ExEn 没有发现的问题。使用 ExEn(几乎)一切都可以开箱即用。ExEn 包含一个适用于 Silverlight、iphone、android 等的优秀工作示例。这个示例是我的主要学习资源。
ExEn 的另一个积极点是它的开发者:Andrew Rusell (https://twitter.com/#!/_AndrewRussell),是 XNA/DirectX MVP (http://andrewrussell.net/2011/10/look-at-me-我是mvp/)
ExEn 有什么问题?它的发展似乎停止了。
Monogame 社区和开发者似乎更加活跃。他们最近发布了一个我没有测试过的新版本(v2.1)。v2.1 包括我们对 3D 支持的第一步以及错误修复、优化和更多 XNA 4.0 支持 (http://cocoa-mono.org/archives/452/monogame-takes-tentative-steps-into-3d-monogame -2-1-宣布/)
就我个人而言,我将继续使用 ExEn 进行移植,因为到目前为止一切正常(我几乎完成了 :),但对于我的下一个项目,我将尝试 monogame 2.1。
我刚刚完成一个同步/便携式开发项目。对于我的 5 个平台中的 4 个,我使用 Monogame 作为我的渲染基础(我的第 5 个是 HTML5 Canvas)。你可以在http://unseenu.wikispaces.com/AnyGUI看到我的结果。
我的经验是这样的:
好:
我从 Canvas 的 C#/JSIL 版本开始,因为那是最大的未知数。之后我的第一个移植是 OSX 和 Monogame。
OSX 移植非常顺利。我之前已经使用过 Monogame,所以我大概花了一周的时间来移植我的渲染层。
之后,实际上需要几个小时才能运行 Windows OGL 端口。
运行 iOS 端口大约需要 2 天时间。其中大约一半是处理构建问题和 iOS 工具。另一半是让触摸输入工作,因为那是我的第一个移动平台。
我现在正在开发 Android,这是我第一次看到似乎是 Monogame 可移植性问题。剪辑似乎已关闭。除此之外,启动它只是几个小时的问题,而且大部分时间都是为了构建正确的环境。我不需要更改代码。(虽然这个剪裁是笔的问题。)
坏处:
我在 OSX 上,工具可能有点时髦。最大的问题是 Monogame 对 Xamarin Studio/Monodevelop 的支持在 Mac 上不起作用。不过,这并不是一个听起来那么大的问题。模板工作正常,损坏的是库引用。所以我只是单独下载了Monogame,并在创建项目后将每个项目中的库引用更改为那些下载的库。我学会了这样做,我几乎没有工具问题。
一般来说,C# 对版本控制的处理非常糟糕。它对库版本非常挑剔,部分原因是微软不想担心 .NET 的向后兼容性。
这体现在尝试做多平台单人游戏的事情上。过去,我为此感到非常悲伤。即使 monogame API 是相同的,当您针对它编译代码时,会将 Monogame 的特定平台库的引用烘焙到您的代码中。如果那是应用程序代码,它还不错,因为应用程序无论如何都需要为每个平台构建自己的构建,但是如果您想要中间库,这意味着您需要为每个平台单独构建每个中间库,这是不可接受的。
我在这个项目中的解决方案是定义我自己的接口,它位于我的游戏和 monogame 之间,这样我就可以通过依赖注入运行时注入实际的 monogame 代码。我最终会在我的网站上更详细地写下这个。
另一个问题当然是你需要 Xamarin Mono for iOS 和 Android 来为这些平台开发,这需要一些钱。
所以简短的回答是这样的。一般来说,它是一个很好的 API,并且实现在平台之间大多是忠实的。它的形式和您需要使用的工具仍然有点粗糙,可能会给您带来一些悲伤。最后,这与我曾经工作过的所有其他游戏平台并没有太大的不同。
是的……不。
2.5.1 的核心是相当稳固的,但仍然有一些漏洞潜伏在各个地方。对我来说最值得注意的是,TouchScreen 在 iOS 上坏了。
团队几乎放弃了 2.5 线,所以这些都没有得到修复。相反,所有焦点都集中在 3.0 上。我刚刚转换到 3.0,但它对当前让我感到悲痛的资产提出了一些新要求......
总而言之,我不得不称它为“Alpha Level”自动取款机。