使用DirectX或OpenGL制作C# 2D矢量图形游戏?

6

我已经有一段时间没有用C#进行游戏编程了,但最近我想重新开始,想听听大家对我应该使用什么配置的意见。

我想使用C#,因为这是我在工作中使用的语言,并且我已经非常熟悉它。我以前曾经使用过DirectX和OpenGL,但主要是在3D方面,现在我想写一个所有图形都是矢量图形的2D游戏,类似于Geometry Wars或旧版的星球大战街机游戏。

我感兴趣的关键点:
•易于使用/实现。
•对内存消耗低。(我计划同时进行很多操作)
•外观好看,我不想让曲线看起来像素化。
•也许还有一些漂亮的效果,比如发光或粒子效果。

我对任何建议都持开放态度,甚至可能会考虑到我没有想过的东西...

提前感谢您!

7个回答

11

+1. XNA在外部有广泛的支持和大量的书籍,可以提供更多支持。 - Neil Knight
此外,如果您使用XNA,您将立即有一个地方可以放置它供人们尝试,只需进行最少的额外努力:XBox Live Indie。与其他出版方法不同,它需要遵循非常少量的功能指南,并且作为交换,您可以吸引大量潜在用户来尝试它(如果您想让人们尝试它!)使用XNA还可以获得比仅图形API更多的内容。您可以获得声音、输入、文件访问等所有制作游戏时需要考虑的内容。 - EdgarVerona

3

+1 特别是 XNA 不再得到积极开发的情况下,SlimDX 似乎是一个非常好的开源替代品。 - Seph

1

说实话,你使用什么并不重要。OpenGL、SlimDX或XNA。它们的复杂程度都差不多(或者也许不是这样)。


1
你可以考虑使用Axiom引擎,它是Ogre3D的C#移植版。它足够高级,可以通过XNA或OpenGL渲染图形,而无需对代码进行大量修改。它还可以处理键盘和鼠标输入(通常是分开的——例如,在Windows上通过DirectInput或在Linux上通过SDL)。

Axiom不再继续开发。 - Jan 'splite' K.

1
你也可以考虑使用基于OpenGL的TAO Framework,它非常不错。但是你必须自己编写2D引擎。它还可以在Mono上运行!

1
据我所知,这已经被OpenTK取代了。 - Drew Noakes

1

我用C#包装器创建了我的OpenGL引擎,因为我也非常喜欢C#。可惜托管语言在处理图形方面非常慢,所以我总是用C++编写我的OpenGL部分,将其编译为DLL,并通过Interop从C#中获取它。如果你碰巧不喜欢DirectX,我建议你远离XNA。我认识的每个人对它都非常失望,并回到了C++(OpenGL) + C#。


1

既然您已经了解了C#,我建议使用XNA或Unity。虽然还有更快的语言和中间件,但它们可能已经足够快了。这两个框架都具备您所需的必要功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接