最全面、最前沿、最专业的游戏研发实战

提供最全面的游戏研发技能分享,让您在最短时间变成高级游戏工程师

查看:0|回复:7

【环境】DirectX 是什么,在游戏开发中常用吗,和其他引擎有什么区别?

 attach_img

4

帖子

5

回复

9

积分
最后登录:
2025-03-29 17:34
注册时间:
2023-11-20 16:54
楼主
  发表于:2025-03-29 21:47:26|查看用户信息

我现在在学directX游戏编程,但是看到市面上还有很多更常用的游戏引擎,而且我也弄不清directX在真正的游戏开发中是否有用武之地以及他的具体用途是什么。

我想问的是directX是作为一种具体的能独立完成游戏编程方面工作的引擎,还是能和其他引擎一起使用的原始层面上的引擎编辑的工具包?

如果用directX 配合微软的visual studio ,不借助其他引擎,能否完成一个游戏编程方面的工作。我问的不是directX 和其他引擎技术上的区别而是用途上的区别,如果有人能解答我万分感谢!


2

帖子

7

回复

8

积分
最后登录:
2025-03-29 20:11
注册时间:
2024-12-05 09:32
1 楼
  发表于:2025-03-29 21:50:37|查看用户信息

刷出这个问题,想起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迭代的,很辛苦的一段时间,但是现在想想,非常难得。许多原理,是光用游戏引擎难以了解到的。


4

帖子

1

回复

4

积分
最后登录:
2025-03-29 18:35
注册时间:
2023-04-19 17:20
2 楼
  发表于:2025-03-29 21:52:25|查看用户信息

DX只是API(关于api定于可以自行搜索)

一定要说类似概念的就是去年AMD的大杀器

AMD Mantle 竞争MS DX

补充点吧 AMD Mantle优势就是跨平台移植游戏方便了 xbox one ps4均是amd apu平台,所以本身在硬件上就是向兼容机PC平台靠拢(xbox的一贯传统了) 所以用AMD Mantle做底层API开发游戏就可以方便的向pc平台移植游戏执行效率高 目前PC平台 用AMD GCN架构的GPU就能运行Mantle,而且amd表示这是个开放平台欢迎 MS和NV


1

帖子

3

回复

4

积分
最后登录:
2025-03-29 18:36
注册时间:
2023-03-12 11:23
3 楼
  发表于:2025-03-29 21:53:14|查看用户信息

游戏是大楼

游戏引擎是吊车、打桩机、挖掘机;

DX、VS是锤子、螺丝刀、冲击钻。

DX、VS可以做各种引擎、也可以直接做游戏、工程量相当于拿锤子、螺丝刀、冲击钻直接盖楼、你要是想建平房的话例外。。。


5

帖子

1

回复

3

积分
最后登录:
2025-03-29 17:44
注册时间:
2023-03-13 23:13
4 楼
  发表于:2025-03-29 21:56:36|查看用户信息

一张图就可以看出DirectX在游戏引擎中的位置

1.jpg

4

帖子

4

回复

8

积分
最后登录:
2025-03-29 18:05
注册时间:
2023-02-26 14:02
5 楼
  发表于:2025-03-29 21:58:24|查看用户信息

以前没有引擎的时候,开发游戏就是直接从图形API开始的。现在你用DirectX也可以不用引擎开发游戏,没有问题。只是比较麻烦。

反正多弄了几个项目后就可以发现每个游戏中都有一些共有的东西,比如渲染啊、动画啊、场景啊、物理啊、音频啊等等等。

把这些东西提取出来,之后的开发不用重新写,而是直接利用了,这也就差不多算个引擎的雏形。

现在的引擎一般是把力图把游戏开发所要写的代码局限在业务逻辑(也就是游戏玩法)上,而不用去理会渲染等等东西。不过这只是理想上的而已,引擎通常要根据不同的项目进行魔改。另外就是要提供足够完善的工具链,方便美术、策划人员的工作,比如提供场景、关卡、动画、材质、曲线等等的编辑器。


3

帖子

3

回复

6

积分
最后登录:
2025-03-29 20:30
注册时间:
2023-03-12 17:23
6 楼
  发表于:2025-03-29 21:59:41|查看用户信息

DX和OpenGL都是多媒体接口

也就是说不使用DX、OpenGL无法使用显存,显卡计算,无法高速刷新画面。

反之,如果是画面十分简单,几乎不需要刷新的游戏,不使用图形接口也是可以完成的。

win32之前的游戏就没有使用DX/OpenGL,也有个别工作室会使用汇编来自己制作显卡的程序。

不过在当今的操作系统上已经不太可能使用汇编来直接访问显卡了。

引擎的概念是运行框架+工具集

自己是可以搭建这个框架的不过不推荐,因为框架需要实时运算,对速度要求比较苛刻,讲究的地方也比较多.费时费力不讨好。


5

帖子

2

回复

4

积分
最后登录:
2025-03-29 21:14
注册时间:
2023-03-13 23:13
7 楼
  发表于:2025-03-29 22:00:23|查看用户信息

DirectX是绝大多数计算机(广义,含各类计算设备)的多媒体接口(API)。

游戏只是多媒体的一种。

因此,可以认为,DirectX是游戏以及其引擎的底层构架。


共 1/1 页

0

帖子

0

回复

0

积分
最后登录:
1970-01-01 08:00
注册时间:
1970-01-01 08:00
会员必须登录才能发布帖子! 点击登录