首先它说 Monogame 是 XNA 的开源实现。这是什么意思?- 它使 XNA 开源 - 或采用 XNA 的功能并自行实现,但与 XNA 具有相同的功能名称等 - 任何其他
让我们从头开始。要完全回答您的问题,您需要了解一些历史。
首先,XNA是微软提供的一套促进视频游戏开发的工具。XNA 基于 .NET Framework,其版本可在 Windows、Windows Phone 和 XBox 上运行。
MonoGame是 XNA 的开源实现,其目标是使其成为真正的多平台。它允许现有的 XNA 开发人员使用几乎相同的代码将他们的游戏移植到许多其他平台。因此,虽然开发人员过去只能使用 Microsoft 平台,但他们现在也可以在 iOS、Android、Mac OS X、Linux、Windows 8 Store、Windows Phone 8、PlayStation Mobile 和 OUYA 上部署游戏。
另一个需要意识到的重要事情是,微软将来不再支持 XNA。MonoGame 已成为 XNA 开发人员非常有吸引力的替代品,即使对于 Microsoft 平台也是如此。
它是允许的和合法的吗?
这是个好问题。虽然从表面上看,这似乎是一个潜在的危险地带,而且我不是律师,但似乎有大量证据表明微软可以接受它。
例如,Skulls of the Shogun 是使用 MonoGame 开发的,由 Microsoft 发布并在 Xbox、Windows 8 和 Windows Phone 8 上发布。
还有一些其他的例子,比如TY the Tasmanian Tiger和Lee Stott(微软英国布道者)谈论 MonoGame。
我可以复制任何应用商店中的任何应用并制作自己的版本吗?它需要有什么不同才能合法?
不,您不能只复制现有的应用程序。如果你这样做,你很快就会遇到侵犯版权和商标法的行为。即使您创建的游戏包含太多类似于现有游戏的内容,它也会让人们感到不安,您可能会发现自己遇到了一些麻烦。相信我,我以前不得不处理这个问题,这并不好玩。
也就是说,如果你有一些独创性和创造力,版权法不能阻止你制作自己的游戏。
“版权不保护游戏的创意、名称或标题,或玩游戏的方法。版权也不保护参与开发、销售或玩游戏的任何创意、系统、方法、设备或商标材料游戏。一旦游戏被公开,版权法中的任何规定都不会阻止其他人基于类似原则开发另一款游戏。版权仅保护作者以文学、艺术或音乐形式表达的特定方式。- http://www.copyright.gov/fls/fl108.html
如果您认为自己可能处于危险之中,我建议您阅读一下。
其次,当我安装 Monogame 时,也安装了 SharpDX。当我搜索它时,我发现 SharpDX 是托管 DirectX(我从未在 DirectX 中工作过)。Monogame 和 SharpDX(或 XNA 和 DirectX)之间有什么联系,我不能单独使用 monogame 或 SharpDX 吗?托管 DirectX 是什么意思?
DirectX 是一个 API,用于处理与 Microsoft 平台上的游戏开发相关的任务。
SharpDX 是位于 DirectX 之上的一个层,允许在 C# 等托管语言中使用它。
OpenGL 是一个 API,用于处理与非 Microsoft 平台上的游戏开发相关的任务。
OpenTK 是位于 OpenGL 之上的一个层,允许在 C# 等托管语言中使用它。
MonoGame 在 Microsoft 平台上使用 SharpDX,在非 Microsoft 平台上使用 OpenTK。
(实际上,它不是那么简单,但你明白了)
第三,除了 Xamarin 提供的之外,还有更多的跨平台 C# 框架吗?我找不到更多。
Xamarin 在多平台 C# 领域几乎垄断了市场。我能想到的唯一其他选择是Unity,但它并不是一个真正的框架,它是一个完整的游戏引擎。