2

我已经学习 C# 一段时间了。我基本上来自非开发背景(意味着我不知道不同编程工具的实际工作)。我刚开始学习 Monogame,但很少有事情让我感到困惑。

首先它说 Monogame 是 XNA 的开源实现。这是什么意思?- 它使 XNA 开源 - 或采用 XNA 的功能并自行实现,但与 XNA 具有相同的功能名称等 - 任何其他

它是允许的和合法的吗?如果是,我可以复制任何应用商店中的任何应用并制作自己的版本吗?它需要有什么不同才能合法?

其次,当我安装 Monogame 时,也安装了 SharpDX。当我搜索它时,我发现 SharpDX 是托管 DirectX(我从未在 DirectX 中工作过)。Monogame 和 SharpDX(或 XNA 和 DirectX)之间有什么联系,我不能单独使用 monogame 或 SharpDX 吗?托管 DirectX 是什么意思?

第三,除了 Xamarin 提供的之外,还有更多的跨平台 C# 框架吗?我找不到更多。

4

2 回答 2

7

这是什么意思?

Monogame 是 XNA 的另一种实现(相同的接口,不同的基础)

它是允许的和合法的吗?

我不知道 XNA 的术语,但通常 Microsoft 允许此类重复(请参阅原始 Mono)。如果这与您有关,您可以对 XNA 的许可证进行研究。

我可以复制任何应用商店中的任何应用并制作自己的版本吗?它需要有什么不同才能合法?

我不是律师(尤其不是版权律师),有几件事可以引导您朝着正确的方向前进,主要归结为复制想法很好,复制任何具体的东西都不是。

  • 进行三消游戏 - 好的
  • 使用 Candy Crunch 中的图像 - 不好
  • 反编译愤怒的小鸟并直接使用他们的物理引擎——不行
  • 玩 Angry Birds 并复制物理引擎 - 好的

所以,如果你写了它并受到启发,那很好,但如果你接受它,那就不好了。另请注意,在反编译方面存在很大的灰色区域,因此如果您想出售您的产品,我不会做任何与此相关的事情。(或者甚至把它放在应用商店)

在不太客观的情况下,不要尝试直接复制某些东西,如果它很受欢迎,您将不会仅仅因为相同而复制成功。找到一个你喜欢的想法并对其进行调整,至少让它更有趣。

Monogame 和 SharpDX(或 XNA 和 DirectX)之间有什么联系,我不能单独使用 monogame 或 SharpDX 吗?

Monogame 可能在 Windows 和/或 XBox 上使用 SharpDX(两者都有 DirectX 作为选项)。SharpDX 是一个外部维护的 DirectX 托管接口。他们没有重做这项工作,而是使用它。您是否需要它取决于您的平台。例如,它在 Android 或 iOS 上是无用的,因为这些平台都不支持 DirectX。

第三,除了 Xamarin 提供的之外,还有更多的跨平台 C# 框架吗?

如果您想回答这个问题,您需要定义框架并且可能是跨平台的。例如,Mono 基本上是唯一使用 .NET Framework 定义的框架的跨平台框架。

于 2013-07-17T22:03:26.787 回答
5

首先它说 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 TigerLee 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,但它并不是一个真正的框架,它是一个完整的游戏引擎。

于 2013-07-18T04:34:46.150 回答