XNA、DirectX和Monogame、SharpDX之间的区别



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

首先,它说Monogame是XNA的开源实现。这是什么意思?-它使XNA开源-或者采用XNA的特征并自己实现它,但使用与XNA相同的函数名等-任何其他

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

其次,当我安装Monogame时,也安装了SharpDX。当我搜索它时,我发现SharpDX是由DirectX管理的(我从未使用过DirectX)。Monogame和SharpDX(或XNA和DirectX)之间的联系是什么?我不能单独使用一夫一妻制或SharpDX吗?托管DirectX是什么意思?

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

这是什么意思?

单机游戏是XNA的另一种实现方式(相同的界面,不同的基础)

这是允许的和合法的吗?

我不知道XNA的术语,但通常微软允许这种类型的复制(参见原始的Mono)。如果这与您有关,您可以对XNA的许可证进行研究。

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

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

  • 做一场比赛3游戏-好的
  • 使用Candy Crunch的图片-不好
  • 分解愤怒的小鸟并直接使用它们的物理引擎-不好
  • 玩《愤怒的小鸟》并复制物理引擎-好的

所以,如果你写了它并受到了启发,那很好,但如果你接受了它,那就不好了。还要注意的是,在反编译方面有一个很大的灰色地带,所以如果你想销售你的产品,我不会做任何与此相关的事情。(甚至放在应用商店里)

不那么客观的一点是,不要试图直接复制一些东西,如果它很受欢迎,你就不会仅仅通过保持原样来复制成功。找到一个你喜欢的想法,并对其进行调整,至少使其更有趣。

Monogame和SharpDX(或XNA和DirectX)之间的联系是什么?我不能单独使用一夫一妻制或SharpDX吗?

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

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

如果你想得到这个问题的答案,你需要定义框架,可能还需要跨平台。例如Mono基本上是唯一一个使用.NET框架定义的跨平台框架。

首先,它说Monogame是XNA的开源实现。这是什么意思-它使XNA开源,或者采用XNA的功能并自行实现,但使用与XNA相同的函数名等

让我们从头开始。要想完全回答你的问题,你需要了解一些历史。

首先,XNA是微软提供的一套工具,用于促进视频游戏的开发。XNA基于.NET Framework,其版本可在Windows、Windows Phone和XBox上运行。

MonoGame是XNA的开源实现,其目标是使其成为真正的多平台。它允许现有的XNA开发人员使用几乎相同的代码将他们的游戏移植到许多其他平台。因此,尽管开发者过去只能在微软平台上进行开发,但他们现在也可以在iOS、Android、Mac OS X、Linux、Windows 8 Store、Windows Phone 8、PlayStation Mobile和OUYA上部署游戏。

需要意识到的另一件重要的事情是,微软在未来不再支持XNA。MonoGame已经成为XNA开发人员的一个非常有吸引力的替代品,甚至是微软平台。

这是允许的和合法的吗?

这是个好问题。虽然从表面上看,这可能是一个潜在的危险地带,而且我不是律师,但似乎有大量证据表明微软对此没有意见

例如,《幕府将军的头骨》是使用微软出版的MonoGame开发的,并在Xbox、Windows 8和Windows Phone 8上发布。

还有其他一些例子,比如塔斯马尼亚虎TY和微软英国福音传道者Lee Stott谈论MonoGame。

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

没有。你不能只复制一个现有的应用程序。如果你这样做,你很快就会触犯版权法和商标法。即使你创建了一个与现有游戏有太多相似之处的游戏,它也会让人们感到不安,你可能会发现自己陷入了一些麻烦。相信我,我以前不得不处理这个问题,这并不有趣。

也就是说,如果你有一些独创性和创造性,版权法不能阻止你制作自己的游戏。

"版权不保护游戏的理念、名称或标题,或游戏的方法。版权也不保护开发、销售或玩游戏所涉及的任何理念、系统、方法、设备或商标材料。一旦一款游戏公开,版权法中没有任何规定阻止其他人基于类似原则开发另一款游戏。版权仅保护作者以文学、艺术或音乐形式表达的特定方式http://www.copyright.gov/fls/fl108.html

如果你认为你可能有危险,我建议你读一些书。

其次,当我安装Monogame时,也安装了SharpDX。当我搜索它时,我发现SharpDX是由DirectX管理的(我从未使用过DirectX)。Monogame和SharpDX(或XNA和DirectX)之间的联系是什么?我不能单独使用一夫一妻制或SharpDX吗?托管DirectX是什么意思?

DirectX是一种API,用于处理与Microsoft平台上的游戏开发相关的任务。

SharpDX是一个位于DirectX之上的层,允许它在C#等托管语言中使用。

OpenGL是一种API,用于处理与非Microsoft平台上的游戏开发相关的任务。

OpenTK是一个位于OpenGL之上的层,允许它在C#等托管语言中使用。

MonoGame在Microsoft平台上使用SharpDX,在非Microsoft平台上则使用OpenTK。

(事实上,这并没有那么简单,但你明白了)

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

Xamarin几乎垄断了多平台C#领域的市场。我唯一能想到的其他选择是Unity,但它并不是一个真正的框架,而是一个完整的游戏引擎。

最新更新