有没有允许我在Linux上用C#编写游戏的框架?[关闭]


10

我正在寻找类似XNA的替代产品-我不在乎它是2D还是3D引擎。这不是因为我不喜欢Windows或反Microsoft。这是因为我喜欢运行Linux,并且完全在Linux中运行代码(对于C#,我显然使用Mono),并且根本没有任何硬件可以实际支持XNA编程,仅因为我的显卡已经使用了6年。我也没有用于DirectX 10的Windows 7 / Vista CD。

因此,对于游戏开发,我有点陷入困境。但是,我非常喜欢C#,因此不愿意将其作为一种语言删除。

有什么我可以做的吗?


13
我讨厌这么快就选择答案。它没有时间发布更详细或更详细的答案。
AttackingHobo

6
@AttackingHobo如果您要提出更详细的答案,请务必继续。
乔纳森·康奈尔

1
@Jonathan问题是第一个答案通常不是最好的答案。实际上,它通常可能是研究最少或思考最少的。我们有一个首先回答正确的银质徽章的原因-这是一项成就,或者是回答一个死问题的一种奖励。
doppelgreener 2011年

@乔纳森·康内尔(Jonathan Connell)我已经研究了类似的内容已有一个多星期了。我找到了一些不同的候选人,但我想实际使用它们,看看实际上是可行的。只是将问题输入Google并盲目张贴一些链接作为答案不是很有帮助。
AttackingHobo

嘿@AttackingHobo,很高兴您能发布您的候选人,因为5年来,我一直出于消极兴趣寻找类似的东西。从那时起,我只记得Irrlicht包装程序和托管的Ogre包装程序正常工作,我不喜欢它们:Irrlicht有很多错误,但大概可以修复,对于托管的Ogre,最好选择NeoAxis。也许您很幸运地找到了我错过的好东西,毕竟我只是一个人,所以与大家分享它会很棒:)
EnoughTea 2011年

Answers:


9

恐怕在基于C#的跨平台框架中,没有什么东西可以完全替代XNA。Monoxna已经死了,很少有其他跨平台工具使用C#作为其选择的语言。

但是,iOS和Android上即将成为XNA的这个端口看起来非常有前途:ExEn。虽然不知道需求。

由于您使用过“引擎”一词,因此您可能需要更复杂的东西。我记得只有一个便宜的,成熟的C#引擎可以运行在Linux上,并且对硬件的要求很高,它是NeoAxis

但是,如果您的主要目标是2D游戏,那么您可以查看这个小跨平台游戏库:AgateLib。两年前使用它时感觉不错,但有一些越野车,也许现在情况变好了。

无论如何,如果其他任何操作失败,您始终可以通过OpenTKSDL.Net将OpenGL与SDL 一起使用


3
请注意-ExEn由我们自己的Andrew Russel维护!
BlueRaja-Danny Pflughoeft 2011年

1
-1。虽然ExEn似乎有用且有趣,但它不是XNA的Linux兼容替代品。“ 2D或3D引擎”似乎是指图形引擎。
AttackingHobo

MonoGame从事开发已经有好几年了,最近的进展看起来不错,但是回想起我今年春天的经验,我对ExEn充满信心。如果它将具有良好的体系结构,则很有可能用OpenTk替换MonoMac。
2011年

对于2D,甚至可以考虑选择GTK#。
乔治·爱迪生

20

当可以使用端口时,为什么还要寻找替代方法?

“ MonoGame是XNA 4.0 Framework的免费OpenGL实现。它基于出色的Mono编译器系列,并与MonoTouch(iOS),Mono for Android(Android),MonoMac(Mac OS X),Mono Windows和现在是Linux!

我们的目标是允许Windows和Windows Phone 7上的XNA开发人员将他们的游戏移植到iOS / Android / Mac OS X / Windows / Linux,反之亦然,而麻烦最少。”

http://monogame.codeplex.com

https://github.com/mono/MonoGame


2

2个适合软件渲染的库:

  1. SDL(C / C ++)或SDL.NET,因为它们是为硬件构建的,并且如果以后要升级硬件,则可以选择使用OpenGL。SDL用于桌面系统的完全跨平台。
  2. Allegro是另一个老派库,擅长于逐个推动像素,而无需特殊的图形硬件。

从像素推动的角度来看,我认为Allegro的功能更强大,但是我不认为它看到的活动水平与SDL相同,尽管SDL由其作者保持最新,但我认为Allegro的情况要少得多。


-1:Allegro版本5于今年发布,并且有定期更新。所以...我不知道你在说什么。另外,为什么不提及SFML?
Nicol Bolas

顺便说一句,我的经验是在Allegro 4。“而且,为什么不提及SFML?” -我是否有义务提及那里的每个图书馆,包括我没有兴趣/经验的图书馆?为什么Den或Vigil也没有提到SFML?也许是因为他们不想?您不必尝试进一步证明-1的合理性。
工程师

1

您可能要签出ANX:

ANX.Framework是与Microsoft的XNA Framework 4.0源兼容的框架。源代码兼容性意味着,您只需将Microsoft.XNA.Framework的所有命名空间替换为ANX.Framework,就可以将XNA游戏项目“转换”为ANX游戏项目。ANX的优点很简单,就是您可以交换RenderSystem,InputSystem和AudioSystem。通过更换此系统,您将不再受限于使用XNA使用的DirectX9运行游戏。ANX默认带有DirectX10 RenderSystem。DirectX 11,DirectX 11.1和OpenGL 3 RenderSystem当前正在开发中。只需交换名称空间,就可以在Linux等受OpenGL等支持的平台上运行游戏。

〜Codeplex网站:http//anxframework.codeplex.com/

它仍在大量开发中,但是大多数基本XNA功能都已实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.