我应该使用.NET/Mono/Tao/OpenTK/...其他吗?
我对众多可供选择的框架感到非常困惑: 我想要跨平台,甚至可以尝试为我的手机制作一个应用程序。可能是游戏,但也可能是其他东西。
- 除了 Xna 之外,我还可以在 Windows Phone 上使用其他东西吗?上述框架之一。
- Tai说它是一个基于Mono的框架。 (至少,当您在 Google 中搜索 Tai 框架时,这是直接的潜台词。) 但在他们的常见问题解答中,它说: “Mono 项目是一项由 Novell 赞助的开放式开发计划,旨在开发 Microsoft .NET 开发平台的开源 UNIX 版本” 这意味着它是 Mono 的完全替代品,对吗?
- OpenTK 是否总是需要 Mono 或 Tao 才能跨平台工作?
谢谢
I'm pretty confused by the multitude of frameworks to choose from:
I would like to be cross platform, possible even try to make an application for my mobile phone. Probably a game, but could be something else.
- Can I use something else apart from Xna with the Windows Phone? One of the aforementioned frameworks.
- Tao says that it is a framework based on Mono. (at least, that's the immediate subtext when you search in Google for Tao framework.)
But in their FAQ, it says:
"The Mono Project is an open development initiative sponsored by Novell to develop an open source, UNIX version of the Microsoft .NET development platform"
Which would mean that it is a complete replacement for Mono, right? - Does OpenTK always need either Mono or Tao to work cross-platform?
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AFAIK,WinPhone7 将仅支持 XNA,即 .NET 类库的 CF 子集,以及 XNA 图形/音频/输入/等 API。
Tai和OpenTK都是与OpenGL等的绑定。它们可以在.NET或Mono上使用,但只能在OpenGL等存在的平台上使用。 OpenTK 基本上是 Tai 的更好版本 - 你不会同时使用两者。
可移植性的关键是像所有大型游戏引擎一样 - 抽象出音频和视频渲染器以及输入系统。该渲染器对象将获取场景图并使用平台的 API 将其渲染到屏幕上。因此,在 WinPhone 和 Xbox 上您可以使用 XnaRenderer;在 Windows 上,您可以使用 XnaRenderer、OpenTKRenderer 或 DirectXRenderer;在 Linux、Mac、iPhone(通过 MonoTouch)、Android(通过 MonoDroid)上,您可以使用 OpenTkRenderer。
您可能想看看开源 C# Axiom3d 图形引擎,它已经做到了这一点。
AFAIK, WinPhone7 will only support XNA, i.e. the CF subset of the .NET class libraries, plus the XNA graphics/audio/input/etc APIs.
Tao and OpenTK are both bindings to OpenGL, etc. They can be used on .NET or Mono, but only on platforms where OpenGL etc. exist. OpenTK is basically a nicer version of Tao - you wouldn't use both.
The key to portability is to do as all big games engines do - abstract out the audio and video renderers, and the input system. This renderer object would take your scene graph and render it to the screen using the platform's APIs. So on WinPhone and Xbox you could use XnaRenderer; on Windows you could use XnaRenderer, OpenTKRenderer or DirectXRenderer; on Linux, Mac, iPhone (via MonoTouch), Android (via MonoDroid) you coudl use OpenTkRenderer.
You might want to look at the open-source C# Axiom3d graphics engine, which already does this.