精华内容
下载资源
问答
  • 本科游戏设计毕设经历

    千次阅读 2018-07-06 10:02:24
    大学毕设经历   以前其实还没听说过本科毕设有多难,研究生和博士生到是知道难度有些...  我的毕设是做个游戏APP,起初我本来选题是连连看APP游戏设计,但是后来遇到一点事情说题目重复了要求更换,于是我在4月...

    文章目录


    提供了必设源码:https://github.com/abcnull/IndependentPlaneGame
    欢迎大家 star 和 fork

      以前其实还没听说过本科毕设有多难,研究生和博士生到是知道难度有些大,在网上听很多人说本科的毕业设计很水,虽然目前为止我还没有答辩,还有一周,但是就我的毕设经历来讲,我觉得本科毕设真的不简单,也许是网友们实力太强或者是大学检查的很水,或者说我的实力太差了。
      我的毕设是做个游戏APP,起初我本来选题是连连看APP游戏设计,但是后来遇到一点事情说题目重复了要求更换,于是我在4月初的时候去换题目,结果是换成的俄罗斯方块游戏改进也重复了,我便在导师的要求下换了一个类似于“雷霆战机”那样的飞行射击类游戏APP,当时学校没什么事情,我就一直呆在家里,从四月份开始,要知道5月初就要中期检查了,5月中旬还要论文检查之类的,5月底要答辩了,所以说我做这个APP游戏还是时间很紧迫的,所以这段时间一直没有更新CSDN博客,时间都去做毕设了,今天开始的后几天可以连续写博客了。其实我以前只学过一点Android开发,而且忘了很多,Android游戏以前都没做过。
      这次的游戏APP题目是飞机游戏APP设计与实现,幸好我在寒假的时候没有太松懈,复习了Android的一些内容,学习了View的相关知识,还看了网上对于俄罗斯方块的实现(虽然忘了),同时仔细看了安卓游戏从零开始的入门,看了不少东西,对做这么一个题目也不能说完全没有信息。后来我在网上也查过许多的资料,终于在4月快结束的时候基本把项目弄好了。使用的是eclipse,View框架,因为我以前一直用eclipse没用过Android Studio,而且我也没系统的学习过一些游戏引擎,所以只能用View来做游戏,而且View足够用了,虽然逻辑部分可能很复杂。
      还记得我4月份在家做毕业设计,几乎连续12天早上睡醒就直接打开电脑码代码做毕业设计,就这样一直做,做到晚上11点多便去睡觉,除了上厕所偶尔出个门,连吃饭都是在电脑前。4月底终于把项目基本完成,后来我在5月份的时候给项目添加了许多新的功能,而且在5月份前几天先去给另一个老师进行中期检查,老师估计只看了不到一分钟,他直接看了在我手机上运行的游戏的效果,稍微问了几点问题,然后就行了,感觉中期检查好水啊~。当时中期检查我还担心看不看论文,因为我还没写论文,不过幸好中期检查根本不看论文。后来的几天我把论文补上了,一开时论文的格式问题非常让人头痛,什么设置页眉页脚,还有许多需要注意到的格式问题,我调了很久,我还记得我写了2天2夜,包括调整格式,写论文,修改论文,查重等,偶,对了忘了提及了,在写论文前,我添加了许多新功能。论文一开始写了2w多字,然后去查重,发现22%,这个在我意料之外,因为都是我自己写的,竟然这么多重复,后来我把很多句子改的比较刁钻,再一查16%,我还不满意,再改再去查只有5%了。后来我那论文给到时检查,结果导师说不合格,我其实一开始还信心满满的,结果像被破了一票冷的冷水,是我的行间距有问题,再加上由于我过于追求重复率低使得我改的某些句子有点读的不通顺。后来我只得再修改,现在把句子改通顺了,但是改的只剩下1w7的字了,查重是15%,接下来我尽量想办法改到10%以内。导师说10%以内会比较稳。
      现在我谈谈我的项目实现功能,这是一个飞行射击游戏,里头的图片我是从百度图片里头搞的,然后用美图秀秀来抠图(美图秀秀学了半天),游戏进入的界面我后来美化了一下也变得好看了,图片都是从网上弄得然后自己修改。游戏可以设置游戏难度,可以设置音乐,可以查看作者,可以查看玩法,进入游戏,你可以触屏移动控制战斗机,战斗机会一直发射子弹,默认是黄色单发子弹,游戏中有黄色的小敌机,绿色的中敌机,红色的大敌机还有章鱼一样的老板敌机,老板敌机可以发射火球来攻击战斗机,当然老板敌机比较难出现,它是每隔一定时间才会出现,并且界面上只能有一个老板敌机。在游戏中玩家可以获得5中道具,其中有3种是子弹道具,这些子弹道具都是蓝色子弹,子弹道具分别有双发的子弹道具,战斗机为不发射子弹的子弹道具,战斗机两侧发射子弹的子弹道具,还有炸弹道具和生命值恢复道具,在屏幕上点击两下,界面上所有的敌方单位都会爆炸,战斗机最初有3条生命,战斗机每被击中就会变白几帧,每次接收到回血道具就会变绿几帧。音乐是循环播放的,只有背景音乐,没有特效音乐。我还记得当时选音乐时候选了很久,想选一首好听的同时又比较适合的。游戏可以暂停可以重新开始,还可以查看FPS,我是小米5,可以发现非常稳定的维持在60帧/s。
      项目的一些部分是怎么实现的呢?我大致讲一下,因为我在其他博客中会写一点。项目主要是通过View来代表整个游戏界面,在onDraw()中绘制游戏界面,每执行一次绘制其实就是一帧画面,有postinvalidate()方法可以重绘,这个只要在必要时候写就行了。因为手机绘制一帧的画面是非常快的,只要能保证你会的每一帧中图片的位置都不同就行了,在游戏中有许多精灵对象,游戏分三种状态,我只要在游戏进行态时候,执行某一精灵对象的绘制方法,代表该精灵在这一帧中绘制出来了,其实精灵的绘制方法就是安卓graphics包下的drawBitmap之类的方法,将位图绘制在界面上即可,那有人会问,你怎么改变每一帧精灵的位置呢,其实精灵的绘制方法不是直接写drawBitmap之类的,而是分为三个方法,第一个方法负责移动精灵位置,第二个方法负责绘制精灵位置,第三个方法负责检查销毁之类的即可。在游戏进行态的时候,只要战斗机没有被销毁(因为我是根据战斗机是否被销毁来判定游戏是否在结束态),那么最后在执行postinvalidate()方法实现重绘,只要在游戏进行态,就会不断的循环。其中有许多的特殊功能,还不是很好说清楚,一些经验和特殊功能我会在其他博文中写清楚。
      我这个人有点强迫症,有点完美主义,做的不好就非常不安心。接下来的数天我还要改论文,项目做得是差不多了,我也的确做的很累了。项目以后再做些其他的游戏出来,就是通过这次毕设,使我对游戏制作变得非常感兴趣,有时间去学习一下unity3d,再去做做游戏。
      这次毕业设计真的是一个很难得的经历,确实学习到了不少东西。由于我非常怕遗忘,而且我认为经验非常重要,于是写下这篇博文给大家分享我的毕设经历。我码字太快了,一下子就码到这里来,可能有很多错别字还有语句不通的问题,希望提醒(#.#)。

    展开全文
  • Earnest Adams写的游戏开发入门书籍。里面不讲代码,只讲设计相关的知识,比较初等,可以一看!内容还是比较广泛的。
  • 游戏设计遇上建筑学

    千次阅读 2020-02-20 21:49:58
    The Witness 预告片「见证」一个全新的认知世界The Witness, full of eureka momentJonathan Blow从复制和传播角度来说,游戏的覆盖面...

    The Witness 预告片

    「见证」一个全新的认知世界

    The Witness, full of eureka moment

     

    Jonathan Blow

    从复制和传播角度来说,游戏的覆盖面远超实体建筑。物质的世界一切都太昂贵了,实体建筑也越来越不重要了。如果建筑师们能像van Buren这样的美国中产知识分子那样,把游戏视为与文学、电影位处同等公共领域的文化消费品,那么建筑师群体在游戏领域还有一片巨大的新战场可以贡献专业能力与创造力。因为,在独立游戏的开拓者Jonathan Blow看来,游戏领域当前依然缺乏他所认为的好作品。本文正是Blow花7年开发的游戏《The Witness》的合作建筑师撰写的。

    The Witness

    滑动查看

    P1:把头往左偏90度就能「见证」一个全新的认知世界。只要你足够放松和投入,就能发现游戏中充满了这种 eureka moment。这正是游戏希望传达的「内观」所带来的顿悟体验。

    P2:《The Witness》小岛的鸟瞰。

    游戏中的建筑学

    Architecture in Video Games: 

    Designing for Impact

    by Deanna van Buren on 2015.12.10

    https://www.gamasutra.com/blogs/DeannaVanBuren/20151012/254238/Architecture_in_Video_Games_Designing_for_Impact.php

    翻译:李博;校对:徐唯钰/董舒堃;审阅:梁幸仪,2020.02.10

    翻译者:李博

    「丘」建筑事务所合伙人

    「建筑工房」联合发起人

    推荐人:重轻

    游戏文化研究者

    特别说明:文中保留了李博学长的翻译笔记,希望对大家阅读理解有一定帮助。文末的译者后记非常inspiring,请一定不要错过!

    推荐语

    本篇文章由游戏文化研究者重轻推荐

    电子游戏工业中的建筑和景观,往往作为场景的堆砌,而不是核心玩法存在。庞大的建模和贴图,在 3A 大作中构造了让玩家匆匆跑过,不暇审视的海量场景,这样的设计宗旨在于「维持」玩家的沉浸感。显然不是所有的设计师都满足于堆砌和装饰,Jonathan Blow 和他聘请的建筑师团队试图将建筑设计前所未有之深切地融于玩法之中。

    Blow 常以「noticing」(察觉)和「clarity」(透彻)二词解释他设计《The Witness》的核心用力所在,仔细想来在根本上和大多数 3A 游戏针锋相对。想要让玩家不吝于注意环境里无处不在的谜题,让一种规律(蝌蚪文)如咒语般印入脑海,他就必须要将场景细节做到极限。而这个极限的方向引人深思:这里的「真」不是无穷细节的加总(参考《荒野大镖客2》),而是结构、材质上一种直觉的合理,形成了一个富有暗示性和意义的整体(相对于一些闪闪发光的「请点这里」的道具)。

     

    《The Witness》内的典型谜题,玩家需要从环境中洞察线索并用一笔画解锁面板

    <<< 滑动查看图片 >>>

    《荒野大镖客:救赎 2》(Red Dead Redemption 2)是迄今游戏行业在视觉拟真度上完成度最高的作品

    我相信《The Witness》揭示了一种极不寻常的可能性——本文进一步印证了这一点。即,不是障眼法的建筑,是有功能和意义的空间,能否在游戏和各类互动媒介中前进,来到传统叙事和玩法趣味的边界之外,玩家的潜意识之内。这个神秘之境,我猜也是建筑师们在物理世界里努力探索着的吧?

    正文

    大家好,我是 FOURM 设计工作室的创始人,也是游戏《The Witness》的建筑师之一。在这次游戏开发中,我们作为建筑师,与景观建筑师和游戏开发者紧密合作,积累了不少经验,于是有感而发便有了这篇文章。这次游戏设计的工作可能是三个专业(游戏/建筑/景观)第一次能够如此紧密地在一起合作。(译注:作者为 TED 演讲者,现为 Designing Justice + Designing Spaces 设计总监,曾获 UC Berkeley 2018年 Rupp 奖项,目前正在 UC Berkeley 以 Visiting Professor 身份进行教学,主要研究方向为 Restorative Justice + Architecture)

    放眼各领域,跨专业合作的尝试往往遇到不少困难。但如果两个行业能够深入合作(我觉得我们这次的合作非常成功),便能创作出美妙的作品,激发出革新。借着这篇文章,我也希望我们这次的经验能启发和帮助后来人,继续在这种跨界合作的模式中探索设计出有庄严感的游戏体验(gaming with gravitas)。

    为什么要和建筑师合作

    时间回到2010年9月,当时 Jonathan Blow 找到我,希望我们参与开发他的新游戏,游戏的名字叫《The Witness》。看过当时的游戏原型之后,我们决定把景观设计工作室 Fletcher Studio 也介绍进来。这么做的原因,是因为当时游戏里的岛上虽然有20多个建筑,但整个岛屿的主体环境是由景观构成的。我们建筑师和景观建筑师都知道,每一栋建筑都是伫立在大地上的一个地标,它处在一片具体的环境之中,而不是撇开环境独自存在的。建筑设计不应该忽略它周边的景观环境,建筑物本来就是整个空间场所中的一员。Jonathan 理解了这层道理,接受了我们的建议,于是在那个夏天,我们正式开始合作。

    过去5年参与设计《The Witness》,是我整个建筑师职业生涯中最富创造性也是最激动人心的一段经历。我非常庆幸能有像 Ronen Bekerman 这样的建筑视觉艺术家在不断提升着建筑在游戏中所呈现的质量,但同时,我也对现在大多数游戏中的建筑设计感到失望。我很好奇,为什么游戏开发者很少找有经验的建筑师和景观建筑师一起合作呢?(译注:Ronen Bekerman 是专注于建筑数字化表现 architectural visualization 的艺术家。个人网页 https://www.ronenbekerman.com)

    站在建筑师的立场,我非常理解建筑师们大多都志在创造实体的建筑,要么就是觉得在游戏里设计虚拟建筑没什么太大的价值。建筑师们大多不常玩游戏,也意识不到在游戏设计中他们能参与点什么工作。很多建筑师以为设计游戏就是写代码,好像说要设计游戏就必须得会编程似的。同时,我也认为建筑师们可能没有意识到游戏产业及其产品的价值。很惭愧地说,在这次参与设计《The Witness》之前,其实我自己对游戏设计也是挺无知的。

    站在游戏开发者的立场,开发者们可能认为游戏开发的工作并不需要建筑师参与,也不理解建筑师在游戏设计中的价值在哪。毕竟,建筑师没有受到过游戏行业的训练。从我个人的经验来看,包括美术设计在内的大部分游戏开发者其实也都不太了解建筑和景观设计。这也没什么好奇怪的,因为建筑毕竟是一个极其专业的领域,建筑师们都要在学校里经过近7年的专业训练和学习,才能掌握设计的基本功。最后的一点原因,则是游戏开发者们觉得付不起建筑师的薪水。

    事实上,可能恰恰就是这些偏见阻碍了合作。如果建筑和游戏两个行业能够撇除偏见地跨专业合作,那么这两个领域都能互相受益,建筑师能学以致用地拓展实体建筑的设计,电子游戏也能以此去提升自身作为一种艺术形式的价值。

    我来说几个(游戏开发者)应该找我们(译注:指建筑师和景观建筑师,下同)合作的理由吧:

    • 第一,如果游戏开发团队中有建筑师和景观建筑师,那团队里就有了一支专业的小分队,这些队员不论是做概念设计、控制设计的迭代进度、还是在批判性的设计思维上,他们都很专业。

    • 虽然游戏开发和建筑设计的最终作品不同(一个虚拟,一个实体),但使用的(软件)工具是类似的(译注:文件格式交换没难度,很容易对接工作)。

    • 我们受过专业训练,对空间中移动时的动态体验非常熟悉,要去理解「玩法」(gameplay)这个概念也并不难。 

    • 我们对三维的空间和场景有非常深刻的理解,这种认知和理解能力可以帮游戏营造出更强的沉浸感,进而增强游戏的玩法(gameplay)。

    • 游戏引擎、图像渲染和 VR 等新技术的进步,使得今天的专业人员都需要去追求更真实和/或更梦幻的设计(译注:而建筑师最擅长于此)。

    总而言之,所有的三维游戏因为自身固有的三维属性,都能从建筑师和景观建筑师身上获益。我们(建筑师和景观师)能帮助游戏开发者一起来思考空间,空间其实远不止是由边界限定出来的一块地方。如果不能深刻地去理解空间、去设计空间,那么很多增强玩法中沉浸式体验的设计效果都会大打折扣,游戏设计想传达的核心信息也会减弱。

    严肃对待游戏设计:需要关注的要点

    如果你的游戏设计团队中没有建筑师和景观建筑师的话,我也想提一些建议,我们来一起讨论一下10个最基本的问题。这些问题在游戏中经常出现,如果能在游戏设计中意识到我说的这些基本概念,就可以避免一些低级错误。接下来呢,我也会举一些《The Witness》之外的其他游戏作为例子,这些游戏都很棒,但也有一些瑕疵,我提到的这些游戏都很出名,而且涵盖了不同类型,最关键的一点是,我真的打心底很喜欢这些游戏。如果它们更进一步,那游戏里的环境就能少一点让人出戏,少一点不协调感,也就能更好地逼近游戏设计师想要追求的那个完美状态。

    01

    建筑叙事的设计

    译者笔记

    海德格尔——艺术通过「遮蔽」来揭示真理。通过选择去掉那些,来强调留下的这些。创作和表达的过程本是一场选择。

    首先我们需要意识到,景观和建筑的设计都基于现实世界里的各种属性,包括时间、物理空间、社会条例和约束条件等等。场景的地形是怎样的?有什么材料可以用于设计?我们处在什么样的气候之中?城市规划有哪些条例?太阳又是从哪边升起的?

    所以,我们向 Jonathan 的团队(Thekla)提的第一问题是「地图的正北是哪边?」他们答道:「这有差吗?」听到这我就知道了,整个设计需要引入现实世界中的约束条件,来为游戏重建一套世界观的框架。为了设计出独一无二的世界观,我们得发展出一套建筑的叙事结构,并且找到定义这个叙事结构的新的约束条件。

    那么,该如何设计出一套叙事去呈现丰富的场景呢?为了打造一个完整的世界观,有时候游戏会专注于一个特定的时代/风格或美术类型,但真实的世界并非如此。我们所身处的建成环境和场景都有着各自的历史。历史,是一个穿越时间的故事。建筑环境和场景,是由历史层叠而成的。在《The Witness》里,我们沿着时间的线索把故事铺陈开来,整个场景由一系列建筑物和景观组成,这些建筑物和景观在历史中被重复改造使用,它们穿越了从史前到当下以至未来的整条时间轴。(译者附)设计中的每栋建筑和每处景观都回应了至少一个文明期的面貌,某些建筑则同时呈现出三个文明期的叠加态。

    译者笔记

    此处对历史的描述十分精确,史观即当下,无法回避而无处不在的「先验」即空间+时间。

    《The Witness》小岛地图

    译注:开发中的状态,地景中有不同文明期的建筑,有些被泥石流埋入土丘(中),有些倒塌留下废墟(右),也有新建成的(左侧图外)

    译注:同一场景前后四个状态的草图,从未开垦的自然状态到三个不同的文明期

    译注:最终定格在文明期三的场景,它压缩了历史留下的痕迹,「当下」即「历史」的总和

    比如,在岛外沿的采石场里有一座混凝土厂房。这个场景记录了石器时代(文明期一)的痕迹,可以看到那时人们为了建造坟墓,开始在悬崖峭壁上小幅度地切割去开采石材。此外还能看到更大规模的开采,用于建造宗教建筑,就是各种小教堂和大教堂,这属于文明期二。这里有座教堂,就是用这里开采的石头建造和雕琢出来的。进入文明期三之后,采石的规模变得更大,人们开始用石材生产混凝土,混凝土是更现代的建筑材料。生产混凝土需要石粒作为骨料,于是教堂被改造为工厂用以扩大规模生产混凝土须要的砾石,继而用于建造岛上的其他建筑。(译注:混凝土不是水泥,混凝土是水泥+砾石+粗砂的混合物)厂房的烟囱矗立在旧有的坡屋顶上,成为玩法中的方位提示物。(译者附)工厂内部的设备和宗教题材的饰板整合为一体,游戏创作者可以借此表达更有深度的叙事。

    译者笔记

    厂房上的烟囱类似高塔之于《旷野之息》,在游戏的三维世界内直观给出空间上的提示,而不是额外设计一个路牌或在地图上标记一个点,而《旷野之息》的这个 gameplay 设计灵感也源自于京都的城市空间结构,城市设计亦为广义上的建筑学。

    虽然建筑上的叙事对我们建筑师来说是小菜一碟,但对游戏设计师来说可能就不那么容易了。对建筑师来说比较难的是玩法的设计。我们很幸运能够和 Jonathan 这样的游戏设计师合作,他给我们定义了最基础的玩法作为设计条件。《The Witness》的玩法有着非常严密的设计和明确的限定。作为建筑师,首先要理解这些设计条件到底意味着什么。当建筑师与游戏设计师合作时,这恰恰是建筑师最需要理解的内容之一,相对应的,游戏设计师也应该更严格、更精确地去限定环境设计的条件。

    02

    景观与建筑的整合

    要打造一个真实而完整的游戏体验,非常关键的一点在于让游戏空间里的建筑和景观紧密地整合在一起。像《The Witness》、《BioShock Infinite》、《The Talos Principle》、《Ether One》,甚至是《Super Mario 3D World》的这些游戏世界里,在建筑和景观两者紧密整合这一点上,都极大地影响着游戏的体验。在《The Witness》的设计中,景观建筑师为我们指明了自然世界是如何生长的,如何探索和融合自然世界中地型和生物的多样性,并让这些设计更好地去和玩法结合在一起。我们(建筑师)和景观建筑师也紧密地合作,让游戏中的每栋建筑物都和它所处的环境无缝地衔接起来,并充分利用景观去引导玩家找到谜题所在。

    03

    设计建筑物

    游戏中的建筑通常都参考自游戏设计师在杂志里和生活中看到的建筑。在各种游戏里,我极少看到能够针对游戏特定的设定风格、概念和叙事去量身定做的建筑设计。

    《BioShock Infinite》是个很好的例子,游戏提出了一个引人入胜的主题却没能充分把握住,没能设计出真正让人赞叹且独一无二的建筑来加强游戏的叙事。(译者附)我很喜欢游戏里无数18世纪建筑聚合成一座空中之城的场景,整个空间的品质让人很激动。

    译者笔记

    作者此处对游戏叙事和建筑设计的咬合度 coherence 提出了极高的设计要求,亦即:一个作品中的众多要素即便在单项上做到了极致,但更关键的是在更高层级上各要素之间的化学反应和内在逻辑的咬合度。当然,这引向另一个话题:最终作品本身的高咬合度是否源自创作者的自觉?创作中的有意识与无意识决定了作品咬合度的必然和偶然。

    《BioShock Infinite》的空中城场景(译者补充图片)

    但这些建筑如果能设计成统一的蒸汽朋克风格,那整个游戏的体验会更加强烈、更加完整。(译注:逻辑是这样的:房子靠蒸汽朋克世界观的机械原理得以漂浮,结果房子却长成了前工业时期的样子,在世界观设定上出现了视觉上的历史错位)对概念设定而言,如果在游戏世界中让(蒸汽朋克的)特征和细节贯穿室内外,那么视觉上的不和谐感就能少得多。整个游戏本可以营造出更宏大壮阔的体验(sublime feel),就像游戏最后灯塔那一幕一样。

    译者笔记

    关于 sublime experience 的话题,柏克和康德的讨论,Albert Bierstadt 和 Casper David Friedrich 的画,《死亡搁浅》、《大镖客2》 、《Uncharted》系列、《Breath of the Wild》以及上田文人的游戏,飞行或陆行载具在宏大的尺度中穿梭,孤身于大海中央及崇山峻岭,或是现代都市的高楼丛林,都是一种 sublime feel。不过,《The Witness》并没有这种 sublime feel,作者是否有意为之不得而知。当然于建筑而言,sublime 这个话题自然和纪念性 monumentality 有着不小的交集。

    《BioShock Infinite》的灯塔场景

    04

    材质和贴图的设计

    游戏设计师们都太过熟悉那些设计套路了,在场景里去加些灌木丛、坍塌的墙体啊、石块啊、还有污渍和痕迹这些细节,但这样去修修补补的效果往往并不太好。如果能试着去认识一下各种物质材料的属性,去了解这些材料的特性和建造工法,就能在设计中有针对性地处理贴图和材质了。

    用心观察一下我们所处的世界吧,你会慢慢开始留意到很多细节,比如混凝土污渍的分布特征、木头开裂的形状,甚至钢铁生锈的肌理以及在火中融化的状态。很多游戏的建筑设计都有问题,我称之为「复制粘贴」风格——建筑的排布和材质纹理都非常不严谨,看得出来设计者完全不懂得其中的原理。这可能得怪游戏设计所涵盖的世界太过于庞大,而开发的周期又太短。但是如若能了解一些材料和建造的基本原理,就能更快地作出更有依据的设计决策。

    举个例子,《Bioshock Infinite》的故事设定在了蒸汽朋克的世界,蒸汽朋克是个材质和细节都非常丰富的美术风格。然而在游戏里,各种元素的结合却经常错位。石头柱子落在木头做的楼板上,而明明木头要比石头轻。各种结构和建筑物由四五种不同的材料组合在一起,每种材料相互之间却毫无关系,这在现实中是支撑不起来,要塌掉的。

    《BioShock Infinite》游戏场景

    在《The Witness》里,我们试着根据游戏的内容去打造一套素材库,同时也帮助游戏美工设计师去理解这些素材,比方说要知道混凝土的建造工艺。他们经过学习之后,现在都成了内行,可以独立地设计出契合游戏玩法的材质贴图。我们还在贴图材质上花了些心思,试着抽象出物质材料的根本属性,玩家能感受到是什么材料,也不会在游戏的统一风格里感到出戏。(译注:比如不规则的山石,就用了 low poly 来做,同时使用了石材在视觉上的平均颜色,但也去掉了石材粗糙的表面肌理,使得和整个游戏抽象的风格更统一)

    《The Witness》中:钟楼中的锈铁板与文明期二的砌石墙体

    译者笔记

    对游戏和设计的极致追求不过如此,所有可见不可见的细节都有完美主义的专业要求。另,这里涉及到一个核心的创作问题:即使是虚拟世界,其中的一切 epistemical object 元认知都不可避免地来源于物质世界的经验,所有虚拟的再创作都绝非凭空的「创新」。所以,数字世界中的设计与物质世界实存的关系不管是错位还是对位,是否意识到和是否有能力区分开这一点并作出有意识地处理,是设计实践中至关重要的一点。

    05

    尺度、比例和风格

    理解建筑材料的构造(不同建筑单元之间的组合),并进一步理解这些构造影响我们去感知环境的机制,能更好地帮助我们去设计室内外空间。这项能力是专业建筑师尤其擅长的。所以啊,如果想用特别节省成本的方式和建筑师合作,就请他们在截屏上画草图,就像我画的这张图,这是我从《Ether One》里截取的一个场景,花了没几分钟就画好了。

    上:作者针对《Ether One》所绘草图

    下:译者补充的场景截图

    在这个场景里面,木头的材质应该得更细致些,桌子的细节程度显然也低于其他物件,比如木墙下部的护板,这个护板看起来也太低了(3到4英尺最理想,也就是0.9米到1米2左右)。此外,灯光还需要针对室内环境做整体考虑,要不然角落里的那些植物缺少光照都得死光(要真设计成植物枯掉反倒挺酷)。设计师在这片室外区域的建筑里用的都是石头柱子,那这个室内空间为什么不设置几根石柱呢?这样在美学上反而能更连贯一点。另外,背景里那面墙那么大,现实中根本不存在能覆盖一整面墙的那么长一根原木。这面墙应该把木板的分缝做出来,前景的桌子也做类似处理,这些细部的竖线条加入后,整个场景看起来就会更真实,这面木墙的细节程度和空间中其他物件也会更统一。设计师还可以考虑把不同时间层次的痕迹做进这一个房间里,这样也可以强化游戏与精神痴呆有关的叙事。举个例子,比方说把墙面的石膏板拆下来一些,然后露出里面旧的木条龙骨。

    关于这方面的设计,《Journey》是个非常好的例子。《Journey》里的建筑拿捏得很精确,不同建筑之间的尺度很统一,没有尺度错位的同时整个世界仍然打造得很梦幻。景观和建筑的尺度与游戏里角色和物件配合得很好。游戏里的比例有一种竖向性,并且这种竖向性贯穿在整个游戏之中。(见后图)统一的竖向秩序让游戏场景的空间显得更优雅、更整体。虽然这些竖向构件和真实世界相比调整了比例,但这些调整都基于设计的基本原理,所以显得很和谐。(译者附)一旦我们的眼睛能看到建筑和景观的「尺度」和「比例」,再去设计游戏里的建筑和景观就容易多了。

    译者笔记

    此段的重要性在于说明《Journey》对比例调整的设计显然是有意为之,也就是说,虽然相对于源于现实世界的形式经验作了调整,但这是有意识地设计 with intention,而不是无意识做出的。

    译者笔记

    图中《Journey》第一章末的竖向柱列,空间中竖向的视觉元素给了整个空间很好的节奏,可以做一个思维实验,想象一下拿掉这几根柱子后整个场景的差别。另外,石柱上石块低多边形 low poly 的建模尺度也很恰当地与整体的风格吻合。最后,注意远方的远山,作为叙事的锚点,以及中景的雾用于提示距离和景深。

    《Journey》游戏场景

    译者笔记

    图中背景里墙面的花窗和凹槽给出了竖向的视觉控制,花窗网格的尺度也很合适

    06

    细节

    理解了尺度和比例的概念之后,我们再来看看该如何刻画场景中建筑的细节。如果游戏的视觉风格是偏写实精细的,那可以添加细节的刻画来避免场景空间显得太简单、太抽象;如果是偏轻松风格的,就该把细节处理得简单一些。最关键的,游戏里各个要素之间细节刻画的细致程度和尺度大小都要统一。在《The Witness》里,我们花了不少时间去统一各个元素的细节刻画程度,像是灯光、楼梯、门把手、还有窗洞这些,让整个场景的细节度都符合游戏设定的风格。(译注:因为《The Witness》的世界有很多古建筑,细节比较丰富)对我们来说,在《The Witness》的风格里设计现代风格的建筑就比较难了,(译注:因为古建筑简化了细节后刚刚好,但现代建筑再简化的话很容易过度抽象)我们花了不少时间去刻画这些现代建筑的建造细节,让场景对细节的刻画既符合低多边形(low poly)的抽象画风,又能传达真实世界的印象,最后在视觉上呈现出一种绘画般的艺术质感。

    The Witness: 小教堂入口

    《Ether One》的这个场景看起来挺好,但稍微调整一下(顶灯的大小,和壁灯的尺度统一起来),

    整个空间会和谐得多

    《Mirror’s Edge》这个游戏在大部分视觉元素的细节上都处理得特别好。游戏的设计策略非常有效,利用建筑的电器、水管、供暖、冷气机等建筑设备,与颜色结合起来,在游戏空间中去引导玩法中的运动和感受。整体的观感很舒服,空间中的不和谐感很少,却又不显得寡淡无趣,因为设计师准确地运用了现实世界中建筑的材料、交接、细节、拼装等处理,场景仍然显得非常丰富。即使是像《Relativity》这样的游戏,它的空间非常多样,但实现上却很简单,整体感非常统一,身在其中的体验很好。(译注:《Relativity》已更名为《Manifold Garden》并于2019年10月1日登陆 Apple Arcade 和 Epic Game Store)

    《Relativity》也是个很好的例子,这个游戏非常美,虽然和《Mirror’s Edge》的风格很不一样,但对细节的刻画也非常到位。它的空间非常多样,风格独特,通过简单的色彩和细节刻画达成了视觉的统一,我觉得这种视觉风格能让人沉浸在这个埃舍尔(MC Echer)画风的世界里。

    译者笔记

    受到 MC Echer 二维到三维的空间视错觉原理启发的游戏很多,比较知名的包括《纪念碑谷》、《Bridge》等。

    《Manifold Garden》(原名《Relativity》)

    不过游戏里总会有一些比较突显的构件,如何去刻画这些突显的构件的细节,恰恰是设计的关键。比如《The Talos Principle》这个游戏的设定很有意思,不同时代的内容在一个场景里共存(译注:古代的场景和未来感的科幻道具),而这种共存的场景恰恰是最值得设计师认真思考的,怎样去设计才能够把这些突显的构件统一地整合到整个场景里面去。这些高科技的机关其实大可不必就这么生硬地粘在墙上,设计手法上还可以更老练些,让这些机关整合进古城堡石墙的构造里面,那么游戏看起来会显得更整体、更高级(gravitas),也能和游戏的叙事更好地整合在一起(译注:不让人出戏),同时也利用了游戏里现有的材质素材(译注:而不用新加)。

    07

    转换 / 过渡

    除了在构件交接处的细节刻画,空间转换的情况也要清晰地表达:像是不同房间、空间之间的区域,门槛和入口这些进出的位置,建筑竖向的组合关系(基座、主体、屋顶),墙和地板的交界处,等等。

    游戏里建筑的模型主要是靠材质贴图来包裹的,像是墙纸啊、砖块这些贴图,但不同材质面之间的交界处却经常被忽视——导致材料的质感和建造的形式在细致程度上不统一(译注:也就是说材质细了,但形式粗了)(译者附)。我玩过的几乎所有游戏都有这个毛病。这部分内容后来成了我们最后在打磨《The Witness》时最重要、最高级别的一项工作。

    译者笔记

    对于材质和多边形两者表达细节的平衡,可以细化材质的同时简化形式,反之亦然。对于 low poly 风格的选择而言,其中很重要的原因是因为多边形比材质更加消耗图像计算资源,而 low poly 的处理可以适配更多显卡性能不高的游戏运行设备。关于「统一」(coherence)的话题,这里兴许可以作一个类比,比方说去餐馆吃饭,菜式、口味、服务、环境,这些要素综合在一起成为完整的体验,贴图和建模不匹配,材质很精细,建模很极简,就好像用了日式的盘子盛了一道法式大菜,体验上是错位的。这里的意思不是说,素材和建模都要精细才是好,也不是都极简才好,而是要意识到两者要统一。如果是错位的,则必须是意识到这件事,然后基于创作意图去有意进行的错位,而不是无意识的随意错位,就好比故意要创造一种法餐结合日料的氛围的体验,这是不一样的。

    The Witness 场景中各要素之间的转换和过度都经过整体打磨

    08

    角色和场景

    Gamasutra 网站的 Christian Nutt 问我(译注:即刊载本文的网站),像《Super Mario 3D World》这样的游戏如果和建筑师合作的话,能不能有所提升呢。我觉得也许能。有趣的是《Super Mario 3D World》里面有很多模块化的设计,这点和现实中的建筑是一样的。

    正因为这个游戏的玩法设计已经非常好了,那么我们来这么设想一下也挺激动的,就是如果这个游戏的设计师受过一些建筑的训练,这个游戏设计还能在哪些方面变得更好呢。我觉得像是《Super Mario 3D World》这类最最流行的游戏,是教育人们提高图像素养的完美媒介,这类游戏的设计往往都特别简单,它既能帮助玩家去理解游戏的目标,也能带着玩家去体察身处其中的游戏世界。

    译者笔记

    玩家/观众对建筑视觉和空间环境的「图像素养」 visual literacy 是整篇文章的一条重点隐线,换成口语的说法即是如何学会「看」,有没有「眼力」。在光学上的「看」到,是否等同认知上的「看懂了」?类比于语言的文盲,视觉文盲事实上更加普遍。

    在《Super Mario 3D World》和很多其他的游戏里面,我留意到建筑环境的比例和细致程度都和场景中来回走动的人物模型的细致程度不统一。在《Super Mario 3D World》里面,游戏世界里各种物体形式的建模就像是把人物模型的曲线和细节直接给等比例放大了。

    《Super Mario 3D World》

    我特别想知道,游戏设计师在设计人物的时候是不是(比做场景/建筑设计)更有自信而且更有经验。有些时候,刻意让场景和人物的细节不统一的确能够突显出角色,这倒是讲得通。不过呢我也觉得,如果艺术风格和环境设定上能够再多些探讨,设定得更精确一些,那场景里的各元素之间就能更好地互相呼应,游戏的气氛也能传达得更准确,体验会更好。我觉得《Mirror’s Edge》做得很棒,它的空间设计做到了一个恰到好处的平衡点,既有一定的庄严感(gravitas),又不会分散了对游戏角色本身的注意力。

    《Mirror’s Edge》

    09

    建筑物之间的空间

    虽然每栋建筑单体的设计很重要,但建筑物之间的关系也同等重要。我们在设计每一栋建筑的时候,也是在构筑着这个分子所处的整个大场景。建筑之间的空间营造出了室外空间,也营造出丰富多样的空间体验,如果能理解这些设计的原理,那必然能够加强游戏的可玩性。

    《The Talos Principle》的空间问题比较典型,它有一些场景空间的尺度是合适的,但其他的很多场景都不太到位。游戏里很多个区域的空间体验都很平淡,一般的古城堡建筑因为防御工事的属性,都会有很多竖向的形式,我们感受起来是充满力量和坚固感的,而在游戏的这些场景里,建筑都缺乏竖向的形式表现。

    而游戏里那些空旷区域、庭园和城墙外围的空间,就是那些射激光的地方,这些空旷的空间都太大了,大小都远超城墙高度本应对应的尺寸,也远超城堡里室内空间本应有的尺寸。(译注:也就说,一座城堡的城墙高度/厚度、室内和室外的空间应该有互相对应的比例,而显然游戏里室外的尺寸已经超出了这个比例)游戏的设计也许可以在别的思路里寻找机会,比如把城堡的建筑设定与中世纪城市的放射形平面格局结合起来(译注:这样尺度有大有小便于用在不同的空间),去创造更多变化的空间体验,同时也回应了游戏设定的历史背景,这样游戏的体验也会有趣得多。

    在现代主义建筑运动之前,大部分建筑的空间之间都有很强的等级关系,像是教堂的大厅或是主入口这些都是等级最高的主要空间。然而因为玩法和关卡设计的原因,游戏里建筑空间的等级关系都被抹平了,这和我们对这类建筑的感受相悖,实际上错过了原本可以作为艺术表达的机会。为什么游戏设计师不去利用这类建筑的等级逻辑给游戏的玩法增色呢?(译注:也就是游戏设计师先按照玩法规则设计了关卡的空间分布,最后套了一个建筑的外表,但是忽视了建筑空间本身的等级本来是可以融入关卡设计的,浪费了机会)

    很多游戏里面会有些特别大的空间,在这些大空间里,很多素材都零散地分布在空间中。如果建筑和房间的疏密不当,就会显得很不真实,从而导致游戏情节展开的失控。这种情况会导致各种元素尺寸失调,或是远超现实中本该有的大小。

    举个栗子,《Gone Home》开篇里的入户门厅在平面图上来看就把比例完全搞乱了,整个门厅的高度和尺度都远远超出了一座城郊别墅该有的大小,这么个房子如果从室外看,简直就是巨大无比。在这个巨大的空间里,各种物件散落在各处,完全不符合我们对日常居家空间的印象,非常出戏,大大削弱了游戏的沉浸感。(译注:不过《Gone Home》除了开篇入口处,并无室外场景,所以并看不到室外的样子)

    《Gone Home》的入口门厅

    玩家的注意力都被这些物件给干扰了,因为你想一下,站在这么空荡荡的大空间里,每一个物件都太突出了。但如果把空间的尺寸设定得更合适些,那这些散落的物件就可以更好地整合到空间里去。而设计者是可以通过空间本身的设置,用一些更精巧的方式来引导玩家发现这些物件,比如灯光、色彩和细节等等。

    《Gone Home》平面图

    《Gone Home》是我大爱的游戏,因为它用了2D和3D两种方式来展示整个游戏的空间。图纸的表达倒是还能做得更好一点,比如把房子的外轮廓甚至前后院的范围都画出来,这样去构建一些合理的复杂性来让整个空间体系显得更真实,通过调动我们对日常家居空间的记忆,增强游戏的沉浸感。

    合作的工作流

    看完以上,如果你开始考虑与专业建筑师合作的话,那接下来我想从这次《The Witness》的经历来分享一点合作的经验。对我们建筑师而言吧,虽然需要学习一些游戏设计的新知识,但其中绝大部分都是建筑师日常工作中非常熟悉的。建筑设计是一个需要反复修改和打磨更迭的过程,建筑师既用实体工具(草图、模型等)也用数字工具(电脑),我们也总是和不同行业的人打交道,打交道的人里既有工程师也有艺术家。这么说来,和游戏开发者打交道也没太大差别。

    下图展示了工作的流程,一般情况下,是由 Thekla(《The Witness》的公司)先做出一个粗略的原型。也有时候是游戏团队或者建筑团队的其中一方有一个想法,然后一起坐下来基于这个想法一起来开发原型。不过呢,绝大多数的想发都是由 Jonathan 提出来的。不论是哪种情况,我们 FOURM 建筑工作室都会和 Fletcher 景观工作室紧密合作,设计出数个原型后反馈给 Thekla 作选择。

    一开始的时候,我们会提交 SketchUp 或者 Rhino 模型文件(译注:两个建筑师常用的建模软件),并附上手绘的草图和案例图片作为参考。但我们后来很快就发现,直接把模型扔进游戏引擎里去检查效果最便捷。在尝试过很多不同软件之后,发现 SketchUp 是最简单最方便的,因为建筑师并不用游戏开发者常用的 3DS 和 Maya,如果把 Rhino 的 nurbs 模型导入 3DS 和 Maya 会生成很多杂乱的面和多边形,整理起来特别麻烦。

    如果某些设计的提案看起来不错,Thekla 团队就会推进这些设计,做一两个试样来判断效果好不好。如果效果不好的话,我们会再提出新的方案。Thekla 团队在游戏里测试完原型之后,我们(建筑师)就会开始不断打磨完善这个原型,直到达到最终可以交付的质量。甚至就在最近,我们又把整个游戏里的所有建筑都优化了一遍,最后达到了非常成熟的品质,可以说远超我个人的期待。(译注:此文写作时游戏尚未发行)

    合作开发流程图(董舒堃合作翻译)

    如何选择建筑师

    如果你真的开始认真考虑要邀请建筑师参与游戏设计的话,那么在选人的时候有几点得特别留心。建筑师有很多,但人和人并不一样,并不是所有的建筑师都适合你。

    理想的建筑师/景观建筑师团队首先应该配备有基本的 3D 建模软硬件,同时最好对建造非常熟悉,这两点大部分建筑师都能满足。然而,精于技术的建筑师并不一定擅长概念化的抽象思维。你要寻找的建筑师须要具备综合的能力,能够从抽象和理论性的想法、或者从游戏玩法的叙事性出发,去发展出一套(适合这款游戏的)建筑形式。而这种类型的建筑设计师,往往也能给游戏设计师提供很多游戏叙事的想法。

    如果建筑师团队有游戏从业经验或是自己就特别喜欢玩游戏,那最好不过。如果不是的话,那至少他们得愿意玩游戏,而且乐于学习游戏行业的知识。对我自己来说呢,这意味着除了玩我喜欢的游戏,还得主动去找着玩那些我不喜欢的游戏(为了研究)。此外,要想深刻了解这个行业,你还得自己掏钱去参加游戏行业的研讨会。对游戏开发者来说,你找的建筑师必须要尊重并且完全理解你游戏的玩法和概念,这样才能保证之后的合作。

    时间和成本

    回想起来,我觉得我们加入开发《The Witness》的时间点刚刚好。在前期 Jonathan 去构思整个游戏的概念,其实是不需要他人协助的,而直到可以简单运行的原型程序做出来之后,我们就在那个时间点加入。

    对游戏开发者来说,选择让建筑师加入的时间点是和预算与成本挂钩的。有件事对我们建筑师来说比较悲催,对你们游戏开发者来说却很有利,那就是建筑设计是低收入行业(译注:美国如此,国内不完全是,但相对国内IT从业者来说可能还是略低)。通常情况下,建筑设计会按照不同的设计阶段来收取一笔定额的包干价(我们建筑师算账的功夫也不太行),这笔设计费一般占建筑工程总预算的5-15%,具体的比例则视建筑的类型而定(译注:一般来说,项目规模越大,设计费比例就越低,项目越小则越高)。如果游戏项目的预算比较吃紧,那可以只在最关键的环节聘请建筑师做顾问或者参与设计。而建筑师的时薪大概和高级游戏美术师差不多水平。

    结语

    虽然设计中有很多需要关注的重要内容,但在我对同行和学生的教学中最最强调的一点,是要睁开我们的眼睛,去留心观察和感受我们身边的世界。我希望本文提到的这些建议能够帮助你们(游戏设计师)睁开双眼去看懂身边的世界,设计出更好的游戏,即便你选择不邀请建筑师来一起工作也好。(译注:广义的建筑学即我们对世界的认知以及创造新空间的能力)

    在本文的最后我想提出的是,游戏和建筑两个专业的合作能够带我们通往一幅更为广阔的愿景。我坚信我们所从事的一切创造性工作都在影响着我们所身处的更广阔的文化环境。游戏世界设计得越来越精美,越来越多的人开始畅游其中,作为游戏世界的设计师,我们能(借助游戏所处的数字世界)从根本上提高全民的图像素养。与此同时,我也坚信好的游戏设计会带来积极的反馈和效果,(因为关注数字世界的建筑学)我们会反过来比以往更加地关注我们周遭的物质世界,而不是像现在这样对它熟视无睹。至少,至少我们会开始质疑购物中心、大卖场那样的建筑(译注:strip mall,指美国市郊那种以驾车购物为主、设计低劣的低密度购物建筑,不是国内常见的市中心 shopping mall),开始质疑充斥着城郊空间的那些千遍一律、粗制滥造的廉价美式别墅。也许,创造力无穷的数字世界能反过来帮助我们去展望一个更好的物质世界,促进我们去孕育更丰富的想象力,让人们凝聚在一起,孵化出可持续的生命力,提高全社会的福祉。作为建筑师能够有幸参与到这样的工作中来,我们希望先向前迈出的这一步,正是在借助游戏世界的力量让我们所处的世界变得更好。

    由衷感谢 The Witness 团队的所有成员!

    Digo Lima, David Fletcher, Nico Wright, Beth Bukolich

    译后记

    李博

    电子游戏毫无疑问将成为建筑学未来重要的子战场。在复制与传播的层面,游戏世界的广延也许早已远超物质世界。

    印刷术让文本和图画成为人类史中最早得到大量复制的信息载体,而电磁/数字记录及复制技术也使得声音和影像在上世纪成为了基础设施级别的资源。建筑作为最古早的文明信息载体(可能没有)之一,在过去几千年内却一直没有改变其物质孤例的本体属性。对未曾到达建筑现场的人而言,公共话语中谈论的某个「建筑」在大多数情况下仍是一种共同想象的存在。诚然,在当代我们无法否认图像和描述已经成为建筑传播的主要媒介,然而就如同阅读乐谱不等于聆听音乐,而阅读脚本和分镜也无法等同于观看电影一样,即便在今天我们也仍无法否认身处现场的感受远超于图像维度的完整体验。

    完整的建筑体验从未获得低成本的复制技术,而公共领域传播的「建筑」也便一直局限于静态图像和文字所带来的想象。即便是动态的影像,也仍然是以事先编排的线性叙事展开,若你曾有过沉浸在建筑现场的赞叹,相信你仍然会同意影像的意会与现场的体验相去甚远。所以时至今日,建筑师们依然热衷于花上不菲的费用实地旅行来一探究竟。

    只不过,这一切也许正随着电子游戏的普及在发生着巨大的改变。

    和所有的比特一样,电子游戏第一次让主动的三维建筑体验以极低的成本在公众领域广泛复制。即便它是数字的,当代计算机图像技术下的数字世界中时空覆盖的广度及信息丰富的程度已然远超以往任何媒介,这是一次麦克卢汉意义上巨大的「延伸」,如此高纬度的体验正在帮助建筑学拓展着更为广阔的阐释空间。即便相较博尔赫斯的《巴别图书馆》或是 Piranesi 的《Imaginary Prisons》这些蕴含了巨大想象空间的建筑文本,电子游戏的世界也正在另一些侧面开拓着一片全新的阐释空间,而此种文学性也许恰恰指向柯布西耶提醒我们的「感受」sensation。

    当然,本文在此并非鼓吹游戏中的建筑体验已经可以取代物质世界,但有一点我们必须认识到:游戏世界的野心并非在于取代实体世界,它也和过去赛博时代的混合现实不同,游戏带来的乃是无数个高度自主的全新时空。2019全球游戏总产值超过万亿且仍在高速增长,飞速蔓延的广袤数字世界是正在发生的当下,新一代人类的认知大量建立于这样的数字世界,这是一个无法被无视的事实。而对于经历过模拟(黑胶/磁带)到数字(CD/电子书)的数字移民一代(digital immigrant),我们也必须意识到在千禧年后出生的第一代数字原住民(digital native)也在今年升入了大三。在ta们7岁的那年,iPhone 横空出世,这是从触摸屏开始接触数字世界的一代人。

    小女孩玩着爸爸的 Gameboy 不明白为什么屏幕不能触控——用过按键的小孩在触屏失灵时大多会用力摁,而片中的小女孩甚至连这层下意识都已不存在,purely native

    17岁即获得格莱美奖的 Billie Eilish 已有数首「白金唱片」单曲,但她从未买过任何实体 CD

    短短数十年间从无到有,电子游戏正为建筑学拓展着疆土。不少建筑师已然意识到了这片广袤的蓝海,尤其是成长于电子游戏的一代人。下一个问题我们也许该问:源于物质史的建筑学在进入纯数字空间后将呈现出何种面貌?Deanna van Buren 的这篇文章正是试图给出一例典型的范本。透过本文,我们可以洞窥纯数字世界的建筑学会发生哪些平移,哪些范畴在收缩的同时,哪些范畴又在急速地扩张着。

    一个有趣的对比是,在英语世界,即便如 van Buren 一般的高知人群,游戏也和文学、电影、音乐一样开始逐渐成为公共领域的文化消费品。相较而言,国内的游戏环境显然仍存在着巨大的滞后,类似去年 Martin Scorsese 所言「漫威电影不是电影而是游乐场」,在我们所处的语境中「游戏」一词的公共认知中仍然指向《王者荣耀》、《绝地求生》等「小孩子玩儿」、「消磨时间」的娱乐消费品,将游戏作严肃艺术般的讨论显然有些「可笑」。

    如果抛开游戏是不是「第九艺术」的无谓讨论,我们是否仍然有拿得出手来展开讨论的作品呢?

    于我个人而言,这个转折点发生在 Jonathan Blow 发布于2008的《Braid》。当年第一次看到《Indie Games: The Movie》和玩到《Braid》时候的触动,或许在20年代的今天已难以复述,在此也不再赘述,感兴趣的读者不妨自行浏览文末资料中重轻在机核的节目《关于游戏的信仰》。在我心中 Blow 对游戏本体论那种原教旨主义般的追问就如同建筑学对于 primitive hut 的追问,而第一次取得商业成功并得以进入公众领域的独立游戏《Braid》,则是平行于他孜孜不倦多年布道的一个有力实践,也是游戏得以摆脱其他艺术形式的延伸而在观念上得以自立的一座里程碑。也许这是第一次,游戏可以在本体论的意义上被成为「作品」。(称得上「作品」的史前游戏虽然不少,然而因为受众有限,它们并没有机会真正进入公共领域)

    时隔8年,Jonathan Blow 于2016年初发布了新作《The Witness》,我还记得四年前在 PS4 上焦虑等待预载的那个夜晚以及接下来在这个小岛上长达数周的沉迷。直到后来,重轻发给我这篇文章的链接,我才有机会了解到 Blow 因为对游戏世界设计的执着而邀请了建筑师和景观建筑师团队加入。

    身处美国西岸的建筑师也许早已对此见怪不怪,因为大量西岸高校建筑学的毕业生在毕业后正是进入了游戏行业。而 Deanna van Buren 的这篇文章正是关于这组交叉学科的一个浅显但却提纲挈领的综述。

    建筑师们可以看到的是,本文的内容并未跳脱建筑学的经典框架,但在《The Witness》的深入合作之中,建筑师显然没有固守学科教条,而是试图说明在数字世界全新课题下建筑学的广延,它不是与物质史观意义上的建筑学绝交,而是以其为原点所展开的一次远征。

    值得一提的是,在翻译的过程中我意外发现学生时代的理论课老师 Prof. Dr. Ákos Moravánszky 在退休前最后一个学期把本文加入了他的课程 PPT。我相信,于 Moravánszky 老师而言这显然有着特殊的意义。而对于建筑师同行们,我相信这也正是来自长者和学界的一个信号。

    Prof. Dr. Ákos Moravánszky 在 Visualität 一课最后

    对本文的引用

    最后请容我再啰嗦几句。

    本文发表于游戏媒体 Gamasutra,本是一篇写给游戏人而非建筑师的文章。阅读本文最好对游戏和建筑两个领域均有一定的涉猎,而对不熟悉其中一个领域的读者来说存在一定的难度。在编辑的要求下,翻译笔记被保留了下来,也许这样的注脚尚不能成为类似哲学文本的「注疏」,且将对初次阅读的体验产生一定的影响,但从试读反馈看来,它们也许能为大部分读者提供有益的阅读帮助。

    如果你对游戏还比较陌生,可能还需要简单了解游戏的一个核心概念 gameplay,本文译为「玩法」,它类似于「观看」之于电影,「阅读」之于文学。简而言之,「玩法」即游戏游玩的机制,如何操作并在游戏世界内获得互动体验的一整套输入输出的反馈机制。

    其次,《The Witness》在中文世界多译为《见证者》,但此乃类似《半条命》(Half-Life,半衰期)的粗糙翻译,失去了英语原文的双关义(pun)。于《The Witness》而言,除「见证者」(名词)和「见证」(动词)之外很重要的另一层意思是禅修语境中的「内观」(sakshi),故译文中统一保留《The Witness》英文原文不作翻译。

    第三,原文 gaming with gravitas 中的 gravitas 是古罗马崇尚的德行之一,重力 gravity 即由牛顿以 gravitas 为词源命名,可以体察为有重量、有份量、庄严的意思,本文中的语义指向严肃的游戏作品,与单纯追求收益和娱乐的游戏相对立,可类比严肃文艺作品和娱乐文化产品。

    第四,本文中的 low poly「低多边形」是一种流行于近十年的建模风格。不同于上世纪末限于硬件性能而不得已为止的粗糙低多边形建模,当代的低多边形美学追求的是抽象的艺术效果,所以在低多边形数的建模下,仍然利用当代的硬件性能去呈现细腻的色彩渐变、光照渲染等效果。因为低多边形建模的工作量较小,多受到小成本游戏开发者的青睐。《The Witness》采纳了这种美术风格,则更多是因为考虑到游戏玩法中「观看世界」进而「发现规律」的一种设计,在「过多具体细节导致的视觉干扰」和「过度抽象几何导致的信息抹除」两者之间找到的一种平衡。

    1997年始发于PS1上《Final Fantasy VII》中的 low poly 人物模型,限于机能,背景甚至是2D的静态图片

    <<< 滑动查看图片 >>>

    2016年的《看火人》(Firewatch),前景的山石是典型的 low poly,但石材表面的微妙质感和天空细腻渐变所描绘的 atmospheric perspective 都显然是《最终幻想7》时代的硬件所做不到的

    此外,本文中的「图像素养」visual literacy 是一条隐线的核心论点,也就是指我们眼力和洞察力,在观看某一事物时去理解对象背后关系的能力。我们眼睛看到了,是否等于看懂了呢?其实是个蛮有意思的话题,虽然在经典的意义上,于建筑师而言一直是「建造」为王,但这层意义显然在上世纪末里产生了很大的松动。当然,媒体与建筑早已是老生常谈,我们也不必再回顾关于现场体验与图像传播的讨论。只不过,经典意义上的图像与建筑的联系仍然基于实体空间的建筑,即便包括纸上建筑,也许大多的纸上建筑和建筑畅想仍无法抗拒最终建造的诱惑(从 Fun Palace 到蓬皮杜中心和大阪世博会,从 Archigram 到 Graz 美术馆,从 Superstudio 到 OMA,从 Lebbeus Woods 到 Deconstructivism 建筑,you name it)。纸上建筑与实体建筑的距离再怎么遥远,源头仍然基于同一种现实的基础。然而,游戏中的建筑世界则从一开始便不以建造为追逐的目的,数字世界的实现便是其最终「建成」的终点,这是一个根本性的转向。

    最后说来惭愧,本文的翻译前后拖延了两年,大部分是在长途交通上断断续续完成的。为避免误解,两年间我补玩了文中提及的所有游戏。其中的《Manifold Garden》发布于2019年底,也就补完了最后一块拼图。如果你对游戏的印象仍停留在「小孩子玩的消遣品」,那么本文所提及的这批游戏则指出了一片被忽视的盲区。觉得操作有难度的长辈们,则可以试着从《Gone Home》和《Journey》(中译《风之旅人》)开始。此外,我也推荐《Manifold Garden》、《Superliminal》、《Stanley Parable》这些作品,建筑师们可以在其中看到数字空间中的建筑如何构建出了一场全新的叙事。在不远的未来,也希望类似的文章将不再需要这些啰嗦的注释,作为老人的建筑学和作为新人的游戏能够互相成为对方的常识。正如作者在结语中所言,建筑师们大可以试着去了解一下这片全新的广阔世界,而游戏人也可更多地寻求建筑师结成合作,合力打造更有品质的游戏世界。数字空间的强势无法抵抗,只有交叉学科的深入实践能够为公共文化环境孕育全新的想象力和更可持续的生命力。身为建筑师和游戏爱好者的我,也已做好准备。

    感谢慷慨授权的作者 Deanna van Buren,促成本文翻译的重轻老师,以及负责本文的编辑老师和帮助审校的徐唯钰、董舒堃、梁幸仪。

    ——李博

    END

    mixlab开设了游戏开发的兴趣群~

    欢迎程序员、设计师加入~

    展开全文
  • 常见游戏设计思路及手法

    千次阅读 2020-11-08 19:20:08
    常见游戏设计思路及手法 从设计的角度来看,任何体验都是已经被“计划”好的。但是游戏的结果,可能是一个概率事件,而这种概率事件也是体验的一部分。 游戏的类型 游戏有很多的类型,比如“即时战略游戏”,...

    常见游戏设计思路及手法

    从设计的角度来看,任何体验都是已经被“计划”好的。但是游戏的结果,可能是一个概率事件,而这种概率事件也是体验的一部分。

    游戏的类型

    游戏有很多的类型,比如“即时战略游戏”,“战棋游戏”,“模拟经营游戏”,“恋爱养成游戏”,“第一人称射击游戏”等等,但这一切是从玩家与游戏的交互方式以及“玩法和游戏性”上来进行区分的。

    然而从另外一个角度上来看(比如玩家对游戏的心理预期以及游戏本身对玩家不同能力的要求),游戏又可以被大致分为 “应对型游戏”“计划型游戏” 。前者需要玩家投入更加集中的注意力去应对很多出乎自己意料的事件,大部分玩家在此类游戏中将会几乎无法达成较为困难的成就,或者是打通公认难度较高的级别,因为这种类型的游戏基本上不可能做到“照着某个攻略依葫芦画瓢就可以搞定”;而在后一种类型的游戏中,“攻略”对玩家的影响将非常深远,当发生了“卡关”之类令玩家一筹莫展的情况时,去参考攻略上的打法并牢记,在经过几次练习之后(有时候甚至不用练习)就可以轻松通关,即便是那些看上去很难的游戏内容,只要玩家的记忆力够好能把正确的攻略方式记住,在练习到“执行力和攻略相匹配”之后也能将之搞定。

    “应对型游戏”与“计划型游戏”的主要区别

    应对型游戏

    首先来说说“应对型游戏”。其中代表游戏有《废土之王》这样的roguelike游戏,还有绝大多数具有“竞技”元素的以“玩家与玩家对抗”为主要游戏模式的那些游戏,例如以《DOTA2》和《英雄联盟》为代表的MOBA游戏;以《星际争霸》系列和《红色警戒》系列为代表的即时战略游戏;以《街头霸王》系列、《真人快打》系列和《KOF》系列为代表的格斗游戏等等,从某种意义上来说,包含了“随机地图”元素的《暗黑破坏神2》和《暗黑破坏神3》也可以算在“应对型游戏”当中。

    在这类游戏里,玩家每次进入游戏后所要面对的游戏事件、游戏流程甚至是游戏节奏都会发生变化,唯一不变的或许只有基础的“游戏规则”,比如“火球术会耗费10点法力值”,“腐蚀术可以对命中的目标在X秒内造成N点伤害”,“角色死亡之后会扣除5%身上携带的金钱”等等。除了“基本规则”之外其余的大部分内容都是未知,比如《英雄联盟》玩家在游戏正式开始之前并不能够100%“确定”敌方打野玩家的打野路线,能做的只是“推测”而已;《DOTA2》玩家不能清楚地知道对方的出门装和配线情况,这一切也只能靠“推测”;格斗游戏的玩家在面对陌生的对手时也完全不知道对方的打法和套路,能做的还是只有通过对方所用角色的已知套路和角色性能来进行“推测”;在《暗黑破坏神3》中也是如此,“大秘境”除了地形和路线是随机生成的之外,包括其中的怪物种类,高级怪物的分布位置,怪物的属性、词缀以及地图上可以加以利用的神龛、神坛也都是无法提前知晓的,玩家只能通过自己进入大秘境之前给角色所做的准备以及自己具备的游戏知识来进行应对。

    计划型游戏

    其次再来说说“计划型游戏”。刚才提到的《东方Project》系列以及《心跳回忆》系列之类的弹幕射击游戏和恋爱养成游戏是此类游戏的代表作品,除此之外以《细胞分裂》系列为代表的潜入类游戏还有《英雄传说》《永远的伊苏》这样的日式RPG游戏也基本可以被划入“计划型游戏”的范畴。

    玩家们在开始此类游戏之后所经历的大部分事件、流程以及各种节奏都是基本固定、可预测的,玩家的敌人们(基本上都是由电脑控制的AI敌人)会在时间轴上的相同节点使用统一的技能,最典型的例子就是《魔兽世界》中副本里的各个BOSS,像是8.3版本团队副本里的虚空龙“维克修娜”,她在战斗开始1分6秒之后会“准时”地飞上天空开始“空中阶段”,在落地5秒钟之后如果她的血量在40%以上,那么也会“准时”地开启“漆黑之门”召唤出各种小怪喽啰,这些都是玩家在开打之前就可以掌握的情报,而且并不会存在任何的“变数”让这些事件推迟、提前甚至是不发生(实际上就连每一波“漆黑之门”里涌出的小怪类型和出现的顺序都是固定有序的);而在很多潜入类游戏中,四处巡逻走动的那些AI敌人,他们的路线也几乎是固定的;传统的音乐游戏里(例如《OSU》),需要玩家去进行交互的各项游戏元素(比如在对应区域跟随节拍进行单击、旋转或者拖拽的那些动作),它们在每首歌里出现的位置和时间节点也都是固定的,玩家只要满足“牢记这些操作”和“手速跟得上”这两个条件的话,理论上就可以打通音乐游戏中的任何关卡。

    总而言之,玩家在正式进入“计划型游戏”之前就能够掌握这款游戏中几乎所有的信息与知识,并且根据这些信息和知识可以推演出可行的通关策略。换句话说,玩家可以在“计划型游戏”中通过“背板”的方式通关,而不需要对随机事件做太多的应变。相应的,玩家只需要在这种类型的游戏中投入一段时间进行学习,那么后续他们的游戏体验会显得比较缺少“需探索”的元素,取而代之的是“计划”,甚至可以说此类游戏的玩家,他们的游戏过程可以被简单概括为“计划的制定与记忆”以及“计划的执行”两个部分。不过这并不代表着此类游戏与“应对型游戏”相比有特别显著的劣势。

    “应对型游戏”与“计划型游戏”对玩家能力的不同考验

    应对型游戏:

    • 玩家对此类游戏中各项知识的牢固记忆是他们在游戏中所取得成就和进展的核心基础,他们虽然在游戏正式开始之前并不确定自己将要面对的是怎样的局面,但在通过不断观测与侦查得到信息之后必须把这些信息和自身的游戏知识量结合起来制定出下一步策略——“对手正在做什么?他的目的是什么?我该怎么应对?”在“应对型游戏中”,玩家们的思路基本上是这样“分三步走”的节奏。
    • “应对型游戏”会对玩家们的“反应速度”有所考验。毫无疑问,在面对充满各种“随机因素”,时常发生“超乎意料”事件的游戏时,玩家非常依赖自己的“反应速度”,如果说之前提到的一些“音乐游戏”和“弹幕射击游戏”以及“潜入类游戏”可以靠“背板”来完成通关,甚至是搞定较高难度挑战的话,那么反应速度较慢且过分依赖“攻略”和“背板”的玩家在“应对型游戏”中将很难拿到较高的成就,这也正好解释了为什么在含有“电子竞技”元素的游戏里,那些年龄较大,但是经验丰富的“老将”,他们的价值会被年轻的新生代队员轻松超越的原因,毕竟“竞技类游戏”基本上都属于“应对型游戏”,没有人能够知道对手下一个技能会往哪里放,什么时候放,也不会有人知道对手的枪法准头怎么样,会在哪个位置和你对枪,这一切都需要临场应变(玩过相应游戏的玩家基本上都知道每个技能在命中目标之后所产生的效果,但如何规避掉最具威胁性的那些技能,在敌方主动进攻的时候是选择反打还是逃跑,这一切都需要玩家在极短时间内做出反应),“反应速度”在这里要比“经验”更加重要。
    • “应对型游戏”将会考验玩家在游戏中“资源配置的全面程度”。假设“应对型游戏”中有“装备”、“阵容”或者是“技能、天赋”之类需要玩家在游戏正式开始之前进行“配置”的元素,那么玩家在此类游戏中需要追求的大多数是“普适性”或者说“全面性”,而不是“针对性”。玩家需要的是那种可以应对所有情况的配置,或者是“至少能够应对大多数情况的配置”,因为他们并不知道自己具体会在游戏里遭遇何种情况。

    计划型游戏:

    • “计划型游戏”将会考验玩家们的“分析能力”。就像之前曾经提到的那样,玩家可以轻松获取此类游戏中所有的关键情报,甚至这些情报本身就是游戏的一个组成部分,例如《魔兽世界》中现在就有了内置的“地下城手册”,玩家可以在这里查看到副本各个BOSS会使用的技能,而BOSS们使用技能的时机也是非常固定的,有的是根据时间轴来施放技能,有的则是根据自身的血量状况;还有那些提到过的属于“计划型游戏”类别的作品也基本是这样,几乎所有的恋爱养成游戏玩家都可以提前知道相关的事件应该如何触发,做出什么样的选择会对相应角色产生什么样的影响。
    • “计划型游戏”将会考验玩家们的“记忆力”。在玩家们订制好自己觉得可靠的游戏计划(或者是对他人的游戏计划进行借鉴)之后,还有一个步骤会被放在“执行计划”前面——记住计划的内容。最简单的例子就是音乐类游戏和弹幕射击游戏里的“背板”,如果一名玩家可以完完全全地记住全局中所有游戏元素(比如音乐游戏中需要玩家进行互动的那些模块的类型和出现时机,或者是弹幕射击游戏里出现敌人的位置、类型以及弹幕运动轨迹等),那么他的游戏过程就会像“背书”一样,只需要将正确的操作方式刻在脑海里然后再现出来即可。
    • “计划型游戏”将会考验玩家在游戏中“资源配置的针对性”。与“应对型游戏”完全不同的是,玩家在游戏正式开始之前就可以获取基本上所有的情报,所以也就有足够的空间用自己游戏中已有的资源做出最具针对性的配置。例如在《魔兽世界:争霸艾泽拉斯》中,术士玩家在应对“尼奥罗萨”副本里“主脑”这样长期以多目标形态存在的BOSS时会选择“毁灭”专精来进行开荒,而对于某些纯粹的“单目标”BOSS则会选择“恶魔”或者“痛苦”专精。《大航海时代》系列也属于玩家可以提前知道基本上全部流程的“计划型游戏”,所以玩家们可以在游戏中根据“探险”、“远洋贸易”以及“海战”几类游戏内容选择合适的船只,例如轻快、所需水手较少但是物资储存量相对较多的用于“探险”;货物运载量大,所需水手较少,机动性和耐久度也不错的船只用来做远洋贸易,比如“中国式大帆船”;而舰炮装载量大,水手容量大,耐久度高的船,例如“威尼斯炮舰”则会被用来应对海战。

    “应对型游戏”和“计划型游戏”中常见的设计手法

    在两类不同的游戏中自然也有着不同的设计手法,一种需要让玩家有“一边探索一边应对”的游戏体验,而另一种要让玩家有的是“制定计划,然后在反复尝试中修正和熟悉计划”的体验。

    应对型游戏:

    • 此类游戏中经常会对玩家的视野设限,以此来对游戏的信息进行隐藏。
    • 以PVE为主的“应对型游戏”中应该设计一些玩家可以进行“跳过”的内容。
    • 玩家们在“应对型游戏”中应该有更快的成长速度。
    • 在“应对型游戏”里,将某些游戏元素进行“分层”,然后根据层次再去进行排列组合。

    计划型游戏:

    • 尽可能地向玩家们公开游戏信息。
    • 虽然“计划型游戏”的难度乍看起来较低,但制作组可以围绕“时间”来制定游戏中的各项奖励和成就。
    • 玩家在此类游戏中的成长速度较慢。
    展开全文
  • 游戏设计的艺术:一本透镜的书.pdf

    千次下载 热门讨论 2011-10-12 21:13:51
    游戏设计的艺术:一本透镜的书(天之虹译) 游戏设计神书,可以说是游戏设计书籍中我看过最好的,直接探讨到了游戏设计的本质,对独立与同人游戏开发有很高的参考价值
  • 基于Android五子棋游戏设计与实现

    热门讨论 2013-07-28 23:05:52
    基于Android五子棋游戏设计与实现的毕业设计全套资料,包含任务书,源代码,毕业设计论文,相似度检测报告,开题报告,答辩稿等,绝对的第一手资料,毕业设计我都得了个良好,你们懂的
  • 基于Python的贪吃蛇游戏设计

    千次阅读 多人点赞 2020-07-03 12:30:41
    游戏的主要内容大致分为游戏界面设计游戏功能设计两大部分,其中游戏界面设计是以满足用户的视觉体验为主,游戏功能设计是在满足原有的贪吃蛇游戏基本功能的基础上添加一些其他的功能。本次的实现代码也较为简洁,...

    摘要
    本次论文设计的主题是贪吃蛇游戏。游戏的主要内容大致分为游戏界面设计和游戏功能设计两大部分,其中游戏界面设计是以满足用户的视觉体验为主,游戏功能设计是在满足原有的贪吃蛇游戏基本功能的基础上添加一些其他的功能。本次的实现代码也较为简洁,总共170行左右,运用了Python的一些函数库和模块库,其中最主要的是pygame模块。

    1.引言
    1.1背景、意义
    现如今,人们的生活节奏日益加快,繁忙冗杂的工作、学习和生活使人们的生活变得枯燥,没有新意,休息时间越来越少。面对这样的生活,人们大都渴望在这仅有的休息时间里,找到一些能让身心放松的娱乐活动。于是,贪吃蛇这款游戏就进入了大众的视野。
    1997年,诺基亚工程师Taneli Armanto为诺基亚N6610手机写了一款贪吃蛇程序,命名为Snake,中译贪吃蛇。而后,在我们更加熟悉的诺基亚3310等机型上安装了升级版的SnakeII。2000年,诺基亚重写了程序Snake EX,安装在同年发行的诺基亚9200上。近十年来,贪吃蛇游戏以各种形式出现在各大游戏网站,模式新颖,层出不穷,吸引了数以亿计的游戏爱好者前来游玩。2016年,《贪吃蛇大作战》横空出世,火爆一时。同年腾讯游戏退出《疯狂贪吃蛇》网络游戏,下载量居高不下。如此种种,使得贪吃蛇游戏成为国内外游戏史上传播最广泛的作品之一。
    1.2相关研究、功能介绍
    本次的贪吃蛇游戏主要是仿照前人开发的源代码进行设计的,该游戏拥有和普通贪吃蛇一样的基本功能,主要就是在屏幕区域内绘制出一条小蛇,并且在与蛇不重合的屏幕区域内随机出现一个食物,游戏者通过键盘操纵游戏小蛇上下左右移动来吃到食物,当食物成功被小蛇吃到后,会在另外的区域重新刷新出食物,而小蛇由于吃到食物,身体会增长。除此之外,本游戏的贪吃蛇可以通过吃不同颜色的食物增加不同的分数,同时,分数每增加100,速度也会随之增加1。
    1.3开发工具
    本次游戏的开发平台为windows7(64位),程序设计语言为Python,程序运行环境为Python3.5。

    2.系统结构
    2.1系统结构图

    在这里插入图片描述
    图1系统结构图
    2.11画面设计
    ①游戏的界面构造主要包括游戏运行界面尺寸的定义、背景幕布的覆盖以及墙壁的添加等。
    ②贪吃蛇的构造主要是蛇身的构造,具有贪吃蛇的大部分功能,例如移动、变换方向、碰撞、吃食物等,随着贪吃蛇不断吃到食物,蛇的身体会不断增加。
    ③食物的构造主要是食物随机刷新在界面内,且不与蛇身重合,与蛇头触碰后会消失,并在其他区域重新生成,蛇吃到不同颜色的食物将得到不同的得分
    2.12游戏过程
    ①贪吃蛇必须从蛇的头部开始移动,所以蛇不能反方向移动。也就是尾巴不能变成蛇头。如果你不按任何键,蛇就会以当前的方向向前移动。当玩家按下有效的箭头键时,蛇头按指定的方向移动,一次移动身体一部分。所以当按下有效的箭头键时,首先要确定蛇头的位置,然后身体随着蛇头移动,实现图形就是蛇头从新的位置开始画一条蛇,此时,由于没有清屏,程序在不停地更新屏幕,原来的蛇差了一个单元,看起来蛇的身体会多一部分,所以蛇的最后一部分被覆盖了背景颜色,使贪吃蛇看起来好像是在到处移动。
    ②碰撞检测包含两种情况:第一种是蛇头和墙壁的碰撞,第二种是蛇头和蛇身的碰撞。
    2.13游戏结束
    当蛇头与墙壁或自己的身体发生碰撞时会死亡,这时候游戏进程停止,画面显示GAME OVER。
    2.14添加功能
    ①设置不同颜色的食物,给不同颜色的食物设置不同的分数,贪吃蛇吃到不同颜色的食物就会增加相应的分数。
    ②贪吃蛇每得到100分,速度就加快1。
    ③在游戏设计中添加常规功能。
    2.2主要函数及模块
    2.21主要模块

    表1贪吃蛇主要模块

    模块作用
    pygamePython内置模块,游戏设计模块
    sys系统相关的信息模块
    random生成随机数
    time时间模块,控制游戏帧频
    collections调用deque双向队列形成贪吃蛇

    2.22主要函数
    表2贪吃蛇主要函数

    函数作用
    Main()主函数,控制游戏的所有进程
    print_text()绘制界面幕布
    init_snake()初始化贪吃蛇
    create_food()初始化食物
    get_food_style()吃到食物事件
    pygame.display.set_caption()定义屏幕窗口的标题内容
    pygame.font.SysFont()从系统内加载字体
    pygame.event.get()键盘点击事件
    screen.fill()填充窗口的背景色
    pygame.draw.line()画网格线
    time.time()获取当前时间
    pygame.display.update()把我们绘制的东西显示在屏幕上

    3.实现代码
    3.1初始框架

    在制作游戏之前基本工作都是要初始化框架。首先是导入游戏设计模块pygame并初始化该模块,然后设置框架的宽度和高度,用pygame.display.set_mode()函数初始化准备显示的窗口,再用pygame.display.set_caption()函数给这个窗口添加标题。代码如下:

    python
    import pygame
    
    SCREEN_WIDTH = 600      # 屏幕宽度
    SCREEN_HEIGHT = 480     # 屏幕高度
    
    pygame.init()          #初始化模块
    screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))    #显示窗口
    pygame.display.set_caption('贪吃蛇')
    

    效果图如下:
    在这里插入图片描述
    3.2初始游戏画布
    有了游戏框架之后,要在框架里面初始游戏画布。首先要设置小方格的大小以及网格线的宽度,然后设置游戏区域的坐标范围,再设置网格线的颜色以及画布的背景颜色,接着用screen.fill()函数填充背景颜色,用pygame.draw.line()函数绘制网格线,最后用pygame.display.update()函数将我们绘制的东西显示在屏幕上。代码如下:

    SIZE = 20               # 小方格大小
    LINE_WIDTH = 1          # 网格线宽度
    
    #游戏区域坐标范围
    SCOPE_X = (0, SCREEN_WIDTH // SIZE - 1)
    SCOPE_Y = (2, SCREEN_HEIGHT // SIZE - 1)
    
    BLACK = (0, 0, 0)           # 网格线颜色
    BGCOLOR = (40, 40, 60)      # 背景色
    
    screen.fill(BGCOLOR)       # 填充背景色
    #画网格线 竖线
    for x in range(SIZE, SCREEN_WIDTH, SIZE):
        pygame.draw.line(screen, BLACK, (x, SCOPE_Y[0] * SIZE), (x, SCREEN_HEIGHT), LINE_WIDTH)
    #画网格线 横线
    for y in range(SCOPE_Y[0] * SIZE, SCREEN_HEIGHT, SIZE):
    pygame.draw.line(screen, BLACK, (0, y), (SCREEN_WIDTH, y), LINE_WIDTH)
    
    pygame.display.update()       #显示绘制的东西
    

    效果图如下:
    在这里插入图片描述
    3.3构建贪吃蛇
    初始化完游戏画布后要给画布添加贪吃蛇。首先要导入必要的一些模块,如监听键盘控制的sys模块,监听时间的time模块,构成贪吃蛇的collections模块中的deque()以及pygame模块中的各种常量。代码如下:

    import sys 
    import time
    from pygame.locals import *
    from collections import deque
    

    然后先初始化蛇,包括蛇的颜色和蛇的初始长度。代码如下:
    DARK = (200, 200, 200) # 蛇的颜色
    #初始化蛇

    def init_snake():
        snake = deque()
        snake.append((2, SCOPE_Y[0]))
        snake.append((1, SCOPE_Y[0]))
        snake.append((0, SCOPE_Y[0]))
    return snake
    

    然后是贪吃蛇方向的控制,这里采用pygame中的键盘监听事件,代码如下:

    while True:
            for event in pygame.event.get():
                if event.type == QUIT:
                    sys.exit()
                elif event.type == KEYDOWN:
                    if event.key == K_RETURN:
                        if game_over:
                            start = True
                            game_over = False
                            b = True
                            snake = init_snake()
                        
                            pos = (1, 0)
                            # 得分
                            score = 0
                            last_move_time = time.time()
                    elif event.key == K_SPACE:
                        if not game_over:
                            pause = not pause
                    elif event.key in (K_w, K_UP):
                        # 这个判断是为了防止蛇向上移时按了向下键,导致直接 GAME OVER
                        if b and not pos[1]:
                            pos = (0, -1)
                            b = False
                    elif event.key in (K_s, K_DOWN):
                        if b and not pos[1]:
                            pos = (0, 1)
                            b = False
                    elif event.key in (K_a, K_LEFT):
                        if b and not pos[0]:
                            pos = (-1, 0)
                            b = False
                    elif event.key in (K_d, K_RIGHT):
                        if b and not pos[0]:
                            pos = (1, 0)
                            b = False
    

    接着是给画布添加蛇的速度和得分文本框,代码如下:

    def print_text(screen, font, x, y, text, fcolor=(255, 255, 255)):
        imgText = font.render(text, True, fcolor)
    screen.blit(imgText, (x, y))
    
    font1 = pygame.font.SysFont('SimHei', 24)  # 得分的字体
    
    score = 0           # 得分
        print_text(screen, font1, 30, 7, '速度:'+str(score//100))
    print_text(screen, font1, 450, 7, '得分:'+str(score))
    

    最后用time模块模拟贪吃蛇的移动,代码如下:

    orispeed = 0.5      # 原始速度
    speed = orispeed
    last_move_time = None
    curTime = time.time()
        if curTime - last_move_time > speed:
    if not pause:
        	b = True
            last_move_time = curTime
            next_s = (snake[0][0] + pos[0], snake[0][1] + pos[1])
            if SCOPE_X[0] <= next_s[0] <= SCOPE_X[1] and SCOPE_Y[0] <= next_s[1] <= SCOPE_Y[1] and next_s not in snake:
            snake.appendleft(next_s)        #将下一格的坐标添加到列表开头
            snake.pop()         #移除最后一个元素
    

    效果图如下:
    在这里插入图片描述
    3.4构建食物
    首先要导入random模块用于随机生成食物的位置,然后设置食物的颜色和分值,再初始化食物,最后判断蛇是否吃到食物,如果吃到食物就随机生成新的食物,代码如下:

    import random          #用于生成随机数
    #食物的分值及颜色
    FOOD_STYLE_LIST = [(10, (255, 100, 100)), (20, (100, 255, 100)), (30, (100, 100, 255))]
    
    def create_food(snake):
        food_x = random.randint(SCOPE_X[0], SCOPE_X[1])
        food_y = random.randint(SCOPE_Y[0], SCOPE_Y[1])
        while (food_x, food_y) in snake:
            # 如果食物出现在蛇身上,则重来
            food_x = random.randint(SCOPE_X[0], SCOPE_X[1])
            food_y = random.randint(SCOPE_Y[0], SCOPE_Y[1])
    return food_x, food_y
    
    def get_food_style():
    return FOOD_STYLE_LIST[random.randint(0, 2)]
    
    next_s = (snake[0][0] + pos[0], snake[0][1] + pos[1])
                        if next_s == food:
                            # 吃到了食物
                            snake.appendleft(next_s)
                            score += food_style[0]
                            speed = orispeed - 0.03 * (score // 100)
                            food = create_food(snake)
                            food_style = get_food_style()
    #画食物
    if not game_over:
    pygame.draw.rect(screen, food_style[1], (food[0] * SIZE, food[1] * SIZE, SIZE, SIZE), 0)
    

    3.5碰撞检测
    当贪吃蛇撞到自己或者墙壁后无法继续向前移动时进程停止,游戏结束,显示GAME OVER!
    代码如下:

    font2 = pygame.font.Font(None, 72)  # GAME OVER 的字体
    fwidth, fheight = font2.size('GAME OVER')
    
    game_over = True
    start = False     # 是否开始,当start = True,game_over = True 时,才显示 GAME OVER
    
    if not game_over:
        curTime = time.time()
        if curTime - last_move_time > speed:
        if not pause:
        b = True
        last_move_time = curTime
          next_s = (snake[0][0] + pos[0], snake[0][1] + pos[1])
          if next_s == food:
          # 吃到了食物
              snake.appendleft(next_s)
              score += food_style[0]
              speed = orispeed - 0.03 * (score // 100)
              food = create_food(snake)
              food_style = get_food_style()
              else:
                  if SCOPE_X[0] <= next_s[0] <= SCOPE_X[1] and SCOPE_Y[0] <= next_s[1] <= SCOPE_Y[1] and next_s not in snake:
                      snake.appendleft(next_s)
                      snake.pop()
    else:
       game_over = True
    
    if game_over:
    if start:
    print_text(screen, font2, (SCREEN_WIDTH - fwidth) // 2, (SCREEN_HEIGHT - fheight) // 2, 'GAME OVER', RED)
    

    效果图如下:
    在这里插入图片描述

    4.实验结果
    在这里插入图片描述
    5.总结和展望
    本次实验过程中也是遇到了许多的问题,比如一些模块的功能函数等,不过,通过较长时间的翻阅查找也研究清楚了代码的实现原理。该游戏还有一些不足之处就是未能实现高分榜等功能,总的来说还是收获满满。

    展开全文
  •  目前国内市场的游戏普遍为一些带有“快餐特色的RPG”游戏居多,并且这一类型的游戏设计思路已经发展成为游戏开发者们“月经”一样的存在,有很多人“取经”,也有很多人“传道”,设置有些人对于这一设计模式...
  • 游戏设计艺术 第2版 (Jesse Schell 著)

    千次阅读 2019-06-13 12:31:00
    第1章 太初之时,有设计师 第2章 设计师创造体验 第3章 体验发生于场景 第4章 体验从游戏中诞生 第5章 游戏由元素构成 第6章 元素支撑起主题 第7章 游戏始于一个创意 第8章 游戏通过迭代提高 第9章 游戏为...
  • Unity游戏设计与实现.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
  • 基于MATLAB的拼图游戏设计 内容摘要:MATLAB强大的运算和图形展示功能,使图像处理变得更加的简单和直观。本博文基于MATLAB编程语言,详细介绍了如何利用MATLAB及其图像处理函数进行经典拼图游戏设计,并通过...
  • 当我去设计一个游戏,一个玩法,包含规则,游戏对象等等一系列的游戏系统,用纸可以写下来,用嘴可以说出来,但是当我想要用程序去实现这一堆东西的时候,就有些无从下手。比如我们大家都会下五子棋,它有一个明确的...
  • 转自浅墨毛星云:http://blog.csdn.net/poem_qianmo/article/details/53240330...我们知道,游戏行业其实一直很缺一本系统介绍游戏编程进阶技巧的书籍,而《游戏编程模式》的出现,正好弥补了这一点。之前已经有提到过
  • 游戏设计艺术(第二版)》读书笔记 书名:游戏设计艺术 作者:Jesse Schell 翻译:刘嘉俊、陈闻、陆佳琪、杨逸、王楠 出版社:中国工信出版社 简评: 本书对游戏设计的开发、团队合作、商业售卖、责任等各个...
  • Android拼图游戏设计(包括游戏算法及数据库设计)

    千次阅读 热门讨论 2019-06-30 17:24:38
    拼图游戏设计可以分为如下几个部分:① UI设计;② 事件监听,事件处理;③ 游戏逻辑。 用户首先进入登陆注册界面,在登录注册模块可以实现注册登录功能,同时实现修改密码和注销用户的功能,这一功能模块需要...
  • c# Windows窗体应用程序设计综合实例(一)匹配游戏设计 上次的计时器运行效果图如下: = ------------------------------------------------------------------------------ 今天来分享一个综合实例,设计一个匹配...
  • 贪吃蛇游戏设计总结

    千次阅读 2017-12-27 14:39:53
    此博客用来记录字符游戏贪吃蛇设的设计过程(我踩过的那些坑)。。。。。贪吃蛇,作为一款经典的游戏,网上有很多相关的框架,相关的算法也有很多。在该项目中,我采用自顶向下,逐步求精的思想设计,整体的设计框架的...
  • LabView实战笔记——贪吃蛇游戏设计

    千次阅读 2021-04-05 08:32:45
    Labview的基础入门: 我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去...app_version=4.5.8 一、基本思路 需要完成的功能: 蛇显示 蛇移动函数 随机蛋(蛇吃的)产生 ... 游戏结束判断 ...二、游戏界面初始..
  • 基于51单片机的贪吃蛇游戏设计

    千次阅读 多人点赞 2020-06-25 00:06:05
    本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在CSDN下载区) ...贪吃蛇是一款经典小游戏,其游戏的规则是:玩
  • 迷宫游戏设计思路

    千次阅读 2019-10-10 21:46:08
    分配迷宫空间; 分配足迹路径空间; 初始化迷宫行数列数; 初始化迷宫元素——系统固定、用户输入; 初始化迷宫起点和终点; 初始化迷宫足迹为0 迷宫形状三种模式,用到switch()case语句。...走过的足迹坐标记录在...
  • 在这一章中,作者通过一个具体的桌面游戏Bartok入手,介绍了游戏设计与测试的基本流程。之后对比并分析了研究者们给游戏进行的基础定义。 Part 1: Bartok 1、 游戏练习:Bartok Bartok是一个和Uno非常相似的游戏...
  • VR游戏设计之三大特性

    千次阅读 2016-08-16 19:40:28
    游戏发展至今一个限制游戏创新的重要特征是硬件提供更加全新的概念与游戏开发者,而VR设备的崛起提供了这样一个可能性。说起VR我们总会提及沉浸感,本文重点解析如何通过VR特性体现产品的虚拟现实概念。在笔者看来VR...
  • 在这篇文章之前,我已经写了三篇相关的读书笔记,但感觉一次一种模式的介绍,节奏太慢,就用这篇总结式的文章来把19种设计模式一次介绍完。 零、全书内容思维导图以下是《游戏编程模式》一书的内容梗概,全书内容19...
  • 只要游戏能赚钱的好游戏可算是精品游戏,而经典的游戏,必然有深厚的游戏内涵,甚至能够从这个游戏产生周边产品:例如从游戏改编电影,玩具等等,有额外附加值。一个游戏的好坏由多方面决定,这里我们只关注趣味性。...
  • python2048游戏设计

    万次阅读 2016-11-05 23:34:55
    python 2048游戏 pygame
  • 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没有合适的模板?等等一系列问题。你想要解决的问题,在专栏???????????????????????????????? ...
  • Unity 游戏设计心得体会

    千次阅读 2019-05-02 21:31:32
    日期:2019年5月2日 基础知识:需要掌握3dsMax建模知识与技术 关键步骤:导入模型文件,给模型添加物理属性和触发器,...学习方式:制作游戏最注重的是灵感,寻找游戏的乐趣,游戏制作者同时是一名游戏玩家。 ...
  • 游戏设计的100个原理》摘要

    千次阅读 2017-10-07 08:36:11
    游戏设计的100个原理》
  • Roguelike游戏设计(一)

    千次阅读 2017-03-17 00:15:35
    Roguelike类型的游戏是最古老的游戏类型之一,玩家只有一条命...但是要设计该类型游戏的数值,必须先定位这类型游戏的玩法以及相关的系统。本文的主要目的在于阐述我们要设计游戏有哪些玩法。 玩法设计: 1.玩
  • Verilog FPGA开发入门--游戏设计

    千次阅读 2018-06-17 00:37:31
    大概分为VGA显示模块、PS2模块、以及游戏设计。这篇主要讲一下如何用VGA做显示附,赠程一路走来的序源码。关于VGA显示的原理这里就不细讲了,网上有很多相关讲解。来点干货,VGA显示的方式大概可以分为三种:1.直接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 428,675
精华内容 171,470
关键字:

游戏设计