You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
9.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 第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游戏。
我们继续拿《暴力摩托》,或者更早期的赛车游戏来举例。
![](https://static001.geekbang.org/resource/image/87/da/87483c1fb12cbb8e7691f6d8843959da.jpg)
这类游戏的内存中存在两种甚至多种主角赛车的形态图像比如近景摩托车、远景摩托车。在判断速度大小之后我们可以对图像进行替换以此让玩家感觉到远近背景和地面则是按照线条来处理也就是将一副背景图片分成N条线而第N+1条线会比第N条放大一倍以此达到给赛道设置不同远近的效果根据玩家赛车的前后位置来判断绘制每一行的“放大”。而玩家控制的赛车则是一个活动块。每个活动块都存放有不同远近大小的图像形态来控制前后图像大小。
国外有不少专门研究这类“伪3D”技术的网站我在这里推荐几个你有兴趣的话可以去看看。 [http://www.extentofthejam.com/pseudo/](http://www.extentofthejam.com/pseudo/) [http://lodev.org/cgtutor/raycasting.html](http://lodev.org/cgtutor/raycasting.html) [https://codeincomplete.com/posts/javascript-racer-v1-straight/](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》的画面。
![](https://static001.geekbang.org/resource/image/f6/74/f63c7cb07818dc0d0771139008ae4974.jpg)
![](https://static001.geekbang.org/resource/image/04/36/041b56fd0bb54443d32c083c237a7136.jpg)
你可以看到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游戏的声光和特效效果
* 成功的游戏不一定是优秀的游戏。
最后,给你留个思考题吧。你觉得一款成功的游戏需要具备什么样的特点呢?
欢迎留言说出你的看法,我在下一节的挑战中等你!