Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于游戏开发的图形API_Api_Graphics_3d - Fatal编程技术网

用于游戏开发的图形API

用于游戏开发的图形API,api,graphics,3d,Api,Graphics,3d,嗯,我已经研究了很多,并得出了一个关于API的基本结论:似乎学习API的选择并不重要,只要你真的能学习3D编程,或者看起来是这样 我的背景/当前学习领域: 我在编程、算法和面向对象设计方面有着坚实的背景 我制作了一些2D游戏:使用XNA(C#)和allegro 5(C++),我甚至为一些2D游戏编写了一个小框架,我必须制作一个课程(使用allegro)来加速我的游戏制作过程,因此我非常熟悉游戏逻辑和游戏循环结构的基本概念 我用XNA做了一些3D的实验,实际上刚刚得到了基本的想法 我对线性代数和微

嗯,我已经研究了很多,并得出了一个关于API的基本结论:似乎学习API的选择并不重要,只要你真的能学习3D编程,或者看起来是这样

我的背景/当前学习领域: 我在编程、算法和面向对象设计方面有着坚实的背景

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

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

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

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

嗯,我喜欢游戏,对游戏编程有很多乐趣,特别是AI和游戏逻辑

我现在想转向3D游戏开发,尽管我不想在图形编程和其他方面做太多的工作,但我想拥有这些知识(好吧,我想知道发生了什么,以及如何利用这些知识:如果我想为3D环境编写一些好的AI,我需要有一个好主意如何处理它)

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

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

我希望我能把我的问题说清楚,并提前感谢所有愿意提供帮助的人。

正如@leppie所述,OpenGL是跨平台的,所以你必须学会使用一种框架,这种框架可以在今天的大多数平台上工作

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

另一方面,DirectX是在Windows环境中运行的东西。它似乎也是许多游戏开发者的首选工具,而这似乎正是你所追求的。使用DirectX还可以利用VisualStudio(我认为它是我使用过的功能非常强大的IDE,如果不是最强大的话),如图所示

总而言之,你所要求的是一场持续多年的辩论(仅举几个例子)

编辑:

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

你可以做的是试着浏览一些代码,或者试着用你自己的,用这两个框架做同样的事情,然后选择一个更简单的。

正如@leppie所说的,OpenGL是跨平台的,所以你必须学会使用一个框架,这个框架可以在今天的大多数平台上工作

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

另一方面,DirectX是在Windows环境中运行的东西。它似乎也是许多游戏开发者的首选工具,而这似乎正是你所追求的。使用DirectX还可以利用VisualStudio(我认为它是我使用过的功能非常强大的IDE,如果不是最强大的话),如图所示

总而言之,你所要求的是一场持续多年的辩论(仅举几个例子)

编辑:

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


你可以做的是,试着浏览一些代码,或者试着想出你自己的代码,使用这两个框架做同样的事情,然后选择一个更简单的。你可能需要记住的是:据我所知,OpenGL(如果我没有完全错误的话,它毕竟代表开放图形库)只是为了图形。另一方面,DirectX还通过各种控制器提供声音、音乐、输入等功能,因此,如果跨平台不是您的主要问题,并且您希望专注于逻辑和人工智能,DirectX可能会帮助您快速启动某些功能,而使用OpenGL(我不打算一般地敲打)然后你可能需要