用于游戏开发的图形API

时间:2012-07-19 05:17:40

标签: api graphics 3d

嗯,我已经研究了很多并且已经对API做出了基本的结论:因为看起来API的学习选择并不重要,只要你能真正学习3D编程,或者看起来似乎

我的背景/当前研究领域: 我在编程,算法和面向对象设计方面有一些扎实的背景。

我制作了一些2D游戏:使用XNA(C#)和allegro 5(C ++),我甚至为一些2D游戏编写了一个小框架,我必须为一门课程(使用allegro)加速我的游戏制作过程,所以我非常熟悉游戏逻辑和游戏循环结构的基本概念。

我使用XNA进行了很少的3D实验,实际上得到了基本的想法。

我对线性代数和微积分有一个基本但坚实的知识。

我目前正在研究人工智能,机器学习(更具体地说,如果有人想知道:使用Markov Logic为阅读系统提取关系数据库的规则),现在就在这个领域做一些研究。

嗯,我喜欢游戏,并且在游戏编程尤其是人工智能和游戏逻辑方面有很多乐趣。

我现在想转向3D游戏开发,即使我真的不想在图形编程和东西上做太多工作,我也想知道(好吧,我想知道会发生什么)以及如何利用这一点:如果我想为3D环境编写一些优秀的AI,我需要知道如何处理它。)

我刚开始(今天)从我读过的内容中读取Direct3D(9和11)的示例和文档,如果我要学习DirectX,如果低硬件兼容性和XP用户不是,我应该去11我的目标。

我希望你对我是否应该使用DirectX或类似SDL / OpenGL / OpenAL的看法我没有什么可以反对的我只是想知道对于那些想要专注于一些新的游戏AI的人来说哪个更好游戏逻辑。我将在游戏中使用C ++ / Python,对某些工具使用C#/ XML等。好吧,我基本上是要开发/用于Windows环境的东西(没有任何针对Linux或其他东西 - 我使用linux进行一些我使用的软件的AI研究。)

嗯,我希望我能清楚地提出问题,并提前感谢任何愿意提供帮助的人。

2 个答案:

答案 0 :(得分:2)

正如here和@leppie所述,OpenGL是跨平台的,因此您必须学会使用一个框架,该框架现在可以在大多数平台上运行。

虽然我从未真正使用过OpenGL,但从开源项目的经验来看,很难获得好的文档,尽管你很可能会在网上找到大量的例子。所以你可能很难找到好的文档(再次,基于我以前使用过的开源项目)。

另一方面,DirectX是在Windows环境中运行的东西。它似乎也是许多游戏开发者的首选工具,这似乎是你所追求的。使用DirectX还可以使用Visual Studio(在我看来,这是我曾经使用过的非常强大的IDE),如here所示。

总而言之,你所提出的问题一直是一场多年来的辩论(herehere仅举几例)。

编辑:

与编程世界中的大多数事情一样,如果您尝试列出给定的事物,某个平台会给您带来优势。不同的列表需要不同的平台/框架等。我从来没有真正搞砸过这些技术,但是,我认为微软有时会倾向于使开发人员使用他们的产品的生活比使用开源产品的生活稍微容易一些。

你可以做的是尝试通过一些代码,或尝试提出自己的代码,使用这两个框架做同样的事情,然后选择更容易的代码。

答案 1 :(得分:1)

你可能想要记住的东西:据我所知,OpenGL(毕竟,如果我没有咆哮完全错误的树,它代表开放图形库)只是用于图形。另一方面,DirectX还提供声音,音乐,通过各种控制器等输入的东西,所以如果跨平台不是你的主要问题,并且你想专注于逻辑和AI,DirectX可能会帮助你获得一些东西在相当快的速度下工作,而使用OpenGL(我并不打算一般),你可能需要寻找声音和输入API。