好吧,我已经研究了很多,并得出了一个关于API的基本结论:似乎学习API的选择并不那么重要,只要你真的能学习3D编程,至少看起来是这样。
我的背景/当前研究领域:我在编程、算法和面向对象设计方面有扎实的背景。
我做了一些2D游戏:使用XNA(C#)和allegro 5(C++),我甚至为一些2D游戏写了一个小框架,我必须为课程(使用allegro)创建一个小框架来加快我的游戏制作过程,所以我非常熟悉游戏逻辑和游戏循环结构的基本概念。
我已经用XNA做了几个3D实验,实际上只是得到了基本的想法。
我对线性代数和微积分有基本的,但扎实的知识。
我目前正在学习人工智能,机器学习(更具体地说,如果有人想知道的话:在阅读系统中使用马尔可夫逻辑为关系数据库提取规则),目前正在这一领域做一些研究。
嗯,我喜欢游戏,对游戏编程有很多乐趣,特别是AI和游戏逻辑。
我现在想转到3D游戏开发,尽管我真的不想在图形编程之类的东西上做太多工作,但我想要有知识(嗯,我想知道发生了什么,以及如何利用这一点:如果我想为3D环境编写一些好的AI,我需要有一个好的想法来处理它)。
我(今天)刚刚开始阅读Direct3D (9和11)的例子和文档,如果我要学习DirectX,如果低硬件兼容性和XP用户不是我的目标,我应该选择11。
我想听听你的意见,我是应该使用DirectX,还是像SDL/OpenGL/OpenAL这样的东西,我没有什么可反对的,我只是想知道,对于那些想要专注于游戏和游戏逻辑的新AI的人来说,哪一个会更好。我将在游戏中使用C++/Python,在一些工具中使用一些C#/XML等等。嗯,我基本上是要在windows环境中开发东西(不是针对linux或其他什么-我使用linux进行一些AI研究,我使用的一些软件)。
好吧,我希望我的问题已经说清楚了,并提前感谢任何愿意提供帮助的人。
发布于 2012-07-19 13:34:54
正如here和@leppie所说的那样,OpenGL是跨平台的,所以你必须学会使用一种框架,它可以在今天的大多数平台上工作。
尽管我从未真正使用过OpenGL,但从我对开源项目的经验来看,很难获得好的文档,尽管您很可能会在网上找到大量的示例。因此,您可能很难找到好的文档(同样,基于我以前使用过的开放源码项目)。
另一方面,DirectX是在Windows环境中运行的东西。它似乎也是许多游戏开发人员的首选工具,这似乎就是你想要的。使用DirectX还可以开发Visual Studio (在我看来,这是我使用过的功能非常强大的集成开发环境),如here所示。
总而言之,你所问的是一场已经持续多年的争论(here和here只是其中的几个例子)。
编辑:
就像编程世界中的大多数事情一样,如果你试图做一系列给定的事情,某个特定的平台会给你带来优势。不同的列表需要不同的平台/框架,等等。我从来没有真正接触过这些技术,但是,我认为微软有时倾向于让使用他们产品的开发人员的生活比使用开源产品的开发人员稍微容易一些。
您可以尝试通过一些代码,或尝试提出您自己的代码,使用两个框架做相同的事情,然后选择更简单的一个。
发布于 2012-07-19 19:07:05
你可能要记住一件事:据我所知,OpenGL (毕竟,它代表开放图形库,如果我没有完全弄错的话)只是针对图形的。另一方面,DirectX还提供声音、音乐、通过各种控制器输入等内容,所以如果跨平台不是你的主要问题,而你想专注于逻辑和AI,DirectX可能会帮助你相当快地开始工作,而使用OpenGL (我不是在一般情况下敲门),你可能需要寻找声音和输入AI。
https://stackoverflow.com/questions/11554344
复制相似问题