0

好吧,我研究了很多,得出了一个关于 API 的基本结论:似乎学习的 API 选择没有那么重要,只要你真的可以学习 3D 编程,或者看起来是这样。

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

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

我用 XNA 做了一些 3D 实验,实际上只是得到了基本的想法。

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

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

嗯,我喜欢游戏,并且喜欢游戏编程,尤其是 AI 和游戏逻辑。

我现在想转向 3D 游戏开发,尽管我真的不想在图形编程和其他东西上工作太多,但我想拥有知识(嗯,我想知道发生了什么以及如何要利用这一点:如果我想为 3D 环境编写一些好的 AI,我需要很好地了解如何处理它)。

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

我想听听您对我是否应该使用 DirectX 或 SDL/OpenGL/OpenAL 之类的东西的意见我没有任何反对意见我只是想知道对于想要专注于游戏和游戏逻辑的一些新 AI 的人来说,哪个会更好。我将在游戏中使用 C++/Python,在某些工具等中使用一些 C#/XML。好吧,我基本上将在 Windows 环境中/为 Windows 环境开发东西(不反对 linux 或其他东西 - 我将 linux 用于我使用的一些软件的一些 AI 研究)。

好吧,我希望我把我的问题说清楚了,并提前感谢任何愿意提供帮助的人。

4

2 回答 2

3

正如这里和@leppie 所说,OpenGL 是跨平台的,因此您必须学习使用一种适用于当今大多数平台的框架。

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

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

总而言之,您要问的是一场已经持续多年的辩论(这里这里仅举几例)。

编辑:

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

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

于 2012-07-19T05:34:54.367 回答
1

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

于 2012-07-19T11:07:04.757 回答