游戏开发的过程大致是怎么样的?

其实,游戏如何制作应该也能想象出来。接下来由浅入深解释一下。

比如2048小游戏,和大部分软件是没有区别的,使用非游戏引擎也能做的出来。关键技术只有两点:

1、根据数据,显示(专业名词叫做渲染)对应数字的图片。

2、需要移动位置时,按固定帧率(比如每秒60次)刷新图片位置,做出动画效果。

只要有这两点原理,那么2D动画也一样可以实现:

如上图,上图中人物位置没有变化,只是在不断变换图片而已,那么只需要在2048游戏的基础上加一条:

3、显示人物图片,每隔10帧换一个图片,循环反复,形成动画效果。

那么想让人物走起来就是小儿科的问题了:

4、用变量控制人物位置,向前移动,同时人物动画一直播放。

到这里都是1+1=2的问题,估计题主更想知道的是:3D人物行走,背后原理是什么?

不好意思,3D游戏的实现原理,一下子从2D游戏产生了质的飞跃。第一个真3D游戏《雷神之锤(QUAKE)》也是多次技术革新的产物(在这之前也有3D游戏,但是基本上是依靠图片的缩放斜切变换、限制摄像机角度伪造出的效果)。

想知道3D游戏历史发展过程,推荐这本书:

做出行走的3D人物之前,要先解决这个问题:

1、如何在屏幕上显示3D的立方体、球体。且能转换到不同角度。

越基础的问题越是复杂,在《雷神之锤》之前,已经有不少3D软件支持类似的显示技术了,但挑战在于——如何在动态展示3D物体时,保持至少30帧的刷新速度

解决这个问题经历了相当久的时间,因为在二十多年前,需要高深的图形学知识以及深度的编程优化才能实现出最基本的效果。明白了这点,也就明白了为什么第一个算得上真3D的游戏直到1996年才出现。

最基本的问题最困难。对实时性的高要求让3D技术产生了两大分支——实时渲染(用于游戏)和非实时渲染(常见用于影视)。

在解决了最基础的问题之后,接下来一系列眼花缭乱的技术,就只是寻常的技术演化罢了:

2、将任意物体,用“顶点”和“贴图”概括,做出3D的外观。

3、表现出光线、阴影。

所谓顶点就是三维空间中的坐标点,贴图就是把图片糊在3D顶点上,就形成了三维空间中的模型。

制作模型依赖于3D软件,而3D软件工具的出现,比3D游戏要早得多。

所以说一个新技术的突破,大的历史环境、技术背景是必须的。

另外3D模型是否能看得过去,十分依赖于光照阴影是否真实,这又是另外一个大问题了。

3、3D动画是怎么做的?让顶点动起来即可。

既然我们已经拥有了以30帧的速度渲染物体的技术,那么只要让人物模型的三维“顶点”动起来,不就实现走路的动画了吗?

另外再加上物体整体的位移和旋转,实现动画的最基本技术就齐备了。

4、间接移动顶点——骨骼动画技术

基本问题解决之后,剩下的不过就是进一步完善罢了。在QUAKE的时代,人物只是非常僵硬的抬抬手、动动脚,远远达不到逼真的要求。如何才能做出具有真实感的动作呢?

问题的关键是:如果直接移动顶点,美术设计师几乎不可能做出真实的动画,因为顶点之间本质上是有关联的,如果用手一个一个拖,其工作量要大于用橡皮泥做动画。

所以后来出现了一个间接技术——给模型绑上骨骼,一个骨骼控制一部分顶点。这样一来,美术设计师只需要让“骨架”真实的动起来,模型也自然会跟上,形成细腻真实的动作。

5、将以上所有技术结合在一起——游戏引擎

看了以上讲解,你一定会和我一样,发现“让3D人物行走”其实是一系列技术的结合。所以外行人很难凭空想象出来。

甚至对于内行人来说,完全理解整个流程也太复杂了。因此后来逐渐出现了“游戏引擎”的概念。

“游戏引擎”把游戏开发必要的的模块和工具整合起来(但不包含专业的美术制作工具),可以让游戏开发者专注到游戏本身,不再需要关注原理问题,因为渲染原理已经形成固定模式了。

有了“游戏引擎”之后,从外行人的角度看,游戏开发工具就只剩两大块了:

1、3DMax、Maya等三维建模和动画软件。由专业的美术人员使用,制作出原始模型和动画素材。

2、技术人员和游戏设计师,一起在游戏引擎中整合资源、编写游戏逻辑,形成完整的游戏。

看了以上解释,题主应该能大致想象出,3D游戏是如何实现的了吧?

来源:知乎 www.zhihu.com

作者:马遥

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 19 个回答,查看全部。
延伸阅读:
程序员玩自己写的游戏是什么体验?
自己是程序员,还去破解别人辛苦做出来的游戏,这种人都是什么心态?