刷出这个问题,想起4年前我也问过学长类似的问题,便不请自来。
相关:游戏研发技术人员
首先说明,我没用过DirectX,只用过OpenGL,但相信题主已经在听说DirectX的同时也听说过OpenGL了。因此以下是以OpenGL的角度说的,DirectX存在一些细节差异。
回答题主的问题。
1、DirectX 是什么?
OpenGL,直译过来就是,开放的图形库(Open Graphic Library)。如其名,它的作用,就是绘制图形,除此之外都不做。
OpenGL是跨平台的,windows、Mac、Linux、iOS、Android等等大家都能用。但所谓泛而不精,微软为了更好的性能,开发出了一套“专门适配windows平台的OpenGL",名为DirectX。同理,苹果在今年也开发出了一套“专门适配Mac和iOS平台的OpenGL”,名为Metal 3D。
2、在游戏开发中常用吗?
游戏开发中,常用,或者说必用。
游戏开发是什么?无非就是根据一定的逻辑,给予玩家一定的反馈。这种反馈,大部分是视觉上,例如按钮点下出现的阴影,释放技能产生的特效。也可以是听觉的反馈(音乐音效),触觉的反馈(手柄或手机的震动)等等。那么用DirectX(或其他图形库)去实现视觉上的反馈,完成游戏,当然是最常用的。
3、如果用directX 配合微软的visual studio ,不借助其他引擎,能否完成一个游戏编程方面的工作。(和其他引擎有什么区别?)
这两个其实是一个问题。
由2的回答,题主应该知道了,单纯用DirectX可以完成视觉上的反馈,如果自己再加上一些音乐音效播放的库,通过代码逻辑的迭代,便足以组装出一个游戏了。
但,游戏是仅仅这么简单么?
也许你要模拟一个大雪的场景,你可能用DirectX画出一个雪花,然后让他们在屏幕的随机坐标出现,并设置一定的速度让他们缓缓落下。完成并调整好这个效果,你可能需要一天的时间,但如果你知道,这叫做粒子系统,并且在大部分游戏引擎中已经实现,那么这只需要一分钟的时间即可完成。
如果把游戏引擎比作绘画,那其中部件可大致分为三类:
第一类,相当于颜料中的三原色,DirectX等图形库,OpenAL等音乐库,键盘、触摸屏或手柄的输入控制,他们是最基础的组成部分。
第二类,相当于形形色色的颜料,如前面提到粒子系统、如精灵、视差层、地图刷等部件,虽然它们可通过三原色调制出来,但由于实在过于常用,便集成进了游戏引擎里。
第三类,相当于颜料盘、画笔等等,它用于辅助游戏的完成。例如事件分发系统、定时器系统等,可简化在编程过程中的代码逻辑。
游戏引擎是一套完整完善的游戏开发解决方案,而DirectX,是一个图形处理库,属于游戏引擎中的一部分。
私货:
看题主的意思,我猜可能是打算不使用游戏引擎,自己开发一款游戏。我即不赞成也不反对,这可能会花费很多时间,并且对于刚接触游戏开发来说,难度不小。但这会是非常宝贵的经验。
我当年做的第一个游戏,也是自己完成,并且坚持不使用任何游戏引擎,连DX都没用,全用Windows API迭代的,很辛苦的一段时间,但是现在想想,非常难得。许多原理,是光用游戏引擎难以了解到的。