• 全部 专栏 Game Jam专区
    • 捷文 1305

      USC的文化 - 游戏公司和游戏设计师能从USC学到什么?

      由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。
      USC的文化
      之前文章中讲的课程设置,设计的理论,实践的方法,这些都很重要,但还不是USC游戏设计专业的核心。真正的核心在于USC的文化:教学思路
      如同上篇文章所讲,USC的课程不是“教”给学生知识或技能,而是讲解底层的思路,让学生依照正确的模式大量实践,自由探索,做出作品后由教授给出反馈。如果你想全等人来教,或期望上过课就自带10点全属性加成,那就学不到这里的核心。正相反,在这里刚开始学的时候,觉得自己什么都不会,什么都从头来。因为从头来,从底层思考,才能重新理解游戏,分析每一个设计是为什么,看到更大的空间。
      一个手游抽奖如何设计的分享,可能马上就能让其他设计抽奖的策划受益,但很难帮人学会更广泛的游戏设计。
      视野
      在这里我们看到大量不同领域的游戏,从AAA到独立游戏,到桌游,严肃游戏,big game,桌面RPG(如龙与地下城),ARG,LARP,以及非游戏的交互体验。我们的写作课教授被USC邀请来做教授时,她说,“可是我从来不玩游戏”,USC的人说,“这正是我们想要的”。 第一堂课上教授展示的部分游戏
      甚至,我们看到身边的人就在探索种种不同类型的游戏,听到他们的设计思路和经验分享。这里的教授很多人都在做自己的独立游戏,每年毕业的学生也常回来分享经验。
      因为这样的视野,我们知道游戏的创造空间有多么广阔,而不会被熟悉的领域限制;因为这样的视野,我们不会受限于过于具体的游戏设计方法,而是去关注更底层的思维,在实践中理解设计。同伴同学们来自完全不同的背景,对游戏却都有艺术和探索的追求,都希望做出好的游戏,创造性的体验。在课上,大家学到的是相同的底层思维方式,每个人分别应用于不同的项目上,从而获得了不同的经验。而因为相同的思维方式,以及频繁的交流,这些经验更容易被共享出来,帮助每个人从不同角度来思考自己的项目,也常常被其他的项目震撼和启发。
      最重要的,因为以上两点,大家相互之间有了很深的尊重和信任。一方面,因为大家有类似的追求,所以不会有人给出方向完全偏离的意见;另一方面,因为大家有不同的经验和视角,每一个人的反馈都可能带来价值和启发,更增进了互相之间的交流。
      比如,我虽然对自己想做的方向有比较多的思考,但是每次双人合作项目都是我做的最好的,也是带给我最多乐趣的。因为双人合作中能够互相探讨,在相同的基础思维上,发现不同的视角,互相启发,挖掘出大量的灵感。
      教授教授们大部分都对独立游戏非常投入,并富有经验,每个人也有自己擅长的方向。学校有多个实验室,不同教授可以探索各自的方向,比如VR,教育游戏,健康类严肃游戏等。教授教学的过程,是引导学生的发展,而不是把思维强加于学生。比如我们做出项目了在课上讨论反馈,教授所做的最重要的不是给出反馈,而是引导其他学生从不同角度思考,让学生给出反馈,同时也练习对游戏不同角度的思考。

      游戏公司从USC的文化中,我认为有两点是游戏公司培训策划最值得学习的。转变培训的思维 - 培训不等于讲课国内的培训往往是讲师讲课,学生听讲。这种培训可以用来分享针对性的经验,解决具体的问题,但是对提高策划的能力帮助不够,因为缺少对应的实践机会,且不够系统。大家都知道游戏设计不能离开实践,但是因为习惯了讲课式的思维,从具体课程到培训体系的设计,往往都不允许实践真正成为培训的一部分。国内有不少朋友问过我,在USC会不会学历史、经济学、心理学等课程。这些领域的知识自然会对游戏设计有帮助,尤其在国内,MMORPG从端游到手游都离不开战斗、成长、社交,国内在这样的细分领域做了这么多年,继续挖掘下去,自然需要相关领域的知识。但是这些都是可以教的知识,不是游戏设计的根本。如果学生自己想要探索某个领域,就可以去研究相关的知识,但是获得了根本的游戏设计思路,才能自由探索任何方向。
      如果想要真正学习USC的游戏设计方法,公司里的游戏策划们需要有一定时间投入在与这套培训体系匹配的项目设计上,实践练习,而不是只想着把方法应用到现有商业项目上,马上就期望效果。而且这种练习并不会花费太多的时间:我们在一个课程项目上每周大概花6-12小时。

      新人系统培训在USC,很多同学来之前并没有什么游戏设计经验,但是经过短暂的训练,就能有明显的成长。第一个学期结束时,我们回头看学期初做的游戏,都不好意思承认是自己做的。那短短几个月的时间,我,或者我看到的身边每个人在游戏设计上的成长,都远远超过了我刚进公司相同时间所达到的。新人策划在公司,一方面会受职位职责限制,长时间持续设计某一个系统,而缺少机会深入理解其他系统,对游戏总体有更深认识;另一方面,因为项目周期限制,尤其在端游时代,很多人几年都一直在做未发布的项目,或者一直在做线上运营的项目,从而缺少对整个流程的了解。在USC,我们快速的完成几个小的游戏,从而让每个人对游戏系统有更深的总体认识,并且了解一个游戏从立项到完成可玩版本的各个环节,从而建立更完善的设计思路。

      游戏设计师对游戏设计师个人而言,如果对USC的游戏设计有兴趣,如果想做我们在这里做的游戏,最好的方式当然是来USC学习。如果不能,也不要因为缺少环境就放弃了对基础实践的学习。对这些基础的学习,一方面是对独立游戏设计最好的训练方法,另一方面,经过这些练习,当你更理解的独立游戏的设计思路,你也能看到更大的视野,接触更多更好的同伴,创造你自己的环境。
      同时,想要学习这些,请按照课程或书上的流程来,而不是试图把设计方法照搬到自己的项目上,发现没效果而觉得是这种方法不奏效。比如想要熟悉纸面原型,不要试图针对你现在正在开发的大项目做一个纸面原型,而是做玩具/桌游分析,改桌游,再给自己一周时间做一个纸面原型gamejam小项目,之后再谈你对纸面原型有什么问题,你对这种设计方法有什么问题。如果我们在USC有最好的老师,最合适的同学,全职投入,都还需要经历这整个流程才能熟练游戏开发流程和思路,那你在缺少这些条件的情况下,不按照对的流程做难道能学的更好嘛?
      -----------------------------------------------------------------------------------------------
      本专栏第一章到此结束。下篇将开启第二章,总结具体项目的经验,与游戏设计流程中各步骤的经验。

    • 红茶君 3463 2

      关于Steam开发者的税务认证问题

      搬运一个很有用的经验,来自于某位成功通过绿光的开发者。之所以说很有用,是因为这个方法真的可以帮大家省钱,说不定还能省好多(*/ω\*)
      这里要讲的就一件事,如果你在中国,你的游戏通过了steam绿光,那么你的税务认证可以做到10%,而不是30%。
      我开发的游戏《I&ME》于今年5月通过的steam绿光,并完成了税务认证,结果为10%,下面我来具体说明。
      之前在雅文的群里和“哼次干活玫瑰狗”聊天发现他的游戏在steam上的税务认证为30%,而且他说大部分中国独立开发者也是这样的结果,也就是说,你的收入会先被steam抽走3成,然后剩下的部分还要交30%的税,那其实就不剩多少了。这个算法对于美国开发者来说是正确的,但中美有某项贸易协定,对中国开发者收取的税务可以降低至10%。那么如何进行税务认证的呢,下面是steam给我的回信: 也就是说你可以用本地的税号来进行税务认证,也就是中国的税号,而中国的个人税号就是你的身份证号。

      所以说,我上面BB这么多要说的就是你在税务认证的时候,他让你填TIN的时候,你应该选foreign TIN,然后把自己的身份证号填进去,这样如果你后面其他的东西没填错的话,你的税务认证结果应该是10%。
      结果应该是这样的: 希望国内准备上绿光的开发者能注意到这一点,以免被多扣钱。如果大家在实际操作中发现我说的内容有什么问题,请务必即使更正,避免误导更多人,毕竟我的游戏还没上线,实际情况还有待证实。也就说理论上的算法是:假如你的游戏卖10$10*(1-30%)*(1-10%)=6.3$ 最终你可以拿到6.3$,但由于各区价格不同,你最终拿到的一定远远低于这个数字

      如果你的认证结果是30%的话,赶紧重新认证吧。

    • 捷文 1286 1

      游戏专业的电影课 - 向百年致敬

      由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。
      USC游戏设计专业在电影学院下,得以享受电影学院的诸多资源,有几门非常好的相关课程。Experiments in Interactivity - 拍电影入门课 这个课程是我们拍电影的入门课,讲摄像、剪辑和灯光等手法,除此之外就是自己拍电影。其中一个是传统的线性叙事电影,3-5分钟,另一个是非线性交互电影。
      理论部分很少,核心在于动手去做和得到反馈。拍电影和做游戏类似,想的再多也没用,必须拍出来才能看到效果,学到东西。这个课程最大的价值,是打开一片新的空间,让我们看到游戏和电影的结合。很多人的毕业设计项目,做的就是交互式电影或游戏和电影的项目,类似《Her Story》。和我同班的@陈潮 同学在这个课程中做了一个交互式叙事的项目,稍后将在此专栏发布完整项目回顾总结,预告如下:在1201 Housing这个互动式的观影体验里(我坚决不认为她是个互动电影),我立足于观众观看故事的角度,而不是故事本身阐述的角度。这是一个发生在一栋房子里的五分钟的故事。在故事发生的时候,玩家/观众可以在安装在四个房间的四个摄像头之间即时切换,观看发生在当前房间里的事情。他们可以选择一直观察某个房间,也可以跟踪某个角色的行动来观察这个角色的行为。他们要通过观察来推理出谁是凶杀案的凶手。
      非线性交互电影的项目,我的设计概念是,一个故事中发生的几个事件,由玩家选择顺序,组成完全不同但又合情合理的故事,从而在一个统一的故事背景下体验交互带来的变化。我拍了一对男女相遇,good date,bad date,baby这样几段片段,玩家可以选择顺序,每一种顺序的选择都是一个不同的故事。比如玩家选择good date->bad date->baby,故事就是这对男女开始在一起很开心,然后分手,结果发现有了baby,女方独自孤独的抱着baby。如果玩家选择bad date->baby->good date,则这对男女最开始有冲突,然后发现有了baby,最后重归于好。
      设计概念
      Screenwriting - 剧本写作
      每周写一个故事,逐渐掌握剧本写作中的各个核心概念,如制造悬疑,角色塑造,世界构建等,并逐步从线性叙事过渡到非线性叙事,设计交互式故事,ARG(平行实境游戏)等。这个课程的教授Maureen McHugh,作品被雨果奖和星云奖提名,设计了《I Love Bees》(为了推广《Halo》而做的ARG)等经典交互叙事游戏。
      在此之前,我关注的多是偏重游戏机制的游戏,这个课为我打开了游戏叙事的新世界。
      PS: 游戏叙事不等于游戏故事。很多故事很好的游戏,叙事机制上毫无设计。好的游戏叙事机制,应该让游戏玩法和叙事结合起来,通过这种叙事机制,让玩家更好的体验故事,沉浸于情感体验中,而不是让玩家一边看故事一边打僵尸度过20个小时。
      通过写作我发现,一个好的故事是自我生长的。作者就像农夫,只能施肥浇水,却不能直接决定故事的走向。因为故事是建立在世界设定和角色性格上的,一个世界中不能发生不符合其规则逻辑的事件,一个角色也不应该做出不符合他性格或思维方式的行为。写作中要做的不是写出一个个波澜起伏的事件,而是架构一套故事设定,从而让一系列充满戏剧张力的事件得以发生。很多时候写作非常痛苦,因为我希望剧情朝某个方向发展,但是我的故事设定却不支持这样的剧情发生。这种时候如果强行让事件发生,就会破坏世界的内部完善性,让故事出现逻辑漏洞。想要修改故事设定,必须顺着已有设定的基础发展,让其生长,而不是直接加一条规则或减一条规则,因为逻辑是建立于人的常识,而不是作者的设定。这是一个探索的过程,而不是制造。
      在这个课程的最终项目上,我设计了一个交互式版本的《窃听风暴》,模仿原作设定,一群被东德秘密警察监控的艺术家试图向外发出声音,但是遭到秘密警察调查审问。玩家依次扮演同一个故事中参与密谋的不同角色,包括两个密谋的艺术家,艺术家的女友,负责监视他们的秘密警察。玩家需要选择是保全自己出卖朋友,还是牺牲自己从而让计划得以成功执行。玩家为每一个角色做出的选择,就是他之后扮演的角色所面临的环境。如果玩家扮演角色A出卖了角色B,他扮演的角色B就会被A出卖。只有当每个角色都做出了善的选择,朋友爱人不互相出卖,秘密警察为了保护这些无辜的人而牺牲自己的职业,整个计划才能被成功执行。
       《窃听风暴》(英文名The Lives of Others更符合我做的这个版本)
      我在国内上过一门游戏剧本写作的课,讲了很多具体的做法,比如一个故事中应该有一个莽福将,增加喜剧效果同时引发情节。越是具体的“你要这样这样做”的经验,越是术,越不是核心。这种经验看起来简单有效,但是只适用于特定的场合,将设计者限制在其中。真正核心的经验,能讲出来的都是非常少的,自己在做的过程中体会到的才是精髓。有了核心的思路,按照标准的流程去做,积累感悟,才能得到真正有价值的经验。同时也只有在这样的基础上,设计者才能创新。Visual Expression - 电影中的视觉设计
      这不是讲如何画画,如何做游戏美术的课。这是讲视觉元素如何组合,如何配合故事需要制造不同的intensity。课上会讲不同的视觉元素,比如space,shape,color,line等,同时分析电影镜头中每个视觉元素如何创造了那一幕的体验。比如一个爆炸场景背后的墙上的油漆,如果是横条纹的,竖条纹的,斜条纹的,分别带来怎样的观影感受?课程的作业主要是拍大量的照片,在构图中创造指定的视觉元素组合。比如拍一个三角形和圆形交织的照片,创造contrast of shape。具体内容可以参看教授的书《The Visual Story: Creating the Visual Structure of Film, TV and Digital Media》教授去给美国的各大游戏公司都上过课,教视觉设计。我问教授,你是如何和那些游戏公司合作做项目的?他说和我们这里上这门课的方式完全一样,我给他们讲这些最基础的东西。
      他在Valve讲课的时候,Valve的人说:你只要给我们讲你的理论就好了,怎么适应游戏由我们来研究,你不用思考这个问题,不用找游戏的例子。我们现在做了大概20年游戏,电影已经有100年了。等100年后,当我们有足够多经典的游戏视觉设计案例时,我们再来讲游戏。
      即使在电影中,绝大多数视觉设计也都是从更早的艺术形式中学来的,比如2000年历史的绘画等。只有摄像机的移动,是唯一的电影中独特的视觉元素(物体的移动在舞台剧中存在,观众关注点的移动在绘画中就存在)。在游戏中,虽然玩家有控制权,可以选择视野方向,但是也只有交互性这一条是全新的,设计师对空间的控制性差一些,其他一切的颜色,形状,运动等,都是一样的,有大量前人经验可以借鉴,而不应该只把眼光放在同类作品上。从核心到实践在这三门课程以及其他的游戏设计课程,一个最大的共同点是,它们都是讲最核心最底层的理论和思维方式,然后学生自己大量实践,自由探索,老师再针对学生做出的作品给出反馈,帮助学生提高。是这些底层的思维,让学生真正明白自己在做的是什么,从而找到创新的方向。相反,越是具体经验的总结和传递,往往越把学生困在这些经验上,只能做这一种类型的游戏。


    • 捷文 2552 7

      Design for Interactive Media - 游戏设计第一课

      由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。

      Design for Interactive Media - 游戏设计第一课
      Design for Interactive Media,这是我们在USC游戏设计专业(下称USC)的第一课,也是我们设计思维的基础,由系主任Tracy Fullerton教授上课。 这门课上我们学到的,是游戏设计的流程和思维方式,用系统和迭代的眼光来思考游戏。 这是我们之后所做所有项目的基础思路。 说它基础,因为它是底层的思路,而不是表层的经验总结。不是当你设计XX类型游戏的时候要这样做,而是在设计任何类型的游戏都可以用,并在这个基础上发展变化。如果没学好,做项目就一定有各种问题;这门课上学到的,之后的项目过程中会屡屡回到这套思路上,更深的认识它,这也是我为什么过了一年才认真写这门课。 这门课包括两部分:系统设计和迭代开发流程——熟悉迭代的流程,并在这个过程中加深对游戏系统的理解。 这和《游戏设计梦工厂》(介绍见卷首语: Game Loading - 游戏设计梦工厂 - 知乎专栏)这本书的架构基本一致,这本书正是这门课的教科书。这是我推荐这本书的原因,尤其针对独立游戏开发者和想申请美国游戏设计专业的人来说,读这本书并按照其中的流程和作业自己做游戏,是最好的理论和实践结合的训练方法。 课程结构: 1. 学习游戏系统元素,游戏系统由哪些部分组成; 2. 系统分析练习。对一个玩具的系统进行分析,比如魔方,纸牌,筛子; 3. 桌游系统分析。对一个桌游的系统进行分析; 4. 改游戏。在一个现成儿童桌游的基础上修改,设计变体; 5. 从体验目标出发设计游戏; 6. 设计纸面原型,然后移植为电子版;
      一、系统设计 我们所讲的系统设计,和国内游戏行业讲的系统设计,最大的区别在于:我们把游戏总体作为一个系统,思考游戏中各部分的设计之间如何互相影响,比如规则1和规则2交互,创造什么样的体验;国内因为主流是MMORPG之类的大型游戏,讲系统设计往往是讲游戏中的一个系统,比如装备系统,宠物系统等,思考的是这个系统本身的设计,而这个系统怎样和游戏中其他部分耦合,涉及的相对少(或者说在交到这个策划手上的时候已经被决定了),因为这一个系统就已经很大了,有足够多的细节需要一人或多人专职研究。 我们这里讲的系统设计关注的是规则,目标,资源,冲突等等的系统元素,这些在《游戏设计梦工厂》的前五章中做了详细的阐述。这里举一个例子: 玩家,作为游戏系统的一个部分,在多数游戏设计中都是不被考虑的,因为有“默认值”:所有的游戏都面向玩家,而其他的游戏都是这样的,所以相关环节一定被其他游戏设计过了。 而在《游戏设计梦工厂》这本书中,将玩家的交互模式分成了以下这些: 1. 单个玩家对抗游戏系统 2. 多个独立玩家对抗游戏系统:比如老虎机,或者单机刷排行的游戏; 3. 玩家对抗玩家 4. 单边对抗:玩家有两个阵营 5. 多边对抗:玩家有多个不同阵营,互相对抗,比如大富翁等桌游,魔兽争霸3的FFA模式; 6. 合作游戏 7. 团队对抗:比如2V2, 3V3; 也许这里的很多模式你都设计过,但是把这些模式罗列清楚,为每一种模式列出尽可能多的游戏,思考他们有怎样的设计,相信会帮助你更好的理解这种模式的基础逻辑。有这样的基础,才能更好的思考一个设计为什么是这样,而不是因为别人做了所以我们也这样做。 《Journey》的设计中,因为他们思考过玩家交互到底应该是什么样的,所以这个游戏中玩家没法打字,没法语音,没有用户名,不能邀请好友,不能和好友一起进行游戏,因为这些设计都会破坏这个游戏的系统完整性。 “我们花了这么大力气把玩家置身于一个魔法世界。而这些名字,这些文本,瞬间把他们推回了现实。要让玩家们合作和产生情感连结,他们必须忘记这些现实的东西。” ——陈星汉 这些系统元素,并不是学过了就可以做出系统完善的游戏,而是在做游戏的时候提供一种思考的方向,从而帮助设计师在做项目的过程中建立系统式的思维方式,这也正是接下来各个步骤的目的。
      二、系统分析 这门课的第一个作业是分析一个玩具的系统设计,包括其视觉设计,数学模型,历史,文化背景等。我抽到的是魔方。 在国内的时候,我看过一些MMORPG的系统反推分析,基本都是把一个游戏的各部分系统罗列出来,画几个箭头连起来而已。按照这样的思路,魔方的分析可能只能写一行字了。 魔方,英文名为Rubik's Cube,又叫魔术方块,也称鲁比克方块。是匈牙利布达佩斯建筑学院厄尔诺·鲁比克教授在1974年发明的。三阶魔方系由富有弹性的硬塑料制成的6面正方体,共有26块小立方体。——百度百科 魔方有很深的数学模型,但是我们是游戏设计师,不是数学家,所以这里分析的重点并不在它的数学模型上。我的分析取了两个切入点: 1. 魔方的视觉触觉设计,上手体验 魔方的视觉和触觉设计,让它有非常好的上手体验。任何从来没接触过魔方的人,只要摸到一个魔方,就自然会扭动几下;不需要人教,就很容易理解这个玩法的目标,让各面变成统一颜色。 同时,一个拼好的魔方,人们看到就会想要扭开,让各面变成不同颜色;一个混乱的魔方,人们看到就会有冲动把它拼好,可能就和三消游戏中的排列冲动一样。 1. 不友好的难度曲线 因为魔方极佳的上手设计,它成为了一个非常流行的玩具。然而,魔方有一条非常不友好、非直觉的学习曲线。 每个人拿到魔方都会扭动两下,其中一部分人,经过自己思考,会拼出一片同色的魔方。然而极少人(其中很多还是数学家)可以不看攻略的拼出整个魔方。这极大的限制了魔方的乐趣深度。 比如一架钢琴,任何不会弹钢琴的人去按几下按键,都会觉得有乐趣,但是这种乐趣只会持续几分钟;花上一段时间学习,人们就可以弹出一段旋律,达到这个水平的人,可能可以在钢琴上享受几十分钟甚至几个小时的乐趣,但是不会更长了;花了几年几十年的时间学习,能够熟练的演奏乐曲的人,可能可以沉醉于弹琴中,时间多久都不厌倦。 魔方的难度曲线,将大部分人挡在了第一或第二层乐趣水平上。尤其从第二层到第三层,是一个反直觉的思维方式,因为当一个人拼出一面,符合直觉的思考是,去拼出2面,然后3面...直到6面。然而这不是魔方的拼法,魔方是按层拼拼出6面同色的。在1面和6面之间,你的水平进步无法让你得到新的正面反馈,从而很难激励你跨过一个很长的学习期,达到更高一层的水平,从中体验更大的乐趣。
      三、桌游系统分析 我分析的是一个叫《Acquire》(并购)(Acquire-Wikipedia)的桌游,是一个关于连锁旅店兼并收购的桌游。在国内似乎没有,但是在美国是非常受好评的经典桌游,曾经有一个评选:如果你去一个荒岛只能带一个游戏,你会带哪个?很多知名设计师选了Acquire。
      Acquire游戏面板
      分析的过程基本是思考游戏过程的体验,和每一条规则:每一条规则带来了怎样的结果?每一个不同的体验又是因为哪些规则?哪种资源最重要?不同资源之间什么关系?哪些规则影响了这些资源的价值? 学过游戏系统的各种元素后,做桌游的分析并不难,这里提一个我认为重要的点:透过规则分析设计者的设计目标。在Acquire这个游戏中,我发现了这样几个设计目标: 1. 让玩家在每一轮都保持投入。每一轮的形势都会不断变化,场面的情况,其他玩家的选择,每一轮都需要持续观察; 2. 让玩家能够部分的影响和预测未来,从而思考长期策略。思考长期策略是一件非常有乐趣的事情,因为这个过程中玩家为自己设立目标,收集信息,做出行动,从而实现目标。实现目标前的每一刻,心都是悬着的。你手里有足够的资源让你规划一个策略,同时达成的过程中又会受其他玩家的影响从而有很大的风险。 3. 不让玩家感到安全。即使你拥有了一个很大的公司,你也必须去寻求新的机会,因为大公司本身的成长带来的价值很低了,而新公司创立和兼并带来的价值,使得其他玩家很有可能超越你。 4. 规则和设定相符。这是一个关于商业的游戏,现实社会中的商业规则很多都在此适用,这样玩家可以更容易的理解游戏玩法,找到策略,提高水平。
      四、改游戏 直到这时,我们才在这门游戏设计课上第一次开始设计游戏。 这一次我们在一个儿童桌游《Up the River》(这个游戏本身不重要,换个其他简单完善的游戏一样也可以)的基础上设计一个变体。我们并不是要改良这个游戏的问题,而是在这个游戏的启发下设计游戏。大家最后设计出的游戏,第一眼都完全看不出和原游戏有什么关系,但是规则系统上又有原游戏的影子。 这个项目我做出了一个很烂的版本。全班大部分项目,也都有一些比较明显的系统漏洞。 《Up the River》虽然只是一个儿童游戏,游戏深度不大,也没有很好玩,但是系统的各条规则是可以很好的耦合起来的。这一点是在自己不断改而不断发现难以让新系统完善起来的过程中发现的,也是这个项目最大的价值。 很多时候只有去抄一个设计,才能真正理解它的精髓,知道为什么要这样设计,改动一条规则意味着什么,从而更好的理解全套规则,让自己有能力设计完善的规则体系。 PS:那个学期为了学Unity,我做了一个《flappy bird》的copy。抄的过程中会更清楚的看到这个简单的游戏有哪些吸引人的点。同时当你自己抄了一份,你就很容易做出小的改动,看看会有怎样不同的体验。 我认为这是学习游戏设计一个非常好的方法。 当然,我不是在为抄袭正名。抄完就停在那里了,商业角度可能是合理的选择,对设计师个人的成长来说,也算是可悲的浪费。做《2048》的人如果好好思考下它和《Threes》的不同,也许有朝一日就成了受人尊敬的设计师。
      五、从体验目标出发设计游戏 这个项目和上一个类似,同样是一个加深对游戏系统设计理解的项目。我做了一个基于囚徒困境的游戏,但是因为策略深度太浅,选择太简单,没有冲突,因而完全失去了囚徒困境的两难体验。 这个项目不同之处在于概念设计的过程。 不再有一个游戏模板作为启发,这次我们的概念设计,是从价值观开始的。 课上,老师随机发给大家一些价值观卡片,上面写着正直,爱,和平等等。然后大家讨论自己对这条价值观的思考,比如,当你思考peace,你想到的是什么? 分组做项目的时候,大家讨论自己在乎和认可的价值观,以及有怎样的类似体验,然后基于这些寻找游戏设计的灵感。 概念设计这一环节,我后来基于这种方法,自己探索出了一套更完整的方法,后续会专门写一篇文章。
      六、设计纸面原型,然后移植为电子版 这个项目中,我们先花2周时间做出纸面原型。 纸面原型是这样的 然后再花2周时间移植为电子版《幽灵玩具屋》(Daunting Dollhouse) http://v.youku.com/v_show/id_XMTI4ODQ1MjY4OA==.html
      电子版是这样的纸面原型的设计过程使得我们可以非常快速的测试,迭代,一天大概会改5-10个版本。到纸面原型定型之后,系统设计基本完善,游戏也平衡了,再转成电子版,移植过程基本没有多少设计问题需要考虑了,因而速度也非常快,只花了两周时间。 关于这个项目的经验,后续我会单独写一篇文章来讲。
      七、迭代设计流程 在这三个项目中,除了对系统设计理解的加深,另一个重要的方面,就是对迭代设计流程的熟练。 这里没有很多理论可以讲,唯一的理论就是迭代设计流程的各个步骤,之后的经验都是来自实践中对这个流程的应用,和理解为什么要这样做。 在最初的几个项目中,很容易犯的错误是测试太少。自己设计的东西总觉得没问题,或者自己团队玩了觉得很好。在国内做网游的时候,做出的东西往往是需要多人长时间体验的系统,很难有低成本的测试机会,也容易加深这种错误的习惯。 强迫自己持续去找人测试,是在这个阶段需要养成的一个最重要的习惯。有一个教授说,他绝对不会自己设计游戏超过一个小时而没找人测试过。 到了第二个阶段,要从测试中发现更深的问题。有时候系统的深层漏洞,不会在一次测试中直接表现出来,而是在大量的测试中以各种不同的方式呈现出来。只有大量测试,加上对系统的深刻理解,才能发现测试反馈的这些表象问题背后的源头。比如《幽灵玩具屋》中,我们80%的测试都是正面的反馈,但是那20%的情况下,玩家对这个游戏非常没兴趣,游戏体验呈现出各种各样的问题。后来我们花了大量时间反思我们的系统,发现了系统的一些致命问题,以及为什么这些问题在我们80%的测试中被掩盖了。
      八、这些你都可以做 上面讲的每个项目、练习,每个想学游戏设计的人,不需要来USC都可以做,都可以从中收获经验。除了最后一个项目外,其他的甚至都不要求任何程序或美术能力。其中的理论,包括系统分析和迭代设计流程,在《游戏设计梦工厂》一书中都有详细阐释。书中还有对应的练习,如果每个练习做下来,对游戏设计能力一定会大有帮助。对于想申请USC或其他学校游戏设计专业的,我认为这是最好的准备方式。 自己做不能得到的,是环境,视野,合适的同伴,以及有经验的老师。这些我会后续写一篇USC整体环境的文章具体分析。

    • 捷文 2817 1

      游戏设计梦工厂一:卷首语和目录(持续更新)

      由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。

      卷首语: Game Loading 作者:李姬韧 我曾在腾讯做MMORPG,在莉莉丝参与刀塔传奇早期设计。目前在南加州大学(USC)读游戏设计专业(Interactive Media & Games Division),做独立游戏。 我将在这个专栏分享我在USC学到的游戏设计和思考,在未来一个月每周一三五发布文章。专栏目录:第一章 USC的课程和环境介绍USC的课程,以及国内游戏公司或独立开发者能够从中借鉴的经验。第二章 项目流程与经验回顾我做过的几个项目,总结经验;同时会介绍开发流程中的一些环节的经验,如概念设计,解谜(puzzle)游戏设计等。第三章 游戏的创新思考游戏设计的本质,游戏为谁而做,独立与商业等。 这个专栏的名字《游戏设计梦工厂》,是《Game Design Workshop》的中文译名。本书由Tracy Fullerton教授撰写。她是USC游戏设计专业系主任,陈星汉早期作品《Cloud》的指导老师。我参与了这本书的翻译,中文版将于2016年出版。 如果有兴趣学习美国的游戏设计,以底层的思路思考游戏,我认为这是最好的一本书。
      这个专栏的LOGO是USC游戏设计专业的LOGO,含义是赫伊津哈讲的magic circle(《游戏的人:文化中游戏成分的研究》)。 USC游戏设计专业在电影学院(北美第一)下,教授有《神秘海域》系列的主策划,Oculus的CTO,微软用户研究中心的负责人等。这里走出的有陈星汉,做了《Threes》的Asher Vollmer,以及Unfinished Swan,The Misadventures of P.B. Winterbottom,Darfur is Dying等等作品。IGF(独立游戏节) 2015中,USC学生的团队入围了三个(Outer Wilds,Close Your, Apartment),拿下了最佳游戏和最佳学生组游戏。

    • 捷文 1164

      Production课程 - 标准开发流程实践

      本文由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。
      第三学期的production课程是一门必修课。在这个课程中,两人组队,用一个学期的时间(15周),根据标准开发流程做出一个游戏。训练的是项目规划和进度管理的能力。
      很多优秀的作品起步于这一课程,比如IGF和IndieCade 2015入围作品《Apartment》,用新颖的叙事机制创造一段失恋后的体验。
      《Apartment》游戏截图

      开发流程这门课的教授是《神秘海域1-3》的主策划Richard Lemarchand教授,课程按照美国标准主机游戏开发流程,以Mark Cerny(马克·塞尔尼,行业大神级人物,主导设计PS4)在2002年提出的Cerny Method为基础来开发项目。

      关于Cerny Method的具体内容,IndieAce做了很好的翻译,《游戏设计梦工厂》一书中也讲了同样的流程,各环节更为详细。
      开发流程分为以下几个环节:
      Idealization概念设计提出想法,做原型验证。在这个课程中,我们用三周的时间,每周每人做一个原型,探索不同方向。做出的原型可能和最终项目没有任何关系,但是这样的探索可以帮助我们看到更大的空间,而不被最初的想法局限。概念设计阶段完成前,需要确立项目目标,包括体验目标和游戏目标。体验目标侧重玩家的感受,比如让玩家感受到默契合作的乐趣;而游戏目标侧重机制、设计上的考虑,比如做一个快节奏双人对抗游戏。这些目标不需要描述具体的游戏机制,因为具体的游戏机制在接下来的设计过程中会有变化。应该站在更高的层面思考游戏的定位,这样在探索游戏机制时更容易有方向,知道什么是我们要的机制。

      Preproduction预制作期在这个阶段,设计思路基本明确,需要做出一个最小可玩版本,我们把它叫做Vertical slice,即游戏的一个纵向切片,体现最终游戏中很小的一块内容,但是把这块内容做精致。游戏开发过程中,很多时候我们觉得有些内容是可以晚点做的,但是到项目后期开始做这些内容的时候,有时发现他们和现有其他内容有冲突,比如解谜游戏中,一个很酷的机制,可能受到美术表现的影响而不能很好展现出来,或者看起来很合理的几个机制,放在一起做关卡的时候发现冲突。把各方面内容整合在一起,做时长很短的一段内容,往往能够用很小的代价发现潜在的问题。在预制作期结束前,还需要做一份Design Macro,即游戏宏观设计规划,列出各个关卡场景的大致设计;和一份Burndown Chart,即工作项列表,列出各个工作项。
      Production制作期:制作期就是开发游戏的主要部分,有以下三个主要时间节点:Alpha:要求是feature complete,即特性完成。Beta:要求是content complete,即内容完成。Goldmaster:要求游戏达到可发布的状态。
      这方面资料很多,不在此赘述。
      标准开发流程与游戏创新2002年Mark Cerny提出Cerny Method时,游戏行业还完全在瀑布流传统开发模式中,很多人对Cerny的观点非常不认同。然而,十多年过去了,今天Cerny Method也已经有些过时,有很大的局限性了。比如宏观设计规划按关卡/场景规划的方式,有很强的AAA主机游戏的烙印,今天的很多游戏并不能按照这种线性流程规划。
      今天的开发流程大多是建立在Cerny Method敏捷开发的思路上,作出调整。
      比如EA把预制作期从传统的3周左右延长到16-20周,从而做足预研,并测试团队的开发效率,从而能为项目总开发周期做出准确的预估。
      ThatGameCompany的项目在设立体验目标后,往往花大量时间设计原型(《Flower》和《Journey》都花了开发周期的约一半时间),以找到最能表达期望情感的玩法。因为这种对原型期的大量投入,他们才能做出一部部挑战人们对游戏认知的作品。

    • 捷文 1365

      实验游戏设计 - GameJam式的项目如何推动创新

      由USC在读的开发者李姬韧创作的文章,内容丰富,亮点颇多,适合所有想学习游戏策划的同学们。经作者授权在知乎专栏“游戏设计梦工厂”和IndieACE同步首发。
      今天介绍Experimental Game Topics,即实验游戏设计课程,是我在USC第二学期的一门课程。在这个课程中,我们每周做一个游戏,大量快速的探索不同方向。在一个项目上可以投入的时间往往只有10-12个小时,大部分项目是独立完成,比GameJam的规模还要小。这个课上的项目,虽然很粗糙,但是探索了多样的游戏机制,尝试了不同的创意来源。在这个课程中,教授的职责有三方面:1. 设计题目限制。实验性游戏的限制就像GameJam的题目一样,往往不是让设计更难,而是更容易了,因为题目可以引导思考的方向,避免设计者在过于广阔的可能空间里花费太多时间而不能做决定。我们用过的几个限制:做一个游戏时长是60s的big game(即玩家身体参与的游戏,类似捉迷藏,足球这种形式);做一个玩具:可以是实体的也可以是软件的,做软件的可能可以更好的激发对游戏的思考。TED演讲上有一期,一个谜题(puzzle)设计师讲了玩具,谜题和游戏的区别:Scott Kim: The art of puzzles;做一个一维控制的游戏:比如flappy bird,玩家只能在一个维度上控制角色,即上下的位置;做一个和随机性有关的游戏;这些限制和GameJam题目的区别是,这种限制是和游戏机制或体验有关的,而GameJam更多是主题性的,比如我参与过的一次上海GameJam,题目是“异类”。主题性的题目更自由,不足之处在于,参与者用自己的习惯思维来解读题目,最后做出的游戏往往还是在参与者本人熟悉的设计舒适圈内。而对游戏机制或体验的限制,能够引导设计师反思设计思路,从而探索到一些自己不熟悉的领域。2. 引导大家看实验性游戏相关的阅读,前人的经验。这个领域有很多有价值的经验,不过都是英文的。我这里列出一些,如果有人有兴趣翻译成中文,可以联系我,我会在这里放上你的译文链接。Catastrophic Prototyping and Other Stories:在《游戏设计梦工厂》第七章专栏中有中文译文,《“失败”的原型设计过程与其他故事》。作者在《孢子》等项目和Will Wright共事过。失败的不是一系列被放弃的原型,而是那些缺少原型验证的宏大项目。它们不仅游戏没有稳固的基础,设计者也不能从中获得有益的经验。而每一个小原型,都对未来的大项目带来了启发和经验。Gamasutra - How to Prototype a Game in Under 7 Days:卡耐基梅隆大学(CMU)娱乐技术中心(ETC)也有一个实验性游戏设计课程,这篇文章的作者就曾是那里的学生,他总结了很多对实验游戏设计非常有益的经验。GDC Vault - Juice It or Lose It:一个GDC 演讲视频,讲如何在一个简单的游戏中设计吸引人的细节反馈,带来完全不同的游戏体验。That Cloud Game: Dreaming (and Doing) Innovative Game Design。陈星汉做《Cloud》的记录,由其指导老师Tracy Fullerton等撰写。在十年前,他们就提出了情感创新的理论并探索实践,十年后才有了《Journey》的成功。 USC教学楼里的《Cloud》海报
      3. 给作品反馈,并组织学生之间测试和给出反馈。测试游戏并给出反馈是一个重要的练习。我会在后续文章中详细介绍,比较几种不同的反馈方式。
      在这个课程中我做出和看到的几个有意思的项目:60秒big game,一个同学的游戏:一群人对抗,把一只手放在身后,摆出一个数字,尽量用身体遮住不让其他人看到。谁的数字被人看到并喊出来,他就出局了。玩家要注意自己的走位,身体姿势,从而遮挡自己的隐藏数字,同时想办法绕到别人背后“偷袭”,看到别人的数字。玩具项目:我用粒子效果做了一个萤火虫的体验,角色在一篇田野上走,漫山的萤火虫,会随着角色的移动而移动,像是在追赶萤火虫一样。这个“游戏”没有目标,没有规则,只是希望在电脑上还原出这种体验。随机性的项目,一个精彩的多人合作桌面游戏《Consensus》(Consensus | IndieCade),入围了今年IndieCade独立游戏节。一组同学的作品《Tetheron》(Tetheron 官方网站),一个小球用绳索挂在平台上,用绳子摇晃把自己甩到更高的位置。非常刺激的多人对抗游戏。 《Tetheron》游戏截图我的项目《Undivided》,在这个课程中想到创意,做出原型,收到很好的反馈,在课后持续继续打磨,做出了完整作品。入围了今年东京电玩展独立游戏展区等活动。后续会写一篇文章专门讲这个项目上的经验。 《Undivided》游戏截图GDC近些年也开设了Experimental Gameplay Workshop(EGW),鼓励实验游戏的探索和创新。每年这个workshop中都能看到非常多精彩的玩法。在他们的网站上,列出了他们眼中的实验游戏玩法,以及他们认为什么不是实验游戏玩法:This IS Experimental Gameplay:Creating unexpected play experiences or promoting unique feelings within players through mechanics (Gravitation, Passage, The Marriage).Generative games, where the gameplay or world changes based on choices the player makes (Spelunky, flOw).Emergent gameplay, where the game systems interact to provide surprising situations (ROM CHECK FAIL, Portal).Interactive storytelling, where the plot or dialog changes in a fine-grained manner, as opposed to discrete "branching points" (Facade).Innovative user interfaces - natural language processing, image recognition, gestural control, new hardware devices (Guitar Hero, RENGA)Novel multiplayer interactions (Journey)This is NOT Experimental Gameplay:Novel content, narrative, settings, character designs, artwork, audio or plots - unless they affect the core gameplay in a major way.New hybrids of already-existing genres - unless the resulting gameplay is unexpectedly more than the sum of its parts.Purely technical innovation, experimental business models or distribution mechanisms, or games for under-served audiences - unless the game itself is experimental as outlined above.
      EGW会场实验游戏设计关注的是探索和验证。没有失败的实验,只有结果不符合预期的实验。即使不符合预期,设计者也能从中学到宝贵的经验,而且有时还会被意外的结果引向更有价值的方向。“There is no such thing as a failed experiment, only experiments with unexpected outcomes” - R. Buckminster Fuller 这和游戏的迭代设计思路一样,只有探索,验证,才能进步。允许的探索越多,方向越广泛,发现新领域的机会越大。相比之下,国内用创新这个词,是在拿新跟旧比,在旧的基础上思考新,从旧的设计出发,向外延展。这种做法往往会受到旧模式的极大限制:既在设计本身上受限制,在心态上也因为一心想着如何和旧的不同,所以更加在旧的模式周围打转。一周一个项目的实验游戏设计,我们不期望任何一个游戏能做出多大的成果,也不会在心中挂念或排斥任何模式,只是自由的探索,反而进入了更大的设计空间,得到比预期更精彩的结果。

    • 红茶君 1220

      赛式方法论(下):前期制作阶段究竟应该「做」些什么?

      导语:这篇文章是根据著名游戏设计师、PS4的首席架构师Mark Cerny 在2002年D.I.C.E上的一次分享整理的。可能是现有的视频资料里,他对他著名的Cerny Method(赛式方法论)最完整、最详尽的一次分享。
      上周我们发布了这个分享的上篇:赛式方法论(上):为什么你的游戏做不完、做得烂?;上篇中粗略地讲了一下前期制作的一些要点。在本周的下篇里,Cerny分享了自己在做前期制作时的具体方法,就是如何做首个可玩版本和宏观设计。
      这篇文章不仅仅是对游戏开发者十分有用,项目经理等管理者们更应该认真感受一下,一种靠谱的立项和制作方法,应该是什么样子的。
      以下是正文。
      让我们来说说前期制作阶段的两个成果:首个可玩版本和宏观设计。
      首个可玩版本是什么呢?这里又有一个业界常见的神话:alpha版=首个可玩版本。我见过有些游戏做完了,其实完成度却并不达标,风格不统一、玩法没完成……问题重重。我们必须承认,我们会和这种糟糕的游戏犯同样的错误——如果不认真对待你的首个可玩版本,那么直到你的游戏做完,情况都不会好转,你就莫名其妙地完蛋了。首个可玩版本就是这样一个版本:你看着它你就明白,你要做什么样的游戏、你知道制作的方法、你知道这个游戏非常非常棒——我把它称为你的“神之切片”。
      什么是“神之切片”呢?首先,我比较偏好做两关可玩关卡,这样游戏就包含了一些变化。我也喜欢一种比较严谨的可玩版本:它除了包含特定的关卡元素之外,还包含普遍元素,而利用这些普遍元素,已经可以做出一个另外的可玩关卡。
      这样的可玩版本证明了你确实明白了你想做的游戏是什么、不是什么,也证明了,你确实有能力做出这个游戏。通过它,你就从前期制作阶段的一无所知,过渡到了正式制作阶段的通晓所有。
      而达到可发行的质量也意味着你不能太自我,你需要让它在接下来的12~18个月中是能够满足市场需要的作品,如果你发现它没有受市场欢迎的特质,就要回头修改它。如果玩法不够刺激,回头修改。可发行的质量意味着,普通消费者看见它也会被吸引。
      如果你相信你已经做完了首个可玩版本,可以用下面列出的条件来检查它。你做的两个达到可发行质量的可玩关卡,要满足以下特点:1,玩家行为明确而清晰,你能理解玩家在游戏中做的所有行为;2,敌人和障碍明确而清晰,这和玩家行为紧密相连:玩家能不能充分和敌人与障碍互动,这种互动感觉是不是好;3,特定元素包含在内,普遍元素包含在内。这取决于你做的是什么游戏,可能包括但不限于:升级和加强系统做好了吗,任务设置正常吗,有趣吗等等等等。4,基本技术已经做好;5,美术风格方向的展示;要以此为根据进行之后的美术设计;6,包含多样性,具有进行变化的内在可能性;没有哪个游戏毫无变化还能好玩,所以在首个可玩版本里,你需要展示你的游戏的变化方向、如何发生、有何感觉。7,游戏规模已经明确,有多少关、多少个区域之类的。
      首个可玩版本的最大作用,就是:这是第一个把你的游戏摆到玩家面前的机会——去做吧,然后记下他们游玩时的细节——摄像机的设置舒不舒服、游戏难度高了还是低了……当然,还有游戏吸不吸引人。如果有任何地方不对,马上修改。
      最糟糕的情况就是在几个月的努力后,你发现你的可玩版本根本不合格——当然也有可能是你找错了测试玩家,但我主要是想澄清一个江湖传说:项目被取消,说明背后有糟糕的管理和糟糕的团队——其实有时,项目被取消是一件值得骄傲的好事。除开团队能力不行、做不出好游戏的情况,在早期能成功证明这个游戏不值得发售、然后砍掉一个项目,实在是谢天谢地!你节约了几百万美元啊。
      砍掉一个项目虽然对大家来说是一件伤感情的事,但确实是有价值的,因为如果你的游戏在前期制作阶段就做得不好,它是不可能奇迹般地在正式制作阶段就变好的。你必须把你的首个可玩版本和市面上的同类游戏相比较,你的游戏必须比它们优秀才行。
      接下来说前期制作阶段的第二个产出成果:宏观设计。我们把设计分为两部分:宏观设计和微观设计,这是我的方法论中第三个关键点。
      宏观设计在前期制作完成时,就已经完成了;而微观设计则是在正式制作阶段进行的。这里又有一个业界神话需要批判一番:越是独创的就越好——这句话换一种说法就是:我需要100页文档来描述我的游戏。
      其实你并不需要通过写文档来开始你的游戏开发——你甚至从来都不需要写。我本人在某些圈子里,享有反文档份子的名声,我把这当成夸奖——在我看来,在前期制作中你能做的最糟糕的一件事,就是坐下来写一份100页的文档。以下是详细原因:1,这是浪费资源,即使是在最好的情况下,文档依然是一种必要的恶,因为它和直接与游戏发生关联的人群无关——玩家们喜欢玩你的游戏,但一定不会喜欢你写的文档;2,文档具有迷惑和误导人的作用,让你看上去知之甚多,事实上却并非如此——你的角色设计成2.5米高真的好吗?你设计的城堡经美术和工具处理后真的好看吗?——文档让你在正式开始做游戏以前,就让你误以为可以从细节上规划你的游戏了;3,让你在进行基础验证之前,就确定了方向。比如,你在文档中假设你的角色只有一个简单的出拳动作,但在前期制作中你发现了8个连击系统,它们让游戏非常好玩新颖——这时,你最初为简单的出拳动作所做的一切设计,就全白费了。
      所以,我真的是一个反文档份子吗?显然不是的。在前期制作阶段的最后,我推荐你完成一个5页的宏观设计文档,其中包括了所有在进入制作阶段后所需要的设计。5页很短,但用于展示游戏的原型、规模和结构,是足够了的。
      这5页的文档内容如下:1,角色和行动(moveset),这应该是被原型验证过的玩法的基础:关于角色是什么、怎么动、有什么特别的动作、怎么跳、跳多高等等;2,特殊机制,比如角色乘载具、运用小工具等;3,关卡结构、大小和数量,关卡内是什么?是区域还是路线、关卡多长(或者多大)、总共有多少关?4,关卡内容,玩家要在关卡中做什么?单个任务?多个任务?沿路线行进?如果有任务存在的话,如何揭示给玩家?5,主要结构,关卡如何组合在一起?是线性的?条件触发的?游戏如何使用它们?是各自成关呢还是组合成常规关卡?
      最后,要有一个宏观图表来展示游戏如何进行,这个表有很多琐碎的信息要填入,游戏规模、关卡数量等等……所有你会用到的游戏机制,都应该在这个表中。把这些信息都放在一页之内,你就能看出你的游戏的大致轮廓:从头至尾游戏类型足够清晰吗?关卡间的过渡和学习是否自然?这个表允许有一定的留白——在你还不确定那些关卡拿什么填合适的时候。
      好的宏观设计会让你做游戏时心中有底,因为你已经在宏观上知道了游戏规模,这样就可以给宏观上的关卡制作规划时间了,这个宏观表也给制作中进度的追踪提供了依据。这样就能让前期制作团队保持一定的创造性,也同时将这种创造性限定在游戏设计意图之内。
      根据不同游戏的需要,5页纸可能还包含一些额外的东西,比如故事梗概、美术概念等。在一些整体关联紧密的游戏中,还要考虑到玩家的学习和发现能力、并在前期制作阶段做好充分的测试和调整。
      而与宏观设计相对应的概念——微观设计,则是你在正式制作阶段每天都会面对的东西。做单个的关卡,你就需要设计关卡剧本、关卡地图、设计敌人和他们的行为、设计谜题、设计特殊的Gameplay等等……
      这些东西为什么不在正式制作之前就写好文档呢?我们从整体上看这个问题——你试图找到有趣的gameplay,在做好第一个可玩版本的时候,你把让玩法得以成型的潜在结构整理出来了——这就是宏观设计;然后你还有两个原型关卡,这两关可以作为说明你游戏的最佳文档使用。这个时候,如果你的团队对这个游戏已经全然了解,你当然可以直接把剩下没做完的部分做出来——但实际情况并非如此。其实,就像你在前期制作阶段探索和发现一样,你在正式制作阶段也同样在不断地学习,哪些技术更好、摄像头怎么处理更好、玩法怎么做更好等等……所以,在不违背宏观设计、并保证游戏的统一性和连贯性的情况下,你依然可以在游戏中加入新的元素。
      接下来我们讲游戏玩法测试。有另一个业界神话就是:“如果你想要游戏大卖,就要听玩家的”——我要说的是焦点测试(focus test/focus group)(一种通过访谈的方式调查受众兴趣和偏好的市场调查方法),如果你想知道你应当在游戏中放入什么元素,或是想知道你应该做什么类型的游戏,你最不该做的事就是焦点测试。有几件事你可以通过焦点测试得到:什么游戏最流行?什么在当下这个时间点最受欢迎——除非你的游戏在几周后就要发售了,不然的话,测试的结果对你们的游戏来说是毫无意义的。焦点测试者无法告诉你未来。
      如果你有了2、3个可玩的游戏片段,你就可以开始进行玩法测试了。我强烈建议大家做玩法测试,并且在制作过程中定期做玩法测试。我相信,在一个游戏在制作过程中,至少正式而充分地做过2次以上玩法测试之前,它是不能发售的。玩法测试意味着把你的游戏摆到玩家面前,然后让他们玩——我不相信玩家会怎么说,但我看重他们会怎么做。实际上,在规划你的制作时间表的时候,你要预留一个月的时间,让玩家充分地测试你的游戏。对于玩法测试的分析应该是定量的,而不是主观的;但同时,也不要太相信统计数据,因为你心中游戏的乐趣点,往往是错的——这也是和玩家同处一室去进行玩法测试的重要性,你可以从玩家的表情动作中观察到很多。从统计数据上你能看到玩家死了多少次,但看不到他们的所爱和所恶。
      在这整个过程中,发行方该做什么?首先,要充分信任开发团队、给他们充足的时间和空间,因为在前期制作阶段,没有实际产出,只能相信;然后,要有放弃的决断,如果首个可玩版本证明项目不可行,那么就要果断地取消项目。而开发团队应该是一群最优秀最聪明的人,他们的任务就是做出最好的东西。因为首个可玩版本需要拿出来、和同类的所有游戏作比较,所以除了拿出最高标准的东西之外,还能做什么呢?
      于是,我们在前期制作阶段完成后,有了可玩原型版本、有了定义项目规模的宏观设计、并能够依此规划游戏的制作时间……然后你就可以算出游戏的制作预算、定出游戏的发售时间。因为此时的你,已经知道你在做的东西究竟为何了。

    • 红茶君 1611

      赛式方法论(上):为什么你的游戏做不完、做得烂?这究竟是为什么?

      这篇文章是根据著名游戏设计师、PS4的首席架构师Mark Cerny 在2002年D.I.C.E上的一次分享整理的。可能是现有的视频资料中,他对他著名的Cerny Method(赛式方法论)最完整、最详尽的一次分享。因为实在非常经典、值得每一个从业者认真看看,但又一直没有比较完整的中文版本,所以IndieACE特地把他四十分钟的演讲整理成了一篇文章。
      Cerny一直在他的方法论中强调前期制作(pre-production)的重要性,全场言辞聪明而犀利,想必是从业多年的血泪经验总结,几乎是每句都可以抄下来贴在你的工作台旁边作为格言警句。如果你英文不错,推荐去看原版视频。这是赛式方法论的上半部分,下周我们会把下半部分整理出来。请继续关注IndieACE的精彩分享。
      以下是正文:
      我大概从二十年前就开始做游戏了,但我很少上台演讲,既因为我比较害怕在公众场合讲话,也因为我也没什么可说的。但我今天有话要说,就是我热爱我的工作,虽然在这个需要热情参与的独特的行业里,我的核心价值观可能有很多人是不同意的。
      今天机会难得,让我能在大家面前分享制作角色动作游戏的心得,希望这些经验对其他游戏也有用。
      我叫它“方法论”(Method,下文统一把Cerny的method称为“赛式方法论”),它由四个方面组成,需要注意的是,这四个方面并不是按照制作的时间顺序排列,它们只是这个理论的不同的方面:1,前期制作和制作(pre-production vs production)2,首个发布的可玩版本(publishable first playable)3,宏观设计和微观设计(macro vs micro design)4,玩法测试(gameplay testing)
      首先来讲前期制作和制作。游戏的制作分为两个阶段:前期制作阶段和正式制作阶段。第一阶段,前期制作阶段,是从零开始设计游戏、让设计成型的阶段。而正式制作阶段则是在此基础上搭建游戏具体内容的阶段。这两个阶段是完全不同的,它们之间差别就如同白天与黑夜。
      在前期制作阶段的最后,会诞生两样成果,其一是首个可发布的可玩版本,这不是传统意义上的可玩版本,仅仅是游戏中一个精华部分,而这部分将决定你的项目是生还是死。如果这个部分是行之有效的,而且你们都觉得它能在今后1~2年的游戏市场上受欢迎并取得成功,那么这个项目就能够继续。
      成果之二,我们叫它宏观设计。先别管其他传统的游戏设计文档是怎么写的,反正我把设计分为宏观设计和微观设计,宏观设计是一份5页纸长的文档,它搭出了你的游戏框架——这是前期制作阶段的产物。微观设计则是你在制作过程中突发奇想的产物。分清这两种设计,你可以做出一个极富创意但仍然清楚易懂的游戏,并最终能把它做得非常有趣。
      最后,玩法测试,在制作过程中组织10次或以上的玩法测试,测试对象要包含你的目标玩家,也要包含非目标玩家。从测试过程中能看出游戏中的哪个部分做得不错,哪些部分还有待改进。
      游戏制作是一件很难的事,其中一个重要原因,就是要在全程遵循一个清楚的原则和理论。
      游戏制作分为前期制作和制作两个阶段,前期制作太难了,以至于很多团队直接放弃了这个部分,进入了制作阶段。我相信有80%以上的游戏制作者(我相信这个数字毫不夸张)的失败,是由于在做游戏的时候,急于去做那些在前期制作阶段根本没准备好的事。
      业界最大的神话就是:你可以规划你的游戏创作,并为此制定时间表。当你有了一个游戏概念,有了一个制作团队,然后你坐下来开始规划你的制作时间表——这是不可能的。因为规划和制定时间表这件事,本身就和前期制作阶段寻找游戏玩法的本质相违背。
      在前期制作阶段,你需要避免一些很容易染上的恶习,比如计划和制定时间表。前期制作阶段应该是一个容忍混乱和无序的阶段,你不能计划你的灵感何时来临,你也无法在你着手于一些奇妙问题的时候去规划时间。制定时间表不仅是一个坏习惯,更是不可能的事。在前期制作阶段制定时间表,会让你在挫败感中放弃项目,或者是在没有准备好的情况下就盲目进入制作阶段。
      那么在没有规划的情况下,你如何管理这种无序呢?首先,集结你的核心团队,我见过的另一个坏习惯是,用经验尚浅的员工进行前期制作——可能因为他们相对比较空闲,所以你可以把他们从其他项目中拉出来,进到你的项目——仅仅因为你雇佣了他要给他找些事做。这种做法显然是错误的,因为前期制作不需要一个很大的团队,但是它需要你最有经验最值钱的员工来做。这个核心团队会决定所有关于游戏的核心问题,也很可能在制作阶段变成团队的带领者,所以他们必须是最优秀的人。
      因此,你要尽快地聚集最优秀的团队,尽快开始前期制作,因为前期制作是很昂贵的,有的游戏在前期制作上要花费上百万美元。而这种看起来很没有效率的前期制作,是为了让制作阶段变得最有效率。做好前期制作是做一个好游戏的唯一方法。
      在有了核心团队之后,你们要开始做原型。有时候,原型的制作最终会和关卡制作相互混淆,一些团队会进入被我称为“实际关卡原型制作”的阶段:把所有的东西:机制、美术、技术加在一起,试图把整个游戏完成时的可能样式做出来。从而形成一个循环:制作关卡-试玩关卡-发现问题-改进-关卡完成-开始制作下一关。这就完全进入另一个误区了。
      我给个数字,你做出的前5个原型关卡将会定义你的游戏(如果你的团队非常优秀、非常熟练,这个数字可能会变成4甚至3),然后你会挑选抛弃掉其中4个。假设你的游戏有20关,那么到此为止,你只完成了游戏的1/20。如果你希望节约资源,你必须改掉这种习惯,将初期定下的优秀成品贯彻到底。
      在有效率的原型制作阶段,你不会做出任何可供玩家享用的成品,如果你足够幸运,你可能会发现一些对你的工作有用的东西,但不要抱太大期望,以及——千万不要为此制定时间表。
      我给前期制作下了一些定义:1,你不是在做一个游戏,至少现在还没开始做——这听起来颇有挫折感,但你成功地抛弃了计划和定时间表的坏习惯,并且你在省钱。在前期制作的过程中,你在做“游戏设计”,游戏设计包括以下的内容:
      第一,3个C:character(角色),camera(摄像机),control(控制);在决定这些之前,你不能开始任何有意义的游戏原型设计。
      角色意味着你知道你的角色长什么样、它如何动作、用怎样的动画支持它行动;摄像机是一个难题,也包含了大量的工作,但最重要的是,它关乎摄像机动作的基本逻辑:响应是多是少,是远是近,视角偏向哪个方向,你还需要考虑它如何配合你的Gameplay;控制则是关于如何整合游戏控制器,让游戏玩起来更有趣。这3个C对于我们角色动作类游戏来说很重要,但是在其他种类的游戏中也有相似情况。
      第二是游戏外观,成功的游戏必须有独特而吸引人的外观,这种外观必须是和游戏紧密相连的关键点,而不是那些可以在前期制作阶段之后考虑的工作,比如渲染等等。
      三是关键技术。想清楚有什么关键技术必须在前期制作阶段解决。比如路易鬼屋中所有的实时光照效果是需要在早期解决的技术问题,类似的例子还有很多。
      最后是游戏的整体性。你需要保证游戏种的区域和关卡是根据其故事或世界观紧密相连的。保持整体性对前期制作阶段来说是一个特别的要求,整个游戏就像一副拼图,游戏设计师需要在进入正式的制作之前把它们拼好。
      看看以上这些总结,我想所有人都会同意我所说的,前期制作真的是一件很难很难的工作。为什么在真正开始着手做第一个可发布关卡之前,做完以上这些工作如此重要呢?为了找到值得一试的项目,你必须碰运气,你必须尝试一切可能,让游戏尽可能做好,碰运气隐含的风险,就意味着你要在真正动手前深思熟虑。
      前期制作阶段就是一个不断思考和尝试的阶段,你在这个阶段做的事情对之后的正式制作来说是功德无量的。想想吧:在不知道你的角色长啥样之前开始制作关卡、在不清楚实际的技术限制时就开始制作关卡、或是在不知道全景如何的情况下开始着手制作游戏的一小部分……所有的这些情况在制作阶段都是很糟糕的,这说明你的项目陷入了很麻烦的状况。但在前期制作阶段这些混乱却都是好事,如果你的原型设计搞砸了——无所谓啊,扔掉就好了。你可以很迅速地、低成本地发现你的想法能否行得通,然后再去尝试更多想法。
      从经济的角度来说,这就是现在花钱——是为了将来省钱。问问你自己,你是否曾经在快要完成一个作品的时候,放弃整个项目?如果在前期多做5个原型再投入制作不是更好吗?所以,前期制作真是游戏制作中最重要的一个阶段。
      接下来说技术,关键技术是很重要的,所以首先要确定你的技术。我个人热爱技术,技术与设计、美术一起组成了游戏的三大部分。好的技术意味着你能万事周全,我最近(这个最近已经是十几年前了其实……)做的三个作品都有着主要的技术基础,比如古惑狼中的streaming技术让游戏风格有着很高的辨识度,这也让我们游戏读取时间比较长。
      让我们看看在整个流程中技术应该何时被创造出来,在传统的游戏开发模式中,顺序是这样的:制作设计文档——制作技术需求文档——技术搭建——制作游戏。这很好,但采用这种方式,其实是预设了你在开始制作前已经知道你需要什么,这也同样限制了在这个过程中创造原型gameplay的机会。
      这里有另一个模式,我叫它双轨模式。第一,制作或借用一个“脏但是敏捷(quick and dirty)”的技术保证原型制作的敏捷性;第二,搭建游戏所需的“关键技术(Cutting-edge technology)”
      赛式方法论第四点,时间节点管理(Milestone)。
      频繁的review项目是优秀的项目管理的基础。时间节点管理对于游戏制作来说很重要,这意味着你可以把游戏制作过程分为可管理的多个部分,然后为流程中的工作设定时间表。传统的时间节点式管理没有给前期制作留下余地,前期制作是无序的、混乱的,甚至不产出可预见的结果。然而总有人期待在前期制作中能有一些可见的时间节点,可供内部和外部参考审查。在前期制作中,时间节点管理会给项目带来明显的伤害,因为每个制定好的时间点都意味着一个有方向性的努力,而在前期制作中这会浪费投入于前期制作的功夫。
      怎么处理前期制作和时间节点的关系呢?如果参与前期制作的人员需要一个相对宽松的、不设置时间节点的工作状态,你可以事前和他们约定好一个时间,规定前期制作可以持续多久。
      规定前期制作产出的成果也很有用,也就是约好在前期制作完成后需要有首个可玩版本以及宏观设计作为产出。另外,前期制作的过程是可以对外可见的,虽然不能规划时间表,但在前期制作中的创新成果,是可以隔一两个月就拿出来放在一起供赏玩的。事情的关键是:要保证前期制作过程中的产物都是自然流程中产出的成果,而不是被外部因素逼出来的将就产物。前期制作阶段的实验性质和正式制作阶段是完全不同的,理解这一点很关键。
      还没讲完,还有下期。下期Cerny大神会分享他自己是如何进行前期制作的。

    • 红茶君 2177

      皮克斯的故事

      最近好多人都去看了《头脑特工队》,如果你还没看,强烈推荐去贡献一下票房。
      今天要推荐的这部名为《皮克斯的故事》的纪录片,也许和游戏没有什么直接关系,但值得所有身处Entertainment这个门类的从业者看一看。
      这部制作时间长达6年的纪录片说了一个非常整全的故事:在这个行业中,艺术家、工程师和商人都是极为重要的牵动者——这一点对于游戏行业也是一样的。
      视频全长一个半小时,拉塞特和乔布斯都有出场。

    • 红茶君 1246

      10月28日上海英特尔游戏工作坊邀你参加

      拥抱游戏开发动态,对话业界创想先锋Buzz游戏开发工作坊邀你对话游戏大师
      Buzz游戏开发工作坊由Intel®主办,在全球8个城市巡回,面向独立游戏开发者、游戏设计师、工作室、学生和游戏开发爱好者,提供从1)创意、2)设计、3)开发到4) 渠道营销四大主题的技术培训和交流机会。9个嘉宾主题演讲兼顾国外游戏开发领域的最新科技和本土实践经验;游戏作品路演为优秀游戏作品以及尚未开发完成的游戏作品提供展示和交流平台。已确定的演讲嘉宾包括Intel RealSense,Microsoft Xbox, Unity 以及Cocos的技术培训师。
      上海是工作坊全球巡回的首个亚洲城市、也是今年中国地区唯一的一站。IndieACE作为工作坊的合作伙伴,邀请独立游戏开发者社区的朋友报名参加,活动免费、预定座位请从速。报名链接:点我

      时间:10月28日,9:30-18:00地点:上海浦东新区张江当代艺术馆(祖冲之路419号,近张江高科地铁站)官网:intelbuzz.bemyapp.com/shanghai*工作坊为参加者备茶点和自助午餐 咨询参会、游戏项目路演推荐可联系:陈闻 (wen@coconut.is)或李琦 (sandra@bemyapp.com)



    • 红茶君 1452

      我们最伟大的创造都来自于假借、剽窃和改头换面

      标题这句话来自于生活在纽约的制片人Kirby Ferguson的一段TED演讲,标题是「Creativity Is a Remix」。「没有什么是原创的。一切创新都来自于混搭。从鲍伯.迪伦到史蒂夫.乔布斯,我们最伟大的创造都来自于假借、剽窃和改头换面。」他如此说。(这段TED视频放在文章的最后)

      山寨和抄袭也一直是游戏圈的热议话题,一旦抓到业界典型,全世界都可以来踩一脚。「山寨无耻」可能是少数能让阵营无数的游戏圈站到同一阵线的话题,无论摇旗呐喊者是出于对自己原创作品本能的保护欲,还是出于在价值观上站队的爽快感,批判山寨和抄袭都是我们大多数人面对仿造品的第一反应——有时候甚至是过激反应,看到任何似曾相识的玩法、美术风格甚至配色,就开始感叹“又是抄袭XXX”“国内团队果然只会抄”……
      主流声音的背后隐含了一个逻辑,就是原创即正义,从零到一的创造具有天然的优越性。他们假定我们所享受的一切便利、欣赏的一切美好,都来自于某些伟大的头脑独一的创造——而我们对这一切的认可和报偿,就是对创造的奖赏。所以抄袭剽窃就几乎等同于偷窃,妄图把别人的财富和荣耀归作己用。
      然而人类社会中的“创造”,和一般人的想象全然不同。简单的从零到一的突变很少存在,大部分人类的造物都来自漫长历史中无数知识的积累、重组和改造。
      我认识的许多游戏设计师的工作台上都摆着一套D&D三宝书,未必全都出于工作需用,更多是因为喜爱、致敬和纪念。如今谁都无法否认,深深影响了RPG游戏的D&D规则,与托尔金的《魔戒》、杰克·万斯的《濒死的地球》等西方幻想文学深厚的亲缘关系。——这是比较体面的形容,实际上,这就是一种改头换面的「抄袭」,并且作者还非常直接地把这些文学巨匠们的名字写到了第一版规则书的感谢名单里。
      显然,游戏设计师们热爱D&D,并不因为敬佩它是个「伟大的抄袭者」,而是把它当成一个极具生命力的创造。这并非因为他们不清楚其中的历史演变(相反,这群人正是对RPG的发展史非常熟悉的人),正因为他们知道其中缘由,才更欣赏其中混搭创造的奇妙。没有人能重新发明方和圆——伟大的创造者也从不立志于此。他们之所以能够创造出优秀的作品,是因为对过去的知识了解渊博、对现今的时代体察得深。
      无论是牛顿物理、微积分,还是苹果手机和《最终幻想》,没有哪一个伟大的原创作品是「全然原创」,反而正因为他们的创作者们,巧妙地组织并使用了大量早就存在于世的知识和创造,才让每一个普通人都能感受到它的精巧和便利、产生知识的共鸣和情感的投射。
      真实的创造过程,不太像是传奇般的灵光一闪,而是比较接近不断地尝试、混搭和感受。
      让我们厌恶的抄袭通常不是因为它们用了别人用过的创意,而是因为蠢或者懒。不动脑思考的结果就是生硬的照搬,只能形成拙劣的结果。比如神奇的国产动画《汽车人总动员》,相信即使是没有看过皮克斯动画的人,也能感受到这部国产动画是毫无诚意的,因为它实在是太丑了……实在忍不住,放张图恶心一下你们。 相反,很少有人说《纪念碑谷》「无耻地抄袭了」《无限回廊》。两个游戏在玩法上有一些相似之处,但在其他更多方面,都没有太多共同点。《纪念碑谷》有着简单的操作、漂亮的外表、清新的游戏气质以及很短的流程…这些看似随意的特点,其实都是制作团队认真思考的结果,这些特质组合起来的成品,简直就是为移动平台的用户量身定做的。这种思考和创作过程,不也应当算是一种创作吗。 其实,我们喜爱的游戏当中,有几个用的是纯原创的玩法呢?商业游戏出于避险的考虑,多半会避免那些特别新颖的尝试;就算是独立游戏,如果表达的重点不在于游戏机制,那么采用一个不新奇的机制,而把精力放在其他方面,也是一个常见的选择。
      做一个真正优秀的「抄袭者」是很难的,这种创作者一般在专业领域内见多识广、感悟深刻又有着出色的技巧。如今市场上充斥着劣质的山寨品,从某种角度来说,不是因为中国人的山寨能力强,反而是因为吸收消化的能力太弱了,没有能力(或者意愿)做出更令人满意的东西。
      写这篇文章并不是为了给山寨和抄袭洗地,而是想说,提升原创能力的最好方法,不是呼吁一个更强有力的版权保护法,而是多读书和学习,增长各个领域的见识、认真地思考、诚实地创作。强大的原创能力不仅是因为聪明,更是由于做久了见得多。

    • Bowie 2151

      IL2CPP 深入讲解:垃圾回收器的集成

      IL2CPP 深入讲解:垃圾回收器的集成
      IL2CPP INTERNALS – GARBAGE COLLECTOR INTEGRATION
      系列的第七篇博文了,在本篇文章中,我们将探讨IL2CPP运行时如何于垃圾收集器协同工作。特别地,我们将会看到在托管代码中起作用的GC是如何和原生代码的GC进行交流的。
      整个系列都在强调,本篇也不例外:文中所描述的技术细节很有可能在未来会发生变化。在这篇文中中,我们还将会看到内部调用的API函数,它们被用来和垃圾收集器进行通讯。这些API没有被公开,因此你也不应该在正式的项目中使用这些函数。

      垃圾收集我在这里不会对垃圾回收的基本概念进行讨论,这是一个宽泛和多样化的主题,你可以在很多地方找到有关垃圾回收基本概念的文章。在这里,你可以把GC想象成一个描述程序对象之间互相引用的算法。如果在程序中一个子对象被其父对象引用(在原生代码中使用的是指针),那他们的关系图如下:

      当GC对一个进程的内存进行扫描,它会尝试寻找没有父亲的对象。如果找到,就对他们进行回收以便释放内存给其他需求使用。当然,其实大部分的对象都有父对象,因此GC需要确切的知道哪些对象是重要的父对象,这些对象是你的程序中真正正在使用的。用GC的术语来说,这些对象叫做“根”。下面的例子展示了两种不同的情况:

      在上面的图片中,Parent2没有根对象,因此GC可以释放Parent2和其孩子Child2的内存以便重新使用。但是Parent1和Child1的情况不同,Parent1有根对象,因此GC不能回收他们,因为他们还在被程序使用。对于.NET来说,有三类根对象:
      在托管代码线程栈上的局部变量 静态变量 GCHandle 对象
      我们就来谈谈IL2CPP如何就这三类根对象和垃圾收集器进行通讯。
      项目设置
      以下的例子我将会使用OSX上的的Unity 5.1.0p1版本,我将目标平台设置成iOS,这样可以让我们通过Xcode来观察IL2CPP和GC的交流的情况。






















      using System;using System.Runtime.InteropServices;using System.Threading;using UnityEngine;
      public class AnyClass {}
      public class HelloWorld : MonoBehaviour { private static AnyClass staticAnyClass = new AnyClass(); void Start () { var thread = new Thread(AnotherThread); thread.Start(); thread.Join(); var anyClassForGCHandle = new AnyClass(); var gcHandle = GCHandle.Alloc(anyClassForGCHandle); }
      private static void AnotherThread() { var anyClassLocal = new AnyClass(); }}


      在构建设置中打开“Development Build”,并且在“Run in Xcode”中将值设置成“Debug”。在生成的Xcode项目中,首先搜索字符串“Start_m”。你应该能找到为HelloWorld类中Start函数生成的HelloWorld_Start_m3原生代码函数。将线程中的局部变量添加成为“根”对象

      在HelloWorld_Start_m3中的Thread_Start_m9处添加一个断点。这个函数会创建一个新的托管线程,因此这个线程会当成“根”对象被添加到GC中。我们能在随Unity一起发布的libil2cpp的头文件中一探究竟。在Unity的安装目录中,打开Contents/Frameworks/il2cpp/libil2cpp/gc/gc-internal.h文件。这个文件中有一些有着“il2cpp_gc_”前缀的函数。他们就是libil2cpp运行时和垃圾收集器之间的桥梁。请注意这些都不是公开的API,所以请不要在实际的项目中使用他们,Unity会在没有通知的情况下变化接口或者直接删除他们。
      让我们使用Debug > Breakpoints > Create Symbolic Breakpoint菜单命令在il2cpp_gc_register_thread函数中设置一个断点:
      如果你在Xcode中运行项目,你会注意到这个断点几乎是立刻被触发了。在这里我们不能看到源码,源码在libil2cpp的运行时的静态库中,但是我们在调用栈中可以看到这个线程是在程序一开始就执行的InitializeScriptingBackend函数中被创建的。

      事实上我们会发现每当托管线程被创建的时候,这个断点都会被触发。就目前而言,你可以让这个断点暂时无效从而让代码能够继续运行。接下来我们会触发最一开始在HelloWorld_Start_m3函数中设置的断点。现在到了我们的代码创建线程的地方了,所以再次让在il2cpp_gc_register_thread函数中的第二个断点有效。当断点被触发的时候,第一个线程正在等待加入我们创建的线程,而在新创建线程的栈中显示线程已经开始运行了:

      当一个线程被注册到垃圾回收器中,GC会把这个线程栈中的所有对象当成“根”对象。让我们看下那个线程中生成出来的原生代码(在HelloWorld_AnotherThread_m4函数中):




      AnyClass_t1 * L_0 = (AnyClass_t1 *)il2cpp_codegen_object_new (AnyClass_t1_il2cpp_TypeInfo_var);AnyClass__ctor_m0(L_0, /*hidden argument*/NULL);V_0 = L_0;


      我们能看到一个局部变量: L_0。GC必须将其视为“根”对象。在这个线程的短暂的执行过程中,这个“AnyClass”对象和其所引用的其他对象所占用的内存空间不能被GC回收另作他用。绝大部分在栈上的变量对于GC来说都是“根”对象,因为这些变量所在的函数都是在一个线程中被执行的。
      当线程退出的时候,il2cpp_gc_unregister_thread函数被调用,用来告知GC这些对象已经不是“根”对象了。因此GC可以通过回收L_0来释放AnyClass所占用的内存空间。
      静态变量
      有些变量不在线程调用栈上。这些静态变量也需要被当成“根”对象处理。当IL2CPP生成原生代码时,它会把所有静态成员集中到另外一个C++的结构中。在例子中的代码中,我们可以找到 HelloWorld_t2类的定义:









      struct HelloWorld_t2 : public MonoBehaviour_t3{};
      struct HelloWorld_t2_StaticFields{ // AnyClass HelloWorld::staticAnyClass AnyClass_t1 * ___staticAnyClass_2;};


      请注意这里IL2CPP并没有使用C++中的static关键字,因为IL2CPP需要控制这些静态成员的创建以便能和GC进行通讯。当这些类型第一次被使用到的时候,libil2cpp中的代码会对其进行初始化。初始化中包括了对HelloWorld_t2_StaticFields结构的内存分配。这些内存分配是调用了特殊的GC内部函数il2cpp_gc_alloc_fixed(这个函数也位于gc-internal.h头文件中)实现的。
      这个函数会通知GC对这些分配的内存全部当成“根”对象处理。因此GC会很负责的在整个进程中保持这些对象。在il2cpp_gc_alloc_fixed中设置断点也是可行的,不过因为这个函数很少被调用,因此这个断点不是太有用。
      GCHandle对象
      假设你不想使用静态变量,但是你又想当GC回收他们的时候对变量有更多一些的控制权。特别的,当你将托管代码中的一个对象传递给原生代码,而原生代码又要保持这个对象的时候,我们必须告诉GC这些对象是“根”对象,不能被回收。这个是通过一个特殊的GCHandle对象来实现的。
      GCHandle的创建告诉运行时代码这些对象应当被当成“根”对象处理,此对象以及其引用到的对象都不能回收重用。在IL2CPP中,我们能在Contents/Frameworks/il2cpp/libil2cpp/gc/GCHandle.h文件中看到相关的API函数。
      再次强调,这些不是公开的API函数,不过深入调查一下还是蛮有趣的。让我们放一个断点在GCHandle::New函数中。如果我们让项目继续运行,就能触发这个断点:

      从栈上我们可以看出实际的调用函数是GCHandle_Alloc_m11,在这个函数里创建了GCHandle对象并且通知GC其是“根”对象。
      总结
      我们检视一些内部的API函数来搞清楚IL2CPP运行时是如何和GC交互的:通过“根”对象的概念让GC知道哪些对象可以被回收,而哪些不行。大家或许注意到了我们在这里并没有讨论IL2CPP用的是哪种垃圾收集器。目前正在使用的是Boehm-Demers-Weiser垃圾收集器,同时我们也有计划去研究另一个开源的CoreCLR垃圾收集器。对于新的垃圾收集器集成,我们并没有一个具体的时间表,大家可以关注我们roadmap的更新。
      和往常一样,本文只是讲述了IL2CPP中有关GC的一些皮毛而已,我鼓励大家自己继续探索研究IL2CPP是如何和GC交互的。
      下次,通过讲述我们如何对IL2CPP代码进行测试来对深入讲解系列做一个总结。




    • 红茶君 3218 2

      低多边形(Low Poly)风格会不会成为移动游戏时代的8bit像素艺术?

      在iPhone进入游戏市场之前,大家都认为PC和主机游戏的画面的进化趋势是变得越来越逼真、有越来越多的多边形数。让游戏更贴近现实是游戏的核心进化趋势,所以制作者们在游戏中塞进更多的多边形,以实现更逼真的效果,这就要求PC和游戏机硬件提供强大的处理能力。有趣的是,当整个进化的战场来到了手机市场,高多边形数量的逼真角色就显然不适合移动硬件了。人们需要同样吸引人的替代品。
      触屏时代的用户对游戏美术有着不同的需求。游戏开发商必须降低多边形数量去以适应移动设备。
      但如果我们抛弃了逼真的美术,就必须用一些别的东西来补偿玩家。
      事实证明,行业领军者们开始重新思考低多边形的美术,并试着放下他们的心理障碍,不再认为真实的角色和环境是唯一让游戏美术更上一层楼的方法。事实上,像EA和育碧这样的公司,在刚开始发行移动游戏的时候,为理解这一点交了不少学费。
      游戏行业终于明白了其中道理,于是低多边形艺术发展起来。它很快就被分析师们与8位像素艺术相提并论,并认为低多边形艺术会与移动硬件一起发展壮大。
      如今,低多边形美术、炫目的发光特效、明亮而活泼的色彩…随着手机游戏的发展,已经成为游戏美术新的特点。无数围绕于此的头脑风暴、想法和方案不断被提出,整个产业正在拥抱这种风格。而同样的趋势也发生在网页的美术设计上。
      低多边形为何适合移动设备?这很简单,在游戏进行时,3D物体的渲染是实时的。这些对象或是3D模型由无数多边形组成,更多的多边形数意味着更多的顶点,反之亦然。手机游戏中的顶点数量要尽可能低(当然是在不影响视觉效果的情况下)。如果每秒渲染的顶点多,游戏的帧率就会降低,游戏体验就会受到影响。
      使用更少的多边形/顶点,同时利用任何可能的方法增加美术的吸引力——这就是如今的美术设计师们试图实现的。为了达到这个目的,设计师们开始重新考虑移动游戏中对象的形状。
      你可能知道,更弯曲的表面需要更多的顶点才能看起来更真实。然而,要在低多边形美术的领域实现同样的事,艺术家就常常倾向于建立网状物,这样,缺少曲面的特点就不那么明显了。这样的物体形状由更少的顶点构成,却依然具有说服力。
      也就是说,角色要由基本的形状构成而不失真。换句话说,一条鲸鱼必须看起来像鲸鱼而不是一条细长的鱼,这是通过利用最少数量的多边形来实现的。面部肖像就是一个好的例子。
      另一个明显的趋势是,低多边形游戏美术正在创造卡通风格的美术。在遵循建模的基本惯例的同时,角色也被夸张化了,人物角色和面部尤其如此。
      有设计师认为,低多边形风格是卡通风格中最现实可行的,理由是它非常简单,不受现实比例制约,能够承载很多的创意产物。
      你可以放大身体的某一部分来强调角色技能:比如大头表示知识丰富、宽厚的肩能扛许多的枪支,这样就用视觉上的方式表示了角色特点。地铁跑酷(subway surfer)中的主角的大头和修长的四肢就是个好例子。因此,低多边形的游戏艺术是自然与卡通混合的产物。 现在,我们来看看一些运用了低多边形美术的优秀游戏,它们都是智慧与美感结合的作品。 虽然不是手机游戏,但《勇气默示录》里的人物模型也是一个用比较少的顶点数实现优秀美术效果的例子。 还有一些非常风格化的作品。比如设计师Timothy J. Reynolds创作的山和水。这种非常风格化的低多边形美术,我们常常在一些独立游戏中看到,比如下面这个。 纸狐(Paper Fox)就是一个这样的例子。游戏中纸质模型给人精致的新颖感。纸质的风格并不是低多边形美术的唯一选择,更多的流行游戏选择了色彩更丰富、效果更圆润的美术风格。 比如美术设计师这样画树,也可以实现清新独特、节省资源的效果。
      游戏行业的改变是非常迅速的,这常常要求我们从全新的角度重新思考游戏创作。
      不是美工!是艺术家!

    • 红茶君 1362 1

      在TGS展前发布会上,索尼给独立开发者写了一首诗。

      可能现在有好多人已经在日本参加TGS了。
      在昨天SCEJA的展前发布会上,现场除了发布一群新作和大作之外,还播放了一段名为「Spirits of Indies with PlayStation® ~アイデア一発で、ゲームの歴史に名を残せ。~」的视频剪辑,就是下面这一段。
      视频里出现的游戏包括TorqueL、OlliOlli2、Chariot、AirShip Q、Octodad、New 'n' jasty! 、Never Alone、Mighty No. 9、Galak-Z: The Dimensional、Super Time Force Ultra等等,大多数已经可以玩到了。

      剪辑中穿插的文字连起来是下面这样的。索尼给大家写了一首诗:
      不俗之作?怪诞之作?怎么形容其实无所谓。
      改变游戏历史的,无论何时,都是新的创意
      不正常也好很奇葩也罢只要有趣,就什么都行
      「这什么鬼!?」——这是赞许之语做谁也不曾想到的游戏。做还未经过商业化验证的作品。做自己真正想做的。
      这同样是,PlayStation的DNA。
      PlayStation怎能不当挑战者?
      用一个创意名留青史。PlayStation × Indies
      「Indies」的反义词,不是「主流」,而是「无趣」。
      这是索尼爸爸写给大家的鸡汤

    • Jigsawindie 3671 45

      我们是一家独立游戏公司

      这是我们的公司 – 拼图独立。


      这里有一群人,正在努力实现我们共同的梦想。

      现在这个梦想已经完成了一小部分,剩下的部分,需要你跟我们一起来完成。

      关于这段宣传与招聘短片,有任何疑问,欢迎随时留言,或者有其他关于我们的任何问题,我们会做详尽的回答。
      欢迎登陆我们的网站www.jigsawindie.com了解更多详情。
      我们的官方微博:jigsawindie拼图独立