我想开发一个跨平台应用程序(至少可在Windows 7,Linux上运行),并且我想只使用C#,避免混合C ++代码(也由于Interop问题)。
我已经尝试过OpenTK,但它缺乏文档,并且似乎不太稳定(使用Mono时,有时会使我崩溃X服务器!)...也许我错了,但我感觉它不是一个长期受支持的库,它即将消亡...
是否有.NET / Mono的良好稳定的OpenGL包装器?
我知道Silverlight在Mono上有一个移植版(Moonlight),但我读到它的性能很差。
谢谢。
虽然有irrlicht库可用,但我们决定在项目中使用OpenTK。尽管最新版本(1.0)存在一些缺点,但它在Win7上非常稳定,并且在Linux上也可以使用。
您可以使用SDL.NET,它是用于Simple DirectMedia Layer的.NET绑定库,该库用于创建快速的2D游戏。
另一种方法可能是GTK#,但我不知道它的图形性能如何。
我已经有一段时间没有研究使用.NET进行跨平台游戏开发了,但是当我考虑这样做时,Unity游戏开发工具看起来非常吸引人。我猜想在底层它们正在使用OpenGL,而我不确定Unity在提供自己的图形API方面处于什么地位,或者更多地是为游戏开发提供一套集成工具。如果你以前没有研究过它,那么值得一看。
如果你真的需要3D,我只会考虑OpenGL。你看过Cairo吗?另外,据我所知,System.Drawing在mono + gtk上和在.Net上的Windows一样好用。
如果你有兴趣,可以尝试Moonlight.Desktop,稳定版本与silverlight 2.0控件相当兼容,beta版支持silverlight 3.0和4.0中的一些控件。我已经在Linux和Windows上使用mono制作了许多小应用程序,但是需要手动修改构建脚本才能构建项目。
除非你有理由不这样做,否则我建议你在Windows上尝试制作一个基本的silverlight桌面应用程序,并为Linux/mono保留一个gtk# shell,同时始终保持核心(模型+控制器)程序集在两个平台上构建。
Csgl非常稳定...
...因为它已经不再继续开发。
我真的推荐TAO Framework。它是跨平台的(Linux、Mac OS、Windows),而且仍在继续开发。它非常庞大,具有很多特性。
Irrlicht和(mono-)Xna都是为了编写游戏而设计的。