哪些C#库可用于支持游戏开发?[关闭]


58

由于游戏基于许多不同的子系统,例如图形(DirectX,OpenGL等),声音(OpenAL,Ogg Vorbis等)或物理(碰撞等),因此您知道哪些有用的库是有用的C#中的游戏开发,它们提供什么好处?

Answers:


63

图形/声音

  • XNA DirectX9上的高级包装。使您可以快速启动并运行。支持PC,Xbox360和Windows Phone7。支持Xact音频以及自己的SoundEffect API。
  • SlimDX DX9 / 10/11上的底层包装。如果它在DX SDK中,则将其包装在此处。
  • OpenGL / AL上的OpenTK包装器。
  • SDL.net受欢迎的SDL库的端口。

引擎

  • WaveEngine基于组件的游戏引擎架构,C#API,2d和3d物理引擎,精美的视觉效果,跨平台支持Android,Linux,Mac,iOS和Windows,高级布局系统等等。
  • NeoAxis 3D引擎支持NVIDIA PhysX物理引擎,C#绑定,支持WPF和Windows窗体,丰富的工具选择,如地图,对象,模型,材质,地形编辑器,使用Chromium的游戏浏览器,带有导航网格的寻路等。
  • TorqueX XNA的2D / 3D引擎。好的编辑支持,车库游戏在一段时间的忽视之后最近重新投资了引擎。
  • 具有C#绑定的truevision 3d C ++游戏引擎
  • 公理用C#重写Ogre。支持众多支持的渲染API。
  • Unity是一个C ++图形/游戏引擎,支持C#中的游戏脚本编写
  • AngelXNA EALA开源角度原型框架的移植

物理

  • Farseer Farseer是流行的2D物理引擎,支持.net(桌面),compact(xbox)和micro(silverlight)。
  • 抖动是一个相对较新的3D物理引擎,比其完成要好得多。
  • Box2Dx Box2D的直接端口
  • Box2D.XNA Box2D的另一个端口,用于XNA。比Box2Dx更新
  • 吉格利布
  • BulletX Bullet的c#端口似乎已被废弃。

1
很棒的概述,这正是我想要的答案!
迈克尔·克莱门特

2
因为XNA是一个庞大的社区,所以我想将Henge3D添加到物理中,将Sunburn添加到Graphics中,并将sgMotion和XNAnimation添加到Graphics(或动画)中。
克里斯·里德诺

车库游戏不再支持TorqueX。
马库斯

3
自首次发布此答案以来,多年来,Microsoft已停止支持XNA。该库可能不再是一个好主意,请改用MonoGame。
鸣叫

10

显然有微软本身 提供的XNA :http : //creators.xna.com/en-US/使用XNA制作的游戏在Windows上(通过Creators club)在Xbox360上工作。我认为这非常适合在快速的游戏开发中动手做。我还没完全适应XNA,所以我还不能判断。但是,从旁观的角度看,这似乎是切成薄片以来最好的东西。当然,您无法做到所有。但是您可以制作出具有独立质量甚至更高质量的快速原型和工作游戏。

其他库是SlimDX- http ://slimdx.org/ ,如果您不想使用XNA,可能有人说它更接近于metal / reality。因此,非常适合进行快速原型制作-特别是如果您的主要游戏开发是C或C ++。另外,非常适合做工具。


3
SlimDX还具有与WPF的Direct3D互操作支持兼容的优势,该支持(取决于您开发的游戏类型)可能非常有用。WPF / XNA互操作尚无官方支持,尽管我相信有些人设法使两者协同工作,但该过程很容易出错且非常脆弱。
Mike Strobel

我应该补充一点,就是要努力使XNA与Mono一起跨平台工作(请参见MonoXNA),这可能会影响使用哪个框架的决策。
Mike Strobel

@Mikw斯特罗贝尔:+1,但请记住,一个大卖点XNA是部署/出售给360和所有的WPF / XNA的东西,我已经看到了将不会在360运行的能力
史蒂芬·埃弗斯

4

还有C库SDL到.NET,SDL.NET的端口。我个人将在C#中使用XNA,因为它只是一个组合良好的库,非常可定制并且对初学者也很友好。


XNA是初学者友好的,但是现在(尤其是)它处于不断变化的状态。4.0将会有许多重大变化,这让人讨厌跟上脚步。
史蒂文·埃弗斯

4

免责声明:由于我个人参与开发此引擎,因此以下建议可能存在偏差,也可能不会存在偏差。

对偶性是所见即所得编辑器系统附带的可扩展2D游戏引擎。快速概述:

  • 它是基于插件的。您无需编写新的应用程序,而是编写包含所有代码的插件。
  • 插件功能可从编辑器重新加载运行时。允许快速迭代。
  • 开源,完全基于C#编写,基于OpenTK / OpenGL / OpenAL
  • 相对较新(2-3年),仍在开发中-但已经可用
  • 处理渲染,音频,用户输入,物理,序列化,资源和对象管理
  • 许多帮助程序类和默认组件可帮助您入门。

如果您想尝试一下,可以直接下载最新的二进制发行版,也可以使用GitHub源代码自己进行编译。要获取更多信息,访问信息网站和社区论坛可能会有所回报。只需点击我上面包含的信息网站上的链接即可。

编辑环境的屏幕截图。


通常最好是公开您参与推荐的任何软件的开发。
乔许

@JoshPetrie您可能是对的。我不确定在此特定情况下是否重要-无论如何,我现在添加了免责声明。:)
亚当



2

迄今为止,最大的(也是最成熟的)是XNA框架。您甚至可以利用XNA来构建工具集。好处是您拥有一个框架,该框架包含打包在一个程序包中的所需库(物理,声音,图形),而且最大的好处是,如果您做得非常好,可以尝试将其泵入XBLA。



2

陶框架(本书中使用我发现非常有用:C#游戏编程严肃游戏创作),它封装了OpenGL和其他许多有用的游戏编程功能(通过C#访问)是值得一试。但是,它已被另一个工具中提到的Open Toolkit库(OpenTK)取代。我觉得这本书使用Tao框架而不是OpenTK是很奇怪的,因为考虑到Tao已有2年的时间没有使用(而且这本书是全新的)。尽管如此,还是值得检查的有用框架。


1

不完全是您要求的,而是Unity是一个支持c#脚本编写的游戏引擎



0

我发现SFML.Net是一个不错的选择,这是我个人使用的。但是请注意,请勿使用网站上提供的二进制文件,而应从SVN获取最新信息。该站点版本已过时。


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.