取悦的工序:如何理解游戏 - (EPUB全文下载)

文件大小:1.44 mb。
文件格式:epub 格式。
书籍内容:

目录
封面
出版信息
作者简介
序言
一、游戏和动画有什么不同?
二、西瓜是怎样被切掉的?
三、图片是怎么画到屏幕上的?
四、游戏进度是如何恢复的?
五、排行榜是怎么算出来的?
六、数据是怎么保存的?
七、声音是如何播放出来的?
八、3D模型是怎么渲染的?
九、再谈游戏状态的改变
十、人们为什么要玩游戏?
出版信息
取悦的工序:如何理解游戏
出品:
简 书
监制:
林 立
运营:
刘福英
编辑:
孙杨莉
市场:
马弋丁
技术支持:
赵 波
本书中的署名文章,除说明摘引的以外,其著作权均属于原作者。作者通过简书发布文章并授权简书团队制作本书。本电子书由简书全球范围内同步发行。
版权所有·侵权必究
简书官网:http://jianshu.io

新浪微博:@简书
twitter:@jianshuio
微信公众号:jianshuio
作者简介
作者简介
bylin
游戏制作人,大约三四年的从业经验。两年前牵头成立了一个创业团队,致力于休闲游戏的开发。
序言
这个系列有十篇短文,每篇短文针对游戏开发中的某个特定主题,做一个浅显的介绍。
喜欢玩游戏的人很多,但游戏作为一门复杂的艺术形式,它的生产原理并不被广大玩家们所理解;而游戏开发团队里的设计、美术、运营等非技术类的从业者,很多时候也会对游戏开发的原理产生疑问。
我常常为上述第二件事感到苦恼,因为这是一个看似正常实则对游戏最终品质有很大影响的状况。为了解决这个苦恼,我给这些非技术类的同事们讲了几节课,试图用比较浅显的语言和更加具象化的表述来讲述技术上的来龙去脉。积累了一段时间后,就有了这个系列的几篇短文。
一、游戏和动画有什么不同?
Photo by Halfbrick
在说正题之前,先说说动画。
细说起来,我接触动画挺早的。初中那会,在上天的眷顾之下,我拥有了一个爱画黄色漫画的同桌,也正是在他的引领下,我接触到了动画。他常用铅笔在课本右下角勾一些线条,通常都是两个小人变身互放龟波气功的场景,等每页都画上了,用手一撩拨,噼里啪啦地就放出了一段精彩的动画。
多年以后,他到一家游戏公司做美术设计,而我也终于知道,这就是传说中的逐帧动画。
怎么理解逐帧动画呢?
想象一下你把一个西瓜往天上扔,同时让远处的小伙伴给它来个疯狂十连拍。一阵卡擦过后,你就得到了十张照片。一旦这些照片以足够的速度在你眼前逐张闪过,我们就会看到一个西瓜做抛体运动(东西被往天上甩时所作的运动)的动画。
我们把这些照片里的每一张叫做一帧;而这些照片闪过的速度,则是用帧率来衡量,我们说一个动画帧率为24FPS,就是说它一秒钟会播放24帧。
那么,游戏跟动画有什么区别?
我们以半块砖工作室开发的风靡全球的游戏——《水果忍者》为例,来说明一下这个问题。
当你在iPhone上玩这款游戏的时候,你的iPhone会以每秒几十帧的速度在屏幕上画西瓜,由于每帧里西瓜的位置不同——刚开始西瓜被画在屏幕左下角,过一会它被画在屏幕上部,最后又被画在右下角——你最后就看到了一个正在做抛体运动的西瓜。
那么,一个显而易见的问题来了:这些帧又不是十连拍拍下来的,它们是怎么画出来的?或者说,这西瓜怎么就知道自己要做抛体运动?它怎么就不飞出屏幕去或者飞一半自己爆掉呢?
答案是你的iPhone在两帧之间的空隙处做了很多工作,这些工作决定了这个西瓜的行为,我们把这些工作叫做计算。
假设第一帧的时候西瓜位于左下角,iPhone把这一帧画完后,就得开始思考下一帧它得画在哪这个问题。回顾一下你曾经学过的经典物理课程:如果我们知道一个东西此刻的位置、速度和加速度,就可以计算出若干时间(例如一帧)后它所处的新位置。你的iPhone正是根据西瓜第一帧的物理参数,来计算它下一帧的位置,一旦算出来了,它才开始画下一帧。
当然,计算这件事实际上是由程序员们写的代码来实现的。不同的游戏需要计算不同的东西,比如《反恐精英》需要计算弹道轨迹、《极品飞车》需要计算赛道摩擦、《瘟疫公司》需要计算病毒扩散。他们都有自己的一套代码。
诸如位置、速度这一大坨参数,在游戏开发里我们管它们叫做状态。某一帧的状态决定了这一帧的画面。所谓的计算,实际上就是一个状态到另一个状态的变化,而整个游戏的运行,则是状态不断变化,画面也跟着不断变化的过程。
这种状态不断变化的东西叫做状态机。游戏在本质上就是一个状态机。
游戏跟动画之间最大的区别也正在于此。对于动画来说,它只要把每一帧的画面依次显示出来就可以了,但游戏需要在两个帧之间进行计算,在计算出新的状态后,才能渲染。
ok,现在我们知道游戏世界里那个西瓜是怎么知道自己要做抛体运动的,但还有个无聊的问题:刚才在真实世界里被你抛到天上的那个能吃的西瓜,又是怎么知道自己要做抛体运动呢?它怎么不飞出地球或者飞一半自己爆掉呢?
这个问题似乎还没有答案。有一些物理学家和哲学家认为这个世界的一切事物本质上都是信息,而整个宇宙则是一次不断计算着的游戏。类似的想法在艺术领域催生了很多有名的作品,比如大家熟悉的《黑客帝国》和《盗梦空间》。事实上,我们的宇宙的确有一个最小的时间单位,叫做普朗克时间,约为5.39e-44秒。这么看来,如果宇宙真是一款游戏,这帧率还挺高,应该不卡——不过谁知道呢。
跟其它艺术形式相比,游戏在构建虚拟世界这事上有得天独厚的优势。因为它们在本质上是一个状态机,所以这个虚拟世界可以有自己的规则,就好像真实的世界有各种科学定律一样,而更出彩的是,这个虚拟世界不是封闭的,它可以接受来自外界的信息——当你的手指在屏幕上划过时,那个西瓜就会啪地爆开。这是我们在下篇文章里要说的用户事件。

二、西瓜是怎样被切掉的?
Photo by Halfbrick
你正在玩《水果忍者》,一个西瓜飞了上来。
看完上一篇文章《游戏和动画有什么不同?》,你就会知道,你的iPhone这时正在努力地把这个西瓜从一个状态变到另一个状态。
如果你忘记了,没关系,我们先简单回顾一下什么叫状态。
所谓的状态就是游戏里的参数,例如刚才这位西瓜, ............

书籍插图:
书籍《取悦的工序:如何理解游戏》 - 插图1
书籍《取悦的工序:如何理解游戏》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » 取悦的工序:如何理解游戏 - (EPUB全文下载)