我一直在学习C#。我基本上来自非开发背景(意味着我不知道不同编程工具的实际工作)。我刚开始学习Monogame,但很少有事情让我困惑。
首先它说Monogame是XNA的开源实现。这是什么意思? - 它使XNA开源 - 或者获取XNA的功能并实现它本身但具有与XNA相同的函数名称等 - 其他
是否允许合法?如果是,我可以在任何应用程序商店中复制任何应用程序并制作我自己的版本吗?什么是合法的呢?
其次,当我安装Monogame时,还安装了SharpDX。当我搜索它时,我发现SharpDX是管理DirectX(我从未在DirectX中工作过)。 Monogame和SharpDX(或XNA和DirectX)之间有什么联系,我不能单独使用monogame或SharpDX?管理DirectX意味着什么?
第三,除了Xamarin提供的框架之外,还有更多的跨平台C#框架吗?我找不到更多。
答案 0 :(得分:7)
这是什么意思?
Monogame是XNA的另一个实现(相同的接口,不同的基础)
这是允许的还是合法的吗?
我不知道XNA的术语,但通常微软允许这种重复(见原始的Mono)。如果您对此感兴趣,可以对XNA许可进行研究。
我可以在任何应用程序商店中复制任何应用程序并制作我自己的版本吗?什么是合法的呢?
我不是律师(尤其不是版权律师),有几件事可以引导你朝着正确的方向前进,主要是归结为复制创意很好,复制任何具体的东西都没有。
所以,如果你写了它并且受到了启发,这很好,但是如果你认为它不好。另请注意,在反编译方面存在明显的灰色区域,因此如果您想要销售产品,我不会做任何相关的事情。 (甚至把它放在应用程序商店)
在一个不太客观的注意事项上,不要试图直接复制某些东西,如果它很受欢迎,你就不会仅仅通过相同来复制那个成功。找到你喜欢的想法并调整它以使其更有趣。
Monogame和SharpDX(或XNA和DirectX)之间有什么联系,我不能单独使用monogame或SharpDX?
Monogame可能在Windows和/或XBox上使用SharpDX(两者都有DirectX作为选项)。 SharpDX是DirectX的外部维护管理界面。他们使用它而不是重做那项工作。是否需要它取决于您的平台。例如,它在Android或iOS上没用,因为这两个平台都不支持DirectX。
第三,除了Xamarin提供的框架之外,还有更多的跨平台C#框架吗?
如果您想要回答这个问题,您需要定义框架并可能跨平台。例如,通过使用框架的.NET Framework定义,Mono基本上是唯一的跨平台框架。
答案 1 :(得分:5)
首先它说Monogame是XNA的开源实现。这是什么意思? - 它使XNA开源 - 或者采用XNA的功能并实现它本身但具有与XNA相同的功能名称等 - 其他
让我们从头开始吧。要完全回答您的问题,您需要了解一些历史。
首先,XNA是Microsoft提供的一组便于视频游戏开发的工具。 XNA基于.NET Framework,其版本可在Windows,Windows Phone和XBox上运行。
MonoGame是XNA的开源实现,其目标是使其成为真正的多平台。它允许现有的XNA开发人员使用几乎相同的代码将游戏移植到许多其他平台。因此,虽然开发人员过去仅限于微软平台,但他们现在也可以在iOS,Android,Mac OS X,Linux,Windows 8商店,Windows Phone 8,PlayStation Mobile和OUYA上部署游戏。
要意识到的另一件重要事情是将来Microsoft is no longer supporting XNA。即使对于微软平台,MonoGame也已成为XNA开发人员非常有吸引力的替代品。
这是允许的还是合法的吗?
这是一个很好的问题。虽然从表面上看似乎是潜在的危险场所,而且我不是律师,但似乎有充足的证据证明微软对它没有任何意义。
例如,Skulls of the Shogun was developed using MonoGame,由Microsoft发布并在Xbox,Windows 8和Windows Phone 8上发布。
还有一些其他示例,例如TY the Tasmanian Tiger和Lee Stott (Microsoft UK Evangelist) talking about MonoGame。
我可以在任何应用程序商店中复制任何应用程序并制作我自己的版本吗?什么是合法的呢?
没有。您不能只复制现有的应用程序。如果您这样做,您将很快陷入版权和商标法侵权行为。即使您创建的游戏中包含太多类似于现有游戏的游戏,也会让人感到不安,您可能会发现自己陷入困境。相信我,我以前必须处理这个问题并且它并不好玩。
也就是说,如果你有一些原创性和创造力,版权法不能阻止你制作自己的游戏。
“版权不保护游戏的概念,名称或标题,或播放它的方法或方法。版权也不保护开发,推销,参与的任何想法,系统,方法,设备或商标材料,一旦游戏被公开,版权法中的任何内容都不会阻止其他人根据类似的原则开发另一种游戏。版权仅保护作者在文学,艺术或音乐形式中表达的特定方式。 - http://www.copyright.gov/fls/fl108.html
如果您认为自己可能存在风险,我建议doing some reading。
其次,当我安装Monogame时,还安装了SharpDX。当我搜索它时,我发现SharpDX是管理DirectX(我从未在DirectX中工作过)。 Monogame和SharpDX(或XNA和DirectX)之间有什么联系,我不能单独使用monogame或SharpDX?管理DirectX意味着什么?
DirectX是一个用于处理与Microsoft平台上的游戏开发相关的任务的API。
SharpDX是一个位于DirectX之上的层,允许它在C#等托管语言中使用。
OpenGL是一个用于处理与非Microsoft平台上的游戏开发相关的任务的API。
OpenTK是一个位于OpenGL之上的层,允许它在C#等托管语言中使用。
MonoGame在Microsoft平台上使用SharpDX,在非Microsoft平台上使用OpenTK。
(实际上,这不是那么简单,但你明白了)
第三,除了Xamarin提供的框架之外,还有更多的跨平台C#框架吗?我找不到更多。
Xamarin在多平台C#领域几乎占据了市场。我能想到的唯一另一个选择是Unity,但它不是一个真正的框架,它是一个完整的游戏引擎。