MonoGame可靠吗?

31

我正在寻找一款跨平台游戏开发框架。MonoGame 看起来易于学习且快速开发,但我看到他们网页上展示的大部分游戏无法正常工作或存在许多错误。

有人能否解释一下,MonoGame 在 iOS/Android 专业移动游戏开发方面是否可靠?


2014年9月更新:最近我安装了它,结果出现了一长串基于DLL的错误。你可以从中得到什么启示。 - user9993
5个回答

30
MonoGame目前已经在iOS应用商店上发布了28款游戏(据我们所知),在Android市场上发布了5款游戏,还有一些最近发布的游戏在Mac应用商店和Linux市场上。如果其中任何一个标题失败,请与开发人员联系以确认问题是MonoGame相关还是其游戏内部错误。
MonoGame并不完美,但正如先前提到的那样,它正在积极地开发和改进,并得到了每个人的帮助。两周前,我们在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演示。
如果你使用Twitter,请关注我们的进展@MonoGameTeam。 我们倾向于在irc.gnome.org或irc.gimp.org的#MonoGame频道上交流。 我们也会尝试回答monogame.codeplex.com讨论区的问题。
希望以上信息有所帮助。
D.

1
"Chicken story在第三个级别崩溃,我测试过的monogsme网页中的许多其他故事也失败了。甚至有一些指向应用商店的链接也失效了。必须检查该列表,因为它可能会产生关于框架的错误印象。" - xus
你能否在这里分享一下你认为最好的Mono游戏?谢谢。 - xus
我没有玩过所有的游戏,但我发现Digital Leprechaun LLC (http://itunes.apple.com/us/artist/digital-leprechaun-llc/id439942313)制作的游戏非常精致。如果你有iPad 2,请留意我们的第一款3D游戏Infinite Flight(http://flyingdevstudio.blogspot.com/p/games.html),这是一款飞行模拟器,目前处于测试版,表现非常出色。这些家伙向我们贡献了他们的修改,并且我们正在忙于将其合并到我们的develop3d分支中。希望以上内容能够帮助你。 - Dominique

28
This question was asked a long time ago, but deserves an update.
MonoGame团队有一个受欢迎的独立游戏展示。目前为止,这包括以下内容:

在一天结束的时候,理论很有趣,但是看到使用该平台的极其成功的独立游戏的现实是无可比拟的。

编辑于2014年1月27日

截至2014年1月,Monogame已宣布将支持PS4,但尚未对XBox One做出此类声明。

编辑于2014年9月9日

添加了几款额外的游戏。还可以在Twitter上查看#MonoGame标签。

编辑于2017年6月1日 自2016年以来,Monogame已支持XBox One。

编辑于2020年8月20日 Monogame支持Dot Net Core。


1
这也表明MonoGame变得越来越受欢迎,很可能更加可靠。随着越来越多的开发者使用它,错误正在被修复。 - craftworkgames
我们最近还宣布了对Switch的支持,之前也支持PSVita。请参见此处以获取更多最新的MG标题清单及其可用平台 - https://twitter.com/MonoGameTeam/status/889878650648133634 - Dominique

17

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-im-an-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-announced/)。

就我个人而言,我会继续使用ExEn进行移植,因为到目前为止一切都很顺利(而且我几乎快完成了:)),但是对于我的下一个项目,我会尝试使用Monogame 2.1。


3
ExEn的开发并没有真正停止,只是我出国了几个星期 ;) - Andrew Russell
正如我多次告诉你的那样,安德鲁,我是ExEn的忠实粉丝!! :) - Vackup
3
需要注意的是,ExEn已不再进行积极开发。相比之下,MonoGame正在积极开发,并拥有活跃的社区。如果您需要长期支持,这一点至关重要。我在App Store上发布了一款使用ExEn的游戏,虽然我对ExEn非常满意(Andrew做得很好),但它似乎存在着iOS 6的重大问题,例如稳定性和不正确的渲染。简而言之:ExEn曾经是一个可靠的选择,但自2012年9月起,我建议不要在新项目中使用它。我正在将我的ExEn游戏移植到MonoGame。 - Michael
基于Michael和Andrew Russel的评论,我不确定ExEn是否仍在开发中。Andrew Russel在2012年3月写道,他已经没有时间继续开发ExEn最后一次提交到ExEn是在2012年10月。@AndrewRussell 我已经看到你尝试过众筹,但资金不足以支持你继续前进。基于这个众筹成功案例,也许值得再试一次? - surfmuggle
只是为了绝对清楚:我目前没有在开发ExEn,最近也没有参与过它的开发,并且在可预见的未来也不会再次参与。当MonoGame基本上还什么都没有时,我开始了ExEn - 所以现在他们似乎做得很好,我不会重新加入其中。(不过,将来我不会拒绝通过众筹来开发其他开发工具。) - Andrew Russell
显示剩余2条评论

2
我刚刚完成了一个同时/可移植开发项目。其中4个平台我使用Monogame作为我的渲染基础(第5个是HTML5 Canvas)。您可以在http://unseenu.wikispaces.com/AnyGUI查看我的结果。
我的经验如下:
优点:
我从C#/JSIL版本开始使用Canvas,因为这是最大的未知因素。之后我的第一个移植是到OSX和Monogame。
OSX移植非常顺利。我之前已经使用过Monogame,所以花了我大约一周的时间来移植我的渲染层。
然后只用几个小时就能让Windows OGL移植运行。
花了大约2天的时间才能让iOS移植运行。其中大约有一半是处理构建问题和iOS工具。另一半是让触摸输入正常工作,因为这是我的第一个移动平台。
我现在正在处理安卓,这是我第一次看到似乎是Monogame可移植性问题出现的地方。剪辑似乎不对。除此之外,它只需要几个小时就能重新启动,大部分时间都是在处理构建环境。我不需要进行任何代码更改。(尽管这个剪辑问题很烦人。)
缺点:
我在OSX上,并且工具可能有些古怪。最大的问题是Monogame对于Xamarin Studio/Monodevelop在Mac上根本不起作用。不过,这不是像听起来那样大的问题。模板运行得很好,坏掉的是库引用。所以我只需单独下载Monogame,然后在每个项目中更改库引用为下载的库。一旦我学会了这样做,我的工具问题就不多了。
总的来说,C#处理版本控制时非常糟糕。它非常挑剔关于库版本,部分原因是因为微软不想担心.NET向后兼容性。
这在尝试进行多平台monogame开发时显现出来。我以前遇到了很多麻烦。即使monogame API是相同的,当您针对它编译代码时,它会将对特定平台库的引用烤入您的代码中。如果那是应用程序代码,情况并不那么糟糕,因为应用程序需要针对每个平台进行自己的构建,但如果您想要中间库,那么这意味着您需要为每个平台单独构建每个中间库,这是无法接受的。
在这个项目中,我的解决方案是定义我的自己的接口,它坐在我的游戏和monogame之间,因此我可以通过依赖注入将实际的monogame代码注入到运行时。我最终会在我的网站上详细介绍这个方案。
当然,另一个问题是您需要Xamarin Mono才能开发iOS和Android上的应用程序,而这需要一些钱。

所以简短的回答是这样的。总的来说,这是一个不错的API,各个平台之间的实现大多数都很忠实。它所采用的形式和您需要使用的工具仍然有些粗糙,可能会让您感到困扰。最终,这与我曾经使用过的其他游戏平台并没有太大的区别。


0

是的...也不完全是。

2.5.1的核心相当稳定,但仍然存在各种地方的漏洞。对我来说,最明显的问题是TouchScreen在iOS上无法使用。

团队已经基本放弃了2.5版本线,所以这些问题不会得到修复。现在所有的注意力都集中在3.0上。我刚刚转换到了3.0,但它带来了一些新的要求,目前让我感到困扰...

总的来说,我必须称之为“Alpha级别”。


1
仅仅是一个更新。我个人使用了MonoGame 3.0将我的WP7 3D游戏Polyhegrams转换到WinRT / Windows 8上,除了一些小问题外,它非常顺利。它甚至成功进入了Apptivate.ms比赛的游戏类别前十名(http://apptivate.ms/semi-finals/2/games)。虽然在iOS和Android中还有一些缺失的功能和各种问题的评论,但社区非常活跃,并帮助您克服大多数困难。另一个值得关注的游戏是Armed,由MonoGame的主要贡献者之一开发。 - RobCurr
1
我已经完成了我的游戏并且把资源打包好了。Monogame 3正在逐渐成熟,表现相当不错。 - user430788
我只想说Polyhegrams太棒了,我花了好几个小时玩它。 - fallaciousreasoning

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接