第2讲 2D游戏和3D游戏有什么区别? 我们知道,游戏的体现形式最主要是2D和3D。最近比较流行的AR/VR等,都是属于3D类的体现形式。关于VR游戏,我会在之后的“热点剖析”模块详细介绍,这里就不多说了。

最初的游戏,2D是绝对的主流。虽然现如今3D游戏大行其道,但是2D游戏还是拥有一席之地。比如我们上一节提到的《返校》,日本光荣公司前几年仍然在推出2D版的《三国志》,以及最近暴雪又复刻的《星际争霸1》高清版。

2D游戏和3D游戏的区别

我在前面已经讲过我为何选择2D游戏作为讲解的对象,也阐述过手机游戏开发的难点。至于3D游戏和2D游戏具体的区别,我还需要再和你讲一讲。

  • 呈现画面

3D和2D游戏最大的区别就是,游戏呈现画面的方式有了质的改变。3D较之2D画面有更强大的冲击力和震撼力,就好像VR较之普通3D,对人们视觉的冲击力和震撼力也是质的飞升。

所以,要做出一款好的2D游戏,要比3D游戏下更多的功夫,特别是在游戏的内涵、创意、音乐和细节上面。因为2D游戏先天只能呈现2D画面,所以玩家在入手游戏后,会很快对游戏有一个总体的评价,因此,开发者会想方设法留住用户。而一些3D游戏创意和游戏内容其实都不是非常优秀,只是由于画面突出,效果卓绝,也能吸引不少玩家战斗到最后一关。

  • 文件体积

2D游戏的体积基本控制在1G以内。因为2D游戏本身的图片量并不是很大,图片体积也就不会很大。而3D游戏的体积基本都是2~4G,现在甚至会有30G、40G,甚至60、100多个G。那是因为3D模型、骨骼、动作、贴图等资源占用了大量的空间,高清贴图动辄几十甚至上百兆都是正常的体积,所以3D游戏比2D游戏体积大这是很重要的一个方面。

“伪3D”游戏

我们熟知的3D游戏,有广义、狭义之分。狭义的3D游戏是指Polygon游戏,也就是多边形游戏,需要靠纯3D计算技术实现操作。而广义的3D游戏,则包括了“伪3D”游戏。所谓伪3D,其实就是2D+3D,也有人称之为2.5D。其实就是将2D和3D技术结合起来,实现3D游戏的体验。

类似《暴力摩托》这样的早期3D游戏,其实就是“伪3D”,它基本上是通过模拟计算光线跟踪(Raycasting)算法做出来的。因此,2D游戏引擎无法制作狭义的3D游戏,而3D游戏引擎则可以做2D游戏。

比如,《梦幻西游》可以称作“伪3D”,而《暴力摩托》、早期的赛车游戏、《DOOM》等,都可以归类为广义的3D游戏。

我们继续拿《暴力摩托》,或者更早期的赛车游戏来举例。

这类游戏的内存中,存在两种甚至多种主角赛车的形态图像,比如近景摩托车、远景摩托车。在判断速度大小之后,我们可以对图像进行替换,以此让玩家感觉到远近;背景和地面则是按照线条来处理,也就是将一副背景图片分成N条线,而第N+1条线会比第N条放大一倍,以此达到给赛道设置不同远近的效果;根据玩家赛车的前后位置,来判断绘制每一行的“放大”。而玩家控制的赛车则是一个活动块。每个活动块都存放有不同远近大小的图像形态,来控制前后图像大小。

国外有不少专门研究这类“伪3D”技术的网站,我在这里推荐几个,你有兴趣的话可以去看看。 http://www.extentofthejam.com/pseudo/ http://lodev.org/cgtutor/raycasting.html https://codeincomplete.com/posts/javascript-racer-v1-straight/

那么,用3D游戏引擎制作2D游戏究竟是怎么回事呢?就是将3D游戏的视角和控制锁定在只有2D能呈现的范围内,让玩家误以为是2D游戏,但是这类游戏可以借助3D引擎来优化游戏的声光和绚丽的特效,让2D游戏更大放异彩。

再者,在移动端的表现上,2D游戏其实和3D游戏不相上下。

首先,利用小屏幕观看3D画面非常累。由于手机计算能力有限,所以目前移动端的3D游戏大部分都还是以低模为主。浅显地讲,高模就是相当精细的模型和贴图,由无数个面(看需求)组成的模型,而低模一般会为了计算效率考虑控制其3D面数,贴图也相对简单。

其次,在移动设备上,因为移动平台的硬件限制,3D引擎的表现一定不如电脑或者主机游戏来得好。这样一来,2D游戏其实有非常大的施展空间。

2D游戏和3D游戏在电子竞技中的区别

我们再来看看电子竞技这一块。

我们都知道《星际争霸》在前几年一直是韩国的“国技”。《星际争霸1》的选手水平占据着全球巅峰位置。2015年之后,由于圈内丑闻加上《星际争霸2》的出现,《星际争霸1》的三大联赛几乎销声匿迹。然而《星际争霸2》却没有想象中那么火爆。虽然有《DOTA》《LOL》的泰山压顶之势,但总体原因除了《星际争霸2》的平衡性外,还有一个原因是,《星际2》的3D画面并不完全适合电视转播。

我们拿《星际争霸1》的2D画面和《星际争霸2》的3D画面进行比较。这里,第一幅图是《星际1》的画面,第二幅图是《星际2》的画面。

你可以看到,3D画面几乎要在高清画质的情况下才能看清楚单位兵种、战斗场面,而且很多时候都是一团黑漆漆、绿乎乎的3D画面堆在一起。《LOL》看似没有这种情况,是因为大家都熟悉每个英雄的形象,加上地图比较明亮,兵种没有《星际争霸》那么多。

我们再来看《星际争霸1》的画面,层次分明,清晰可辨,哪怕在低画质的情况下仍然可以一眼看出究竟是什么兵种,有的时候,甚至连地雷都能看清楚。当然,这并不是说3D比不过2D,而是在某些特殊情况和场景下,3D图形会有一些缺陷。

由于表现方式不同,3D游戏最典型的就是比2D游戏的坐标多出一个Z值。所谓的Z值,就是除了X、Y的长宽之外,还多了一个高度值。这个值我们也可以用在2D游戏中。

在PS时代,有不少2D和3D结合在一起的游戏。比如,《生化危机》系列的1、2、3部,都属于2D静态场景、3D模型。再比如,《最终幻想》系列的7、8。玩家在世界地图行动的时候,使用的是3D画面,但是在游戏主场景里面,使用的仍然是《生化危机》那种3D建模。2D渲染场景使用伪3D技术,一般是因为机能限制或者3D技术不成熟,但实际的实现难度不会比纯3D技术更简单。

3D游戏和2D游戏在美术上的区别

从美术方面来说,3D游戏和2D游戏的区别也相当大。

在3D建模和骨骼方面,一个熟练的美工,只需要在原有模型上添加或者修改某些物件。比如给某个生物加一个角,给它增加一个小小的动作。这样模型的修改,对于美工来说,是比2D美术要简单的。因为2D美术一般都是手绘,所以如果需求改动特别明显,那一系列跟该角色相关的图案都需要手工调整,这是非常大的工作量。

准确地讲,2D游戏是2D图像图形进行线性的一些变换将之渲染至屏幕而成。而3D的游戏是将3D的图形图像进行3D线性变换然后投影(Projection)至显示器(显示器是2D的)而成。显示器在视觉上形成远近大小的效果,让我们看起来是立体的。事实上,我们眼睛的视网膜也是这么工作的。

游戏的本质

说了这么多2D游戏和3D游戏的区别,最后,我想跟你谈一点轻松的内容。游戏的本质究竟是什么?不管是作为开发者,还是策划、运营人员,或者是打游戏的玩家,我想请你思考一下这个问题。

有人说,游戏的本质是人类的层次需求,并且还进行了细致的分析。其实不需要这么复杂,要我说,游戏的本质就是供人娱乐,给人各种开心的、刺激的、恐怖的感官刺激。

有些人喜欢复杂策略类的游戏,那么繁琐复杂的《太空帝国》就能满足他们。有些人喜欢快节奏的游戏,那么赛车或者打一局就走的《FPS》可以满足你的胃口;像我就喜欢悠哉悠哉地不受任务限制,那么“GTA系列”和“老滚系列”就是我的选择。

那如何定义一款成功的游戏呢?如何做出一个爆款游戏呢?我想说的是,一款游戏的成功离不开美术、音乐等等这些硬指标,然而这些指标却不能决定这款游戏是否能深得人心。每一个人心中的判断并不一样,大量的人玩《王者荣耀》,但这并不代表它是优秀的游戏,只能说是成功的游戏。毕竟,青菜萝卜各有所爱。

小结

这一节内容差不多了,总结一下,你需要记住这几点:

  • 3D和2D游戏的区别主要体现在呈现画面和文件体积上;
  • 借助3D引擎可以提升2D游戏的声光和特效效果;
  • 成功的游戏不一定是优秀的游戏。

最后,给你留个思考题吧。你觉得一款成功的游戏需要具备什么样的特点呢?

欢迎留言说出你的看法,我在下一节的挑战中等你!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e4%bb%8e0%e5%bc%80%e5%a7%8b%e5%ad%a6%e6%b8%b8%e6%88%8f%e5%bc%80%e5%8f%91/%e7%ac%ac2%e8%ae%b2%202D%e6%b8%b8%e6%88%8f%e5%92%8c3D%e6%b8%b8%e6%88%8f%e6%9c%89%e4%bb%80%e4%b9%88%e5%8c%ba%e5%88%ab%ef%bc%9f.md