游戏设计_游戏设计模式 - CSDN
精华内容
参与话题
  • 当我去设计一个游戏,一个玩法,包含规则,游戏对象等等一系列的游戏系统,用纸可以写下来,用嘴可以说出来,但是当我想要用程序去实现这一堆东西的时候,就有些无从下手。比如我们大家都会下五子棋,它有一个明确的...

    游戏开发这个世界太广阔了,这篇文章中,我只在程序实现的抽象逻辑上,开一个口子进行一些肤浅的阐述。

    当我去设计一个游戏,一个玩法,包含规则,游戏对象等等一系列的游戏系统,用纸可以写下来,用嘴可以说出来,但是当我想要用程序去实现这一堆东西的时候,就有些无从下手。

    比如我们大家都会下五子棋,它有一个明确的规则“一人一字交替放置棋子,率先5颗连成一线获胜”,在现实世界中,我们不用考虑五子棋的硬件配置,拿一张白纸,画上横纵格子,两人分别执笔就可以完成一场五子棋的游戏,或者是使用正规的五子棋盘和棋子。无论用什么玩,要实现“玩”是很简单的。

    但是在做一个五子棋视频游戏的时候,那就需要把“棋子”“棋盘”这些东西用软件去实现,

    进一步,作为抽象概念的“游戏规则”“胜负判断”也需要软件去实现,这就需要更多的“用计算机思维去思考”。

    于是我花了一些时间,凭借有限的本科计算机基础以及一些自我东拼西凑的自学,总结了一下游戏框架的一个通用设计方案。

    一.随便开个头

    首先阐述一下大的抽象概念,这里也不用被“抽象”二字吓到了,什么是抽象,就是归纳总结出来的结论之类的东西,就像把自行车,飞机,汽车都抽象为“交通工具”一样,这里归纳总结一下这些玩意的共性,于是“交通工具”这一个抽象概念就诞生了。

    视频游戏程序框架,我认为她(she)就是一个循环(Loop)过程性,“开始游戏——杀敌/解密/闯关/…——游戏胜利/游戏失败——开始游戏”,对吧,关键字,循环(Loop)的,过程的。

    进一步对此概念进行细化,衍生出GameState(游戏状态)和GameController(游戏/规则控制器),至于为什么会有这两个概念?我是参考了UE4提供的GameState类和GameMode类,同时也参考了前辈们用Flash写的游戏逻辑,至此我总结为GS和GC两大块,至于更高级的学术阐述,受限于我学识水平目前还做不到。

     二.GameState

    GameState就是对游戏状态的描述,最基本的两个,GamePlay(开始游戏)GameOver(游戏结束),这里GameOver不能理解成玩家平时看见的GameOver,玩家平时看见的GameOver大多表示游戏失败,而在这里,这个概念只是表示游戏结束,因为无论你游戏胜利还是游戏失败,游戏都结束了(GameOver)。

    在此之上,可以进行扩展,例如现在游戏都会有主菜单,也有暂停,或者有多人模式,游戏设置等等,于是我们可以在GameState中添加MainMenu,GamePause,MultiPlay,GameOption等等。

    使用GameState进行游戏状态的管理有什么用?最重要的就是给你一个清晰的编程实现游戏的思路,或者说给你一个入手点,至于方便管理游戏进程,方便后续游戏程序功能性扩展,降低游戏程序各系统耦合性等等,实在太多了。

    至于GameState如何使用?这东西就是用来切换的,作为标识游戏目前状态的一个Flag。

    之前在阅读《游戏人工智能编程案例精粹》这本书中,其中详解了FSM(有限状态机)在游戏AI的应用和扩展,以此联想,对于GameState的处理使用FSM岂不是再合适不过了。《lua游戏开发实践指南》中提到“对于Singleton,无论什么情况下,只要它们提供方便就使用它们”,虽然这句话说的太满,不太符合中国人的思维,也不符合辩证法(笑),但也某种程度上表明Singleton的实用性和广泛性。所以更进一步,使用Singleton(单例模式)的FSM处理GameState,以我来看是极好的。

    当然,以上是抽象概念的阐述,最终用到游戏程序设计上,还得按照一些编程语言的语法和特性来实现,这里,我也给出了一份Unity的C#的原型代码,可以当作伪代码吧。

    Unity的C#的原型代码: 

    publicclassS_GameState : MonoBehaviour {

       publicenumGameState

       {

           GamePlay,

           GamePause,

           GameOver,

           GameReady,

           GameInit

       }

       publicstaticS_GameState Instance;

       privateGameState m_GameState;

       void Awake()

       {

           Instance = this;

       }

       publicGameState GetGameState()

       {

           returnm_GameState;

       }

       publicvoid ToGamePlay()

       {

           m_GameState = GameState.GamePlay;

       }

       publicvoid ToGamePause()

       {

           m_GameState = GameState.GamePause;

       }

       publicvoid ToGameOver()

       {

           m_GameState = GameState.GameOver;

       }

       publicvoid ToGameInit()

       {

           m_GameState = GameState.GameInit;

       }

    }

    补记:

    至于FSM和Singleton,请教谷歌老师是一个很好方法,不过,这里我稍微阐述一些FSM的应用,FSM早些年用于游戏AI的构建,毕竟游戏AI不同于科研领域的AI,游戏AI不是为了让玩家无法战胜而设立的,基本上游戏AI就是一套规律的集合,比如《黑暗之魂3》的第一个BOSS——古达,其中一个规律就是半血之后会变身,变身时候有动画,不会攻击,玩家可以很安逸的砍空一条体力,然后全身而退,这个规律,打几百遍古达都不会变。

    回到原来话题,FSM广泛应用于游戏AI的地位现在基本被行为树取代了,然后FSM现在就专职做起了角色动画的管理,比如第三人称玩家角色的各种动画切换,UE4和Unity都使用FSM进行动画状态切换的管理。

     三.GameController

    说完了GameState,就该说一下GameController了

    GameController就是用来管理游戏规则的了,比如开始游戏了,要生成玩家角色,生成敌人,生成地图等等;玩家按了ESC,要暂停游戏了;玩家通关了,妙极,GameOver;

    所以GameController比起GameState要更加具体,基本上GameController就是要处理GameState切换之后一系列工作,依旧是五子棋,比如GameState从MainMenu切换到了GamePlay,那么GameController就要加载一个载入画面,载入结束后,消掉载入画面,同时显示一个棋盘等待。当然,OnLoading也可以作为一个GameState,至于要不要这个OnLoading的GameState,就归到弹性选项里面好了(笑)。

    这里就需要一个游戏状态的检测,如果游戏某一时刻切换了状态,那么作为GameController就得做点事情了,所以要快!准!狠!

    于是在一个独立线程里面整个一while(true)来不断循环判断是否游戏状态进行了切换

    当然GameController也可以使用一个Singleton来实现,我认为是不错的,不仅可以异步执行,而且很快,充分满足快准狠的需要,而且分离了游戏的渲染线程和逻辑线程,并行优化/劣化好像很不错(笑)——对于一般的小型游戏,多线程可能会杀鸡用牛刀,反而劣化的游戏性能。

    不过现在游戏引擎都体统了一个每帧调用的函数,所以将游戏状态检测放在里面也是很好的,以下,提供一个Unity的C#代码,以供参考。

    Unity的C#的原型代码:

    void Awake()

       {

           Instance = this;

       }

       void Start()

       {

           m_StartWait = newWaitForSeconds(m_StartDelay);

           m_EndWait = newWaitForSeconds(m_EndDelay);

           StartCoroutine(GameStateOperator());

       }

       IEnumeratorGameStateOperator()

       {

           while(true)

           {

                switch(S_GameState.Instance.GetGameState())

                {

                    caseS_GameState.GameState.GameInit:

                        GameInit();

                        break;

                    caseS_GameState.GameState.GameReady:

                        GameReady();

                        break;

                    caseS_GameState.GameState.GamePlay:

                        GamePlay();

                        break;

                    caseS_GameState.GameState.GamePause:

                        GamePause();

                        break;

                    caseS_GameState.GameState.GameOver:

                        GameOver();

                        break;

                }

                yieldreturnnull;

           }

       }

    补记:

    这里使用了Unity的伪线程——协程,方便使用多线程进行参考,同时也为了让代码结构清晰一些。

     四.状态切换

    GameState提供了游戏状态来切换,GameController提供了状态切换后的工作处理,那么问题来了,什么玩意儿来切换GameState呢?

    自然是游戏对象了,GameObejct,玩家角色,Npc,某个子弹,某些触发器,键盘操作等等。回到上面看看GameState的切换函数使用了public,也是这个原因,反正都是static了,稍微裸一点,我觉得颇为不错(笑)。

    回到原来话题,比如玩家角色也许有一个HP的属性,当HP==0时,GameOver,调用一下GameState的状态切换函数,将状态切换称GameOver,这时,GameController检测到了GameState切换了,开始做出响应,很完美。

    当然GameController也可以用一用状态切换,比如一些类似关卡倒计时计算需要写在GameController里面,当倒计时为0是,游戏结束,这时候就需要GameController调用切换函数了。同样的,对于玩家角色的HP检测放到GameController里面也未尝不可,不过这显然不符合OOP的设计原则,这么明显的增加耦合性,软件工程老师要气死。但是我就是要气死他(笑)。

    补记:

    对于游戏对象的分析和设计,我觉得需要综合OOP思想和设计原则,虽然设计主流游戏类型,大多有原型了,比如UE4就很人性化,提供了各种类型游戏原型,这里UML之类工具使用起来也是极好的。当然不能忘了UI的设计,UI是要契合游戏程序的,有效利用GameState是很好的入口点。下一篇我应该会说说UI设计的东西。


    展开全文
  • 一个游戏是如何被设计和开发出来的

    万次阅读 多人点赞 2018-10-03 20:14:24
    我在知乎回答“想要自己做一款游戏,需要学习哪些知识”下面简单列举了四个能力,分别是:程序、设计、美术、音乐。但是碍于篇幅限制,我并没有详细展开来说明每一项能力具体是如何发挥作用,以及发挥作用的形式和...

    我在知乎回答“想要自己做一款游戏,需要学习哪些知识”下面简单列举了四个能力,分别是:程序、设计、美术、音乐。但是碍于篇幅限制,我并没有详细展开来说明每一项能力具体是如何发挥作用,以及发挥作用的形式和功效。如果在学习之前,我们对即将学习的东西一无所知的话,会导致学习中产生不小的迷茫感:不知道为何而学,不知道学了有什么作用,不知道该学习到什么程度。带着这样的迷茫去学习,会导致学习效率低下,容易受挫,甚至会在达到一定程度后动摇自己理想,怀疑自己的学习能力是否有问题。作为以“引导自学游戏开发”为使命的一个专栏,我认为非常有必要解除初学者对于游戏开发的朦胧认识。这也是自学游戏开发专栏第二篇文章的意义之所在,让初学者了解:

    • 一个常规的游戏开发团队有哪些人,每个人具备怎样的能力
    • 一个游戏从最初构想到最终完成开发,会经过一个怎样的过程
    • 团队中的每个人在游戏开发过程中的什么时间,发挥了怎样的作用

     

    在了解完以上三个问题以后,我们会对自己的情况做一个判断,根据自己的情况,再对未来的方向做一个规划。比如说,你是一个喜欢画画的人,想从事游戏相关的美术工作,那么你就应该知道不同的美术工作在游戏开发流程的哪一步需要画什么样的东西 做什么样的美术资源,设计师和技术人员拿到你做的美术资源又会加以怎样的修改和使用,你在后面的学习中应该着重练习哪方面的技术和能力;再比如说,你想成为像我一样技能覆盖面比较广,各个方面都知道一点的开发者,那么你应该如何去组织你的技能,在众多的技能中考虑到你的性格和你的特长,你更喜欢亲自做哪一项工作内容,应该选取哪个作为核心能力,如果今后不做独立开发而是进游戏公司工作,你会站在哪个位置工作?在阅读完本篇的正文后,你会开始思考这些问题,并尽快找到一个大致的答案。

    预先了解我们即将从事的工作,预先概览我们即将学习的知识,这件事对于引导我们前进有重大的意义。为了完成这个环节,我从第一篇文章发布后到现在一直都在筹备此事(边看春晚边做配图)。要让任何一个从没接触过游戏开发的人,在一篇文章的篇幅内了解整个游戏开发的全过程,这件事情真的是非常难。我认为真正要做好这件事情,需要一个纪录片的工作量。要完整地记录下一个游戏从设计师的头脑中 转换到电脑中的过程,然后展现给别人。我本人的搜索能力有限,到目前为止并没有找到一个非常理想的此类纪录片,但是在知乎问题 “有哪些介绍游戏开发过程的纪录片或视频?” 下面,

    @windleavez

     的回答中有非常多零零散散的相关纪录片(在此也感谢他为这些视频做的字幕)。在后文中,我会适当地引用其中一些视频片段以及YouTube上的相关视频来辅助讲解。下面正文开始。

    一、游戏开发团队的人员配置

    一个常规的游戏开发团队有哪些人?我们先过目几张图:

    下图是一个国内很常规的 MMORPG开发&运营 人员配置图。

     

    ↓是几个国外游戏开发团队的人员配置图。

     

    大家把每个头衔看一遍就行了,不用去记忆。从名字当中,或许大家都能猜到某些岗位是干什么的,有些猜不到也没关系,我正要去一一讲解。为了方便阐述,我自己做了一张人员配置图,融合了以上的实战配置和我自己对于游戏开发的理解。(注:为了方便查看,建议另存到本地)下图:

     

    阅读指南:

    • 矩形代表“岗位”、平行四边形代表“工作内容”。
    • 红色:代表设计能力;蓝色:代表计算机编程能力;绿色:代表美术能力;
    • 颜色明度:代表专业性要求;颜色灰度:代表综合能力要求。(非严格遵循)

     

    因为我非常反感国内把Game Designer叫作“游戏策划”的翻译,还有一些其他岗位翻译不准确或是在中文语境中遭到了贬低,所以这张表我特地全部使用了英文名词。每个名词旁边有小小的中文注解,放大到100%即可看清。

    首先一个标配游戏团队中有三大Director:Creative Director(创意总监)、Technical Director(技术总监)、Art Director(艺术总监)。说土鳖点就是:主策、主程、主美。很多新人以为Creative Director(主策划)就是游戏团队中最大的BOSS,可以拍板说话。但其实三大Director上面还有Producer,在公司里Producer上面还有CEO,CEO上面还有Board of Directors。

    在国外的话,Creative Director享有更高的权利,他来决定游戏往哪个方向设计和制作,对于设计上的分歧进行最终决断。Technical Director决定采用的技术方案,制定游戏特需的功能和系统,保证技术组的步调一致。Art Director负责领导制作游戏所需的美术资源,保证游戏画面的美观性和统一性。 Producer更多的是提供三大Director需要的资源和帮助,并保证游戏项目的正常推进和最终发售。当然了,有的制作人本身也担任创意总监的职责,比如说小岛秀夫、席德梅尔。

    (讲个段子)在国内的话,基本情况就是一层压一层,逐级给压力。最上面的投资人想赚快钱,给CEO压力,要求其多长时间内实现多少盈利;CEO把压力分担给制作人,要求其多长时间内必须完工,上线后的ARPPU最好要达到多少;制作人菊花一紧,从身体下面拿出棒子去敲主策的头:“上头要求又提高了,你这个武器合成的系统,把坑给我开到要玩家花20W人民币才能填满。” 主策老王顶着一头包跟跑腿刚回来的执行策划小王说:“你去把升级武器用的所有材料的价格乘个2。” “好。”小王把软中华和剩下的35块钱放到主策桌上,然后跑到主程电脑椅旁蹲下扒着他肩膀:“张哥,上次拜托你们优先查的那个武器合成系统的BUG怎么样了,我现在要改数值能不能起作用?” 老张pia一下把小王打翻在地:“别来烦我,今天美术老赵那边给的模型放进引擎里法线一个都不对,我正在愁这事儿呢!” 小王懂事地爬起来地回到座位,一只手指在屏幕的EXCEL表上游走,另一只手在键盘托里握着手机,继续开心消消乐的第652关。差不多到吃中饭的时候,小王跑到主策位置上:“老大,我去跟程序那边搞了一上午,武器系统那BUG他们还没修好,我现在还改不了数值啊~” “要你有什么用!给我去买份羊杂汤回来!劳资亲自去找他们说去!…………对了加个蛋!”(大误)

     

    段子讲得很有讽刺意味,可能有点过了头,大家看个开心就好。下面我将把人员配置图的每一个角色/工作 带到游戏开发流程中去讲解。

    游戏开发流程

    在人员配置图中还有很多其他的角色,我将在游戏开发流程中逐个说明他们的作用。现在建议大家把 人员配置图 打开放在屏幕的一边,然后把下面这张 开发流程图 打开放在另一边,下图:

     

    这是一个游戏开发流程理想模型。我将按阶段来逐一讲解。

    1、立项阶段:

    一个游戏项目是如何开始的?一般有三种打开方式:

    1.1、始于市场

    一般一个大点的公司都会有市场部,也有专门的市场调查公司,他们的日常就包括收集市场数据、分析数据。市场部的人在完成一次调查之后,会得出一些结论。他们把这些结论交至项目部,Producer拿到数据分析,会决定下一个项目应该做什么样的游戏。然后Producer再把决策告诉游戏设计师,让他们来着手开始设计相应的游戏产品。

    比如说:经市场部研究分析,今年三国题材的游戏,不论游戏玩法类型如何,都比相同类型的游戏拥有更多的下载量,预测明年三国题材将会保持这项优势;今年传统TOP-DOWN类型的MOBA游戏,总活跃玩家数比去年有轻微下降,但是FPS和TPS类型的MOBA游戏有明显的增量,预测后面几年MOBA游戏市场大流将会从细分类型TOP-DOWN转向FPS。公司里正闲着想做下一个项目的制作人老李拿到这些数据:“噢!那我们就来做一个三国题材的FPS+MOBA游戏吧!稳赚不赔,就这么定了!” 然后老李就找到御用主策老王:“你看我们之前那个项目能不能换个皮变成一个三国题材的FPS+MOBA游戏,或者说你重新设计一个?” 这是Market->Producer->Creative Director模式。

    1.2、始于大佬

    我这里说的大佬一般指那些煤老板啊,房地产老板啊,搞赌博网站的老板啊,做互联网其他领域搞得比较风生水起的各种老板啊,反正就是从来没有接触过游戏行业有钱有人的老板。他们看到游戏行业赚钱快,忍不住也插一脚进来,扔一笔钱招个团队组个公司,做个游戏吧,什么都行,赚钱多的那种。

    事情是这样的,有一天他关掉37玩大天使之剑的网页,抽着闷烟突发奇想:马勒割鸡,那些搞游戏的做这么个辣鸡玩意儿动不动月流水上亿?劳资怎么不去搞一个呢?雾草,就是了,我也搞他妈一个,就不信在自己的游戏里还干不过排行榜第一名那个“熊爸傲哥”。于是他就打电话给二把手:“强子,给我他妈的招个游戏开发团队,对,劳资要做个游戏,就做个37玩大天使之剑那样的!” 后来?后来策划老王、程序老张、美术老赵把这个煤老板的钱分摊拿去交各自的房子首付了,项目糊弄几下,上线前几天一起离职,组队去了另一家公司,老李的手下。

     

    1.3、始于游戏设计师

    曾经有一个少年,他从小学时就一直玩游戏,一直玩到高考玩脱。考了个三本。在大二的某一天,他突发奇想:“诶!如果把这个想法做成一个游戏,简直太绝了!前无古人啊,一定敲好玩!估计小赚个一两亿没问题,嗯~” 于是他找到下铺商学院的小李,跟他激动地分享了一下这个想法。小李一脸凝重地点着头:“好像还行,不如这样吧,先去网上搜搜看到底有没有这个类型的游戏嘛?或者说看看会玩这种游戏的玩家大概有多少他们会花钱买嘛?……” 时光荏苒,十年过去了,在落地窗前站了许久的老王,突然浮现出异样的笑容,屁颠屁颠地跑到老李的办公室:“老李我跟你说,我刚刚想到一个绝妙点子,是这样的……&*%&……¥……&” 老李一脸凝重的点了点头:“好像还行,不如这样吧,我让市场部那边做个调查,看看你说的这个创意有大市场要达到收支平衡最多能投入多少资金。”

    我写这个段子并没有半点讽刺的意思,只是反映了一下大多数人的情况。实际上,我们少年都是这么过来的。这个叫做Creative Director-> Producer->Market。

    1.4、补充

    以上三种呢,只是游戏行业比较常见的开启项目的方式。一般来说,大的公司更喜欢炒冷饭,把他们现有的IP拿来立项开发续作,这样能保证游戏的销量相对稳定,降低风险。这种方式可以归类于1.1,因为他们是在确定市场的基础上来立项开发的。至于1.2,前几年在国内可谓遍地都是,有钱人都想进来赚个快钱,捞一把是一把。后来做游戏的人中出现了Bad Guy,不靠游戏销量赚钱,而是想赚投资人的热钱,游戏都不好好做了。一堆一堆的垃圾出现在市场上,垃圾中的战斗机没有玩家买单,于是投资人的热钱尽数打水漂,全都变成的那些开发者的个人工资,一分都收不回。中套的投资人多了,知道游戏这个行业已经捞不到好了,于是现在1.2的情况越来越少。相应的是,国内游戏行业的资本寒冬来临,越来越少的投资人愿意来投游戏开发团队了。1.3的情况应该是最理想的,无论是在小型团队还是大公司,我都倾向于一个创新游戏的立项之初是来自设计师的想法。因为玩法是一个游戏的核心,是游戏与电影以及其他艺术形式得以区分的关键因素。 对了,1.3中的少年即小王。相信许多正在看这篇文章的少年都有过小王相似的想法,这是好事。但是我鼓励每一个想自称游戏设计师的少年,在有一个想法后,把它置放一年,期间去读一读游戏设计相关的书,反复构思、打磨、验证你的那个想法。关于一个游戏创意的想法又能从何而来,我在我自己的设计方法论中有系统的理论分析,但现在不是和盘托出的时候。在此我们就假设我们通过某种思考已经得到了一个游戏创意的想法。老王:“我有一个想法,老李,给我几个人让我们来验证它吧!”

    2、原型阶段

    当一个游戏项目成立之后,并不是就会顺水推舟地做下去,一直到上线发售。事实上很多游戏项目会在开发中的各个阶段遭到关闭。关闭的原因很多种,包括资金断裂、成员分歧、发现这个游戏并不好玩。我们知道一个游戏立项之初,基本都有一个想法。但是除了设计师本人,其他人都不知道这个想法到底好不好玩,值不值得做,可能设计师本人也并不知道。虽然设计师可以写出洋洋洒洒的几万字的设计文档,但是从文字上我们也很难能透彻理解其中的精妙之处,就像我们难以用文字来真正了解一份佳肴吃起来是什么味道。但是当厨师把一堆食材塞到我们嘴里的时候我们就知道了。原型阶段就是一个检验 游戏玩法 和 开发可行性 的阶段。在这个阶段,设计师要向技术负责人阐释清楚游戏的玩法框架,游戏中存在的各个系统。技术总监会仔细聆听并斟酌设计师想法,在聆听的时候他的心理活动大概是这样的:他说的这个资源系统,我们上一个游戏的应该可以搬过来套用;这个建造系统,好像和《模拟人生》比较像,回头找找看有没有开源的方案;等等,国界线可以让玩家来的动态划分?这个设定似乎要求地图的无缝切换功能,这会导致开发难度和服务器性能要求上升,等会儿要提出来看看能不能避免这个设计;乳摇是什么鬼?劳资没接触过这种技术,又要研究新东西了……

    图中Creative Director就是游戏的首席设计师。最初,他带着Technical Designer(技术策划)跟Technical Director开会,大致讲解游戏的玩法框架,让技术总监心里有个数,下去要研究下哪些新的技术方案。其中Tech Designer的作用就是负责协调设计和技术的矛盾之处:帮助技术总监处理掉那些技术上根本不可能实现的设计,优化那些会带来技术压力的设计;帮助创意总监在删减掉一些设计后,补充其他廉价的设计来保障游戏系统的完整性。所以想要成为设计师的人,必须要了解到掌握编程能力的重要性。一个不懂程序的设计师,往往会天马行空设计出那些根本不能实现的东西,或是坚持要实现一些对计算机性能消耗很高的设定。《最后的守护者》在立项之初,还没决定采用什么作为玩家的同伴时,本来想过用人(一个女孩),但是设计师们考虑到人的行为十分复杂,要用AI做到逼近自然很难,于是才把目光移到了动物身上。他们观察了猫猫狗狗等各种动物,最后设计出Trico这么个生物。

     

    这是一个很好的例子,他们避免了一个研发的上大坑,但是当时他们不知道一堆羽毛的拟真表现对计算机性能消耗很大(其实开发难度也不简单),就算是在现在的PS4 PRO 上也只有30FPS的表现。如果说十年前上田文人就知道这些的话,我相信现在的Trico可能就不会有这么多毛了。

    在Creative Director和Tech Director会晤之后。Creative Director会带着其他的Game Designers把经过修剪的玩法框架填充完整,把每一个系统细节设计出来,编写成案。在这个过程中,Designers的思考过程可以大致参考下面这个视频。不过要注意这是游戏已经开发完成后设计们说的话,大家可以自行脑补成 他们正在游戏设计的前期 讨论如何设计:

    视频封面

    《魔兽世界:经典旧世》幕后传奇

    视频

    这时这群设计师已经知道这个游戏怎么玩了。为了检验他们的想法是否好玩,之后的一段时间内他们会和Programmers一起把这个游戏做出来。是的,整个游戏做出来,就在原型阶段。只不过哈哈哈,他们做出来的游戏原型差不多长成这个样子:

     

    (第一张图是《战地:叛逆连队》的原型截图,第二张是《美国末日》的原型截图,最后一张是玩家自制的《战地》模拟器:Ravenfield)

    这些设计师和技术人员坐在一起开发出来的东西确实一个个都是ugly baby。Designers和Programmers会创建一堆Box来替代游戏中的任何物体,或者用游戏引擎自带的预设物体来充数。画面中仅有的一点特殊美术资源,也许是Technical Artist顺手做的。这是Tech Artist参与原型阶段的附赠作用,他在此阶段更主要的任务是预先制定美术资源的输出规范,做好美术与技术之间的接口。 一个配备了Designers、Programmers、Tech Artist的小组,在几个月或者一两年的时间里一翻折腾,基本上实现了游戏所有的玩法、系统和功能,甚至技术细节,做出上面那种玩意儿。终于可以邀请一堆人坐在一起来玩这个游戏了,但是得忽略掉画面因素,纯粹地体验游戏性带来的乐趣。这是检验设计师创意的重要环节。现在,我代表Ravenfield的制作者SteelRaven7邀请你,来试玩这款Prototype级别的游戏:Ravenfield (如果你当前不便试玩,也可以通过“Ravenfield宣传视频”来了解它) 没有华丽的画面,没有精致的音效,被剥得赤身裸体的玩法能否给电脑前的试玩者带来乐趣?还是休息室茶几上的可乐和薯片更吸引他?如果这个丑陋的游戏能够让每一个试验者玩得放不下手,那么它毫无疑问通过了原型测试。但是,往往来试玩的大胖子们会点着头认真地说:“嗯……我喜欢你们这个游戏,如果它完成得更好的话。对了我能把零食带走吗?”

     

    Again,本篇文章着重于讨论开发流程,故在此不深入探究设计与迭代的话题。假设大胖子真的被我们的游戏原型所吸引,让我们来吃掉他的可乐和薯片,然后愉快地进入下一个阶段:Alpha阶段。

    3、Alpha阶段

    我们的玩法已经得到了验证,我们的功能已经得到了实现。但是之前的这些,只能算是pre-production。 现在,真正的游戏开发,才刚刚开始。在Alpha阶段,我们最重要的工作就是给有趣的核心玩法,包装上一层美丽的外表。不仅仅是视觉上的,还有很多其他东西。所有的这些事情,从High Level Design开始。

     

     

    3.1、High Level Design

    我翻译为:宏观设计。这项工作,主要是为游戏架构一个可信的世界。我们喜欢把负责这项工作的游戏设计师称作:世界架构师。世界架构师会考虑到游戏的特性、需求,以此为基础设计一个虚拟世界。完全的世界架构,以我的经验为参考,会从“世界法则”开始,然后设计出时间、空间,再之后是自然(以现实为模板就包括:星系、星球、地质、地理、动植物……),最后是文明和历史。当然,我们往往不会从零开始架构(即使是小说家们也不会),而是借鉴一个现成的世界,从中间的某一层切断,保留高层,自行设计低层。就像《魔兽世界》的世界观,改造于D&D与《魔戒》的魔幻架构;《阿凡达》从现实世界中的行星这一层进行了切断,自行设计了其下一层的卫星“潘多拉” 及之后的内容。《使命召唤:现代战争》从现实世界的历史层进行了切断,设计了从2011年之后发生的势力冲突。《俄罗斯方块》从……对不起这个游戏没有进行这项设计工作。在进行世界架构的时候,设计师会充分地考虑游戏的需要,然后才是调动他们对于世界的经验认识和丰富的想象力。在完成设计工作后,他们能回答像下面这样的问题:

    • 这个世界的最高法则是什么?这个法则如何运行?
    • 龙族是在什么时间,什么地点,以什么样的方式诞生的?他们有什么特点?红龙和黑龙分化的原因是什么?
    • 如果自然界中的树木隐藏着比人类更高的智慧,这个世界将会怎样?什么树木是森林的中枢神经?人类是在什么时间,如何发现这一事实的?在那之后人类文明和森林文明是如何相处的?
    • 如果美索不达米亚人在赫剃人进攻之前就掌握了冶铁技术,历史将会怎样?假设古巴比伦王国中有三大势力,他们是怎样形成的?
    • 如果在一个双星系统的星球中存在文明,他们会是什么样子?如果人类和他们接触会发生什么?(请参考《三体》)

     

    看到这些问题的时候,你是什么感觉?欢迎在评论中发言。一个合格的世界架构师,拿到上面任何一个问题,都能够在1秒之内开始回答,并且能够保持叙述20分钟不停口。中间你问他任何问题,他都能够响应你的引导把细节阐述得厘厘入微,并且,在即将完成回答之时,他能够在逻辑上把之前叙述的离散的内容全部联结在一起。世界架构师熟悉天文、地理、政治、哲学、历史、文明、生物、社会,他最重要的技能是:能够一本正经地具有逻辑地胡说八道。(很多人都知道,想要成为游戏设计师,最好上知天文,下知地理,中晓人和,尽可能多地去了解世间万物万事,这,说的就是对世界架构师的要求。)

    在High Level Design进到中后期,Art Director会进入到世界架构师的团队,他会搞清楚那些人的脑子现在都装了些什么。然后会用速涂的方式,来尝试着用画面表现那些人想出来的世界,并与他们确认。随后,Art Director就会开始初次设定游戏世界的画面风格,制定绘画规范。

    来看看《魔兽世界》的世界架构师在工作时想了些什么,视频中也可以看到艺术家为他所画的部分东西:

    视频封面

    《魔兽世界:经典旧世》幕后传奇

    视频

     

    与此同时,技术组会开始着手游戏代码优化或重构的工作。在原型阶段,为了快速实现功能,程序上可能会存在大量的不合理和BUG。好一点的情况是对代码行进优化,补足残缺的功能,修复BUG(这一工作会一直持续到游戏下架的那一天)。差一点的情况就是重新编写整个游戏、使用一个新的引擎或者重新开发一个适合的引擎(很少有专门为一款游戏而单独开发引擎的案例,成本太大了)。技术人员们也会开发一些能够提高工作效率的小工具,向开发组中任何需要人提供服务。

    3.2、Story Design & Concept Design

     

    经过High Level Design的工作,我们有了一个世界。现在,我们要向这个世界中添加一点有趣的东西:故事。故事的核心:某人,在某时某地,做了某事。剧作家们,非常擅长塑造一个角色形象,也能够描绘出精彩的故事场景,制造出具有张力的故事情节。因此往往由职业编剧来负责此事。相对于世界架构师,编剧们在完成工作后会知道更具体的一些事情(任何鸡毛蒜皮的小事):

    • 猎空的父母分别叫什么?来自哪里?什么血型?如何相识?生猎空的那天是哪个医生负责接生?他在猎空的手臂上注入了什么?这与她后来加入守望先锋组织有什么联系?
    • 伊利丹和玛法里奥在幼年时关系如何?他们第一次发生矛盾是什么情况?伊利丹在被囚禁的时候对他的哥哥怒吼了什么?伊利丹所心爱的人与玛法里奥又是什么关系?
    • 维京人把过冬的粮食储藏在了什么地方?他们又把从日本商船上劫掠来的货物堆在哪里?黑石军团从什么地方入侵了他们的家园?黑石军团战盾上的纹理是什么样?有什么意义?

     

    为游戏设计故事不是写小说。在Stroy Telling类型的游戏中,玩家们要控制故事中的角色,和其他具有性格的人物互动,要走进编剧们想象中的街道和战场,改变故事发展的进度或顺序。玩家会从任何角度观察游戏中的人和场景,因此我们必须在视觉上还原编剧们的创作。我们要确切地知道艾米长什么样,她窗外的花园是什么样,她父亲送给她的飞行滑板又长什么样。因此我们需要Concept Artist,来为每一个人,每一个物品,每个一场景设计概念原型。这个概念原型不一定是一张很完整的美术作品,但是任何一个看到它的人,都能够拍着设计师的肩膀说:“我get到了这个感觉。”为了完成这项工作,为了得到一个合适的人物形象或道具模型,Concept Artist可能会绘制几十份概念稿,最后从中挑选出一个。现在,我们来欣赏一下概念设计师的创作过程:
    来自艺术家Cam Sykes的“霍比特人-索恩橡木盾战士”概念设计过程
    来自艺术家Sycra的 飞船概念设计过程
    来自教育网站http://GameSchoolOnline.com的 场景概念设计过程
    为了把握感觉,概念设计师们会大量地创造原型。最后大部分都会舍弃掉,只筛选出最好的一两个,然后为其绘制出线稿。过程请参考下面(大家可能会比较熟悉的):
    来自国内漫画家黄嘉伟的 阴阳师-酒吞童子的创作过程

    也许大家观看后会比较激动,“原来游戏角色是特么这么设计出来的!?教练,我想去学做游戏。”但是我必须在此适时地泼上一盆冷水:游戏领域中任何表面上看起来优雅而轻松有趣的工作,背后都需要大量繁重地练习和学习。就比如设计一个酒吞童子,表面上只是画几根线,但背后至少需要知道的东西有:线稿的绘画技巧、形式美法则、透视原理、人体结构、服装设计、日本传统文化等等。这几样最基础的东西,必须像血一样流淌在你的身体里,才能够进行畅快的设计。下文中每一个岗位和工作,都同样需要掌握庞杂的知识和技能,有的是制作上的技术细节,有的是艺术上的原理法则。在此指出,后文不再赘述。

    工作提交:故事设计完成后会得到一个剧本,其中包含了许多故事发展线,人物介绍,战役介绍;概念设计完成后,会得到一些概念线稿,如下:

     

     

     


    3.3 Stroyboard Design & Evironment Design

    当我们的世界有了故事以后,我们并不是要把剧本寄给玩家,让他们知道这个世界中的每一件事。我们要有选择性地,把一些故事,展现给玩家。如果是硬Gameplay类型的游戏,设计师们会选择用非常隐弊的方式,把故事藏在游戏中。比如说《Dota2》、《守望先锋》,如果我们只玩游戏而不看周边,那么我们只能从游戏中 角色的对话听出一些往事。那些被精心设计的对话,让玩家知道 他们生活在一个真实可信的世界中;而像《英雄联盟》、《梦三国》那样泛泛之谈的人物语音,便让人有一种虚假的戏剧感。如果你的游戏是Story Telling类型的游戏,那么向玩家交代故事剧情就是游戏设计中的重要工作。预先制作一个Storyboard(故事板,本质是“游戏流程”)是值得推荐的做法。在电影和动画中,Stroyboard的设计是一个核心工作,它几乎决定了整个影片80%的内容,观众将严格按照故事板的顺序,把每一个画面看完。在游戏设计领域,故事板是众多元素中的一个。它在Stroy Telling类型的游戏中,对于剧情的发展做一个预览作用。Storyboard会交代:玩家在不同进度时,必然会经过的场景和必然会经历的事件。由于玩家的视角,受控于玩家自己,所以我们不再逐一考虑取景构图、镜头运动和蒙太奇,只需要记录场景、行动路线与必然事件(过场动画另当别论)。

    当我们考虑场景时,需要艺术家把相应的场景画出来。这就是做Enviroment Design工作的第一个目的。在创作场景时,艺术家会听编剧们描述场景(包括地形、道路、建筑布置等),同时也会参考概念设计师确定的视觉风格,然后快速绘画。 其绘画过程可以参考,如下:
    来自艺术家Cam Sykes的 戈壁城场景绘画过程
    当场景图得到确定之后,艺术家会对它进行下一步刻画,使其中的物件明确,以指导将来Level Design的工作。一个细致的游戏场景是如何绘制的,请参考(让你们感受一下最强P图能力-二次绘画):
    来自艺术家Titus Lunter的 游戏场景设计过程

    工作提交:艺术家们会提交游戏场景原画,如下:

    游戏设计师会提交故事板,其中包含了行动路线和事件。用我过去的工作来做例子吧,要献丑了,这张图是我给执行策划交代任务时随手做的:

    我当时为这张新手村地图(场景/关卡)设计Stroyboard。包括单个任务设计、任务流程、剧情安排、行动路线设计、NPC/怪物分布设计。需要考虑的东西也很多,比如:玩家进入场景后看到的第一屏是怎样的,第一个任务如何预热玩家/调动兴趣,怎么安排基础操作教学,第几分钟大概到什么地点什么任务,什么时间安排具有挑战性的事件,用什么物品来为大的奖励做铺垫,如何行动即不重复又能游览全部场景等等。

    3.4 Character Design

    在经过概念设计的工作之后,我们会拿到一些概念设计线稿,其中包含许多角色。Character Design这项工作就是在那些角色线稿的基础上继续设计,完成服装配色、材质表现等其他工作。其工作过程请参考:
    来自艺术家Alex Gp的 角色绘画过程
    有时,一些重要的角色,为了在后面的建模时得到更好的比例和结构表现,艺术家们会为他们绘制三视图,如下:
    来自网站http://CGCookie.com的 角色三视图绘制过程

    这些工作一般会交给美术组中的junior artist去完成,因为相对于概念设计,这一步要求更多的体力劳动,较少的设计能力。而那些才华横溢的senior artist,他们会去画一些美术宣传画,像这样的:
    来自艺术家WLOP的 Saber Lily绘画过程

    工作提交:这一步工作,最重要的是得到 人物/道具 设定图,包括各个角度(三视图),如下:

     

     



    美术组再有富余力量的话,会绘制角色宣传图:

    这样的图,对于游戏开发的工作,没有实质的作用,但是It's cool.

    3.5 Modelling

     

    当我们的Character Design工作完成以后,会得到准确的角色、道具设定,但是那些资源都无法在我们的游戏里使用(我们不讨论2D游戏)。真正的游戏资源制作,是从建模开始。首先,为重要物体建模,需要用到前面制作的三视图,来锚定外形和结构,设计师是这么用的:
    来自模型师Soepanto Kurniawan的 汽车 Shelby GT500 建模过程
    来自模型师Antic的 Q版房子建模过程
    有时,有些不重要的物体是没有三视图的,这就要求模型师能够仅根据一张图就制作出模型:
    来自团队DrunkenLizardGames的 枪械M4A1建模过程

    我也做过这样的建模练习,当时拿到这样一张图:

     

    只有这样一张图,别无参考,结构不明确或不合理的地方需要自己进行二次设计,所以,这要求模型师也需要具备结构设计的能力。当时懒懒散散地做 用了三个工作日完成了这个模型:

     

     

    刚刚在三个演示中,使用的软件分别是Zbrush、3Ds Max、Blender。在此我想指出一个新手误区:不要纠结于软件的选择,我们什么都会用。值得一提的是,如果做生物角色的话,一般我们会喜欢从Zbrush开始:
    来自艺术家Maksym Haydar的 女性角色雕刻过程
    来自艺术家Wandah K的 龙-雕刻过程

    工作提交:(上面的“龙-雕刻过程”,Wandah K已经为其简单的绘制了贴图,这是下一步的工作。)一般来说,我们的Modelling工作结束后,会得到干净的素模,如下:

     

     

    3.6 Texture & Material

     

    模型,是一个游戏物体的血肉躯体。贴图,是一个游戏物体的表皮肌肤。得到模型后,我们紧接着就为其绘制表面的纹理/材质贴图。过程请参考:
    来自艺术家Sedat Aciklar的 角色兰戈 雕刻绘画过程(包括了雕刻和贴图绘制)
    来自艺术家Josh Robinson的 忍者神龟贴图绘制过程
    下面展示另一种我们常用的贴图制作方法-映射:
    来自艺术家UArtsy的 面部贴图映射制作过程
    下面展示器械的材质制作过程:
    来自Quixel官方的 枪械贴图制作过程
    来自艺术家Aldi的 Jeep汽车 贴图绘制过程

    工作提交:在经过贴图&材质制作的工作后,我们会得到如下的模型资源:

    前几天我也做了的小练习,可以在左臂上看到我女朋友的名字。

     

    除了为特定的模型制作材质贴图外,我们还需要制作许多通用的材质,包括但不限于:自然(土地、草地、泥沼、石头、树皮…)建筑(路面、墙面、木纹、钢材、玻璃…)等等,可以参考如下:Substance材质库。这些通用材质将在游戏场景搭建时发挥重要作用。

    3.7 Skeleton & Rig

    经过Modelling,我们能够得到“静态”的游戏模型。有些像斧头、铁桶这样的小东西贴上材质贴图就能够直接放到游戏里用了。但是人物、怪兽这样会动的物体,我们还需要为其制作动作动画。Skeleton(骨骼)、Rig(绑定),是制作动作动画的前置工作,仅和模型有关,和材质贴图没关系,所以可以一边做材质一边做骨骼绑定。我们知道现实中生物体的运动,基本上就是骨骼的运动。在CG领域,我们借鉴了大自然的设计。我们也有骨骼,用来驱使模型运动。我们要为人物模型创建人体骨骼、为恐龙创建恐龙骨骼,然后把骨骼绑定到模型上。

    动作师在为角色设计动作的时候,是直接在骨骼的层面上设计动作。

    一个绑定师对于他所操作对象,如果是脊椎动物的话,那么他会熟悉这种动物的真实骨骼。并且他会知道的肌肉与骨骼的附着关系、运动中肌肉的伸缩扭转状态等。前段时间美国梦工厂的艺术总监魏照平老先生路过我们这儿,我问到他,现在动画界最缺的人才是哪些。他的回答中就掷地有声地指出了“骨骼绑定”(当然世界范围内最缺的还是优秀的故事)。

    由于绑定骨骼这个过程并不具备什么观赏性,就不用视频展示了。

    3.8 Animate

     

    我们拿到一个绑定好骨骼的模型,会为它设计动作片段(注意,是为骨骼设计动作片段)。这时可能材质贴图也已经制作好了,这样的话可以边做动作边观察最终效果。过程可以参考如下:
    来自IKinema Action的骨骼动画制作过程
    除了上面展示的技术,在一些常规写实类游戏中,我们还喜欢用运动捕捉系统来设计动作:
    来自Tomas liu的 光学运动捕捉系统
    上面这个是一个国内团队在12年做的展示,虽然看起来比较low,但是展示很直观。我目测他们这套设备价格在四五万元左右。(商业光学运动捕捉系统 最便宜也差不多是这个价,因为需要多台红外摄像机)下面来看看另一种小团队比较能承受的廉价系统:
    来自Snappers的 惯性运动捕捉系统
    在视频中大家能看出来,这个动作动画比上面那个要自然多了。但是理论上,光学运动捕捉系统的精确度要比惯性运动捕捉系统高一些,这也是为什么在影视领域大家都用光学运动捕捉系统。不过一个模型动作的自然度也需要考虑到骨骼、绑定等因素,比如Tomas Liu他们的模型,很明显只是简单绑定了一下骨骼,手部都没有绑定(也许是控制点没有绑定);但是Snappers的模型由于有标准的骨骼绑定,即使用的惯性运动捕捉系统,看起来依旧很自然。所以在3.7节中,我们说到绑定非常重要,大家可以直观感受到。这套惯性运动捕捉设备只需要一万元左右就能拿下,并且使用也很方便。
    刚刚展示了两个肢体运动捕捉的案例,下面来看一下 面部表情捕捉。这是很早很早以前的光学运动捕捉系统,可以看出对于表情的还原非常精确,惯性运动捕捉系统是做不到这一点的。还需要展示的是,动作动画的重定向。前面说过了,动作师在是骨骼的层面上工作,而不是模型。因此,我们做出的动作动画,可以使用在不同的模型上(只要它们使用了相同的骨骼):面部表情捕捉-重定向。这能够大大减少我们的工作量。

    工作提交:作动师完成工作以后会得到大量的动作动画片段,包括但不限于:走、跑、蹲、跳、攻击、防御、受伤、死亡……动作动画片段展示-剑盾战士。配上材质贴图,大概是这个样子:动作动画片段展示_士兵;再看一个《刺客信条》的动作吧:刺客信条动作动画展示

    3.9 GUI Design & Other Art Work

    实际上我将略过这一环节。因为我认为游戏中最好的UI,就是没有UI。但这将是游戏发展的一个趋势,我看到许多大厂小厂都在加入这条道路,去UI化:只在最必要的地方,用干扰力最小的方式,给予玩家最需要提示。把屏幕空间,还给游戏世界,我们不需要那么多文字与图标。讲到这里,Alpha阶段的美术工作已经走过一遍。我们可以把必要的GUI,和前面做的所有3D美术资源(模型、材质、动作)提交给游戏设计师。在这个过程中,Technical Artist将发挥一个重要的作用:他将编写Shader脚本,来决定这些美术资源最终将如何显示。Shader也是一种美术资源——一种顶层的美术资源。Shader(着色器)告诉电脑如何用特有的一种方法去绘制物体。

     

    比如在上面这幅对比图中,整个场景使用了完全相同的模型、材质贴图,并且处于同一个时间状态,但是因为使用了不同的Shader,最后得到的效果也完全不同。通过Shader,我们可以让一个非常写实的物体,变成卡通风格、水墨风格、像素风格,可以让它变成半透明,或是只有一个剪影。可以大致参考:
    来自Gareth Stockwell的 Shader效果对比

    Shader的制作,属于编程工作,并且需要具有计算机图形学知识背景(学习计算机图形学,需要具备 线性代数 知识)。那个以为做美术工作就是画画的少年,你有什么想法吗?

    如果没有,那我们就进入声音制作的环节咯。(你怎么沉默低头不说话了……)

    3.10 Audio & Music

     

    制作游戏不仅需要画面,还需要声音。声音包括:音效、音乐、配音。

    3.10.1、音效制作。包括开枪的声音、汽车的声音、脚踩在木板阁楼上的声音、释放技能的声音、点击游戏菜单的声音。最基本的制作方法是实录,比如《武装突袭》为了制作真实的枪声,去军营里实录了所有武器的声音。还有一种方法是拟音,这是更为经济实用的方案,用这两个视频来了解一下拟音艺术吧:拟音师忽悠女盆友奇妙的工作:拟音师。我们做游戏的其实很少有成立专门的拟音组,去制作专门的音效,这在AAA级的Stroy Telling游戏制作组中可能会有。我们更喜欢的是使用商业音效库,里面包含了许多现成的音效,像这样:

    另外,我们还会用声音合成器去制作一些现实中并不存在的声音,比如说传送门的开启声。

    3.10.2、音乐制作。专业术语是:编曲。编曲过程可以参考下面的视频,考虑到没接触过编曲的人可能看不懂,稍作解释:视频中音乐家Carol Kay一个人用MID键盘,先后编写了:大镲、大鼓、日本太鼓、小鼓、小号、长号、大号、吊镲、小提琴、大提琴、贝低提琴、贝斯、竖琴、铜钹、格洛克、吟唱、长笛、定音鼓、钢琴、法国号等乐器的音轨:游戏配乐编曲过程。现在的游戏音乐,甚至其他流行乐、交响乐什么的都是这么编写出来的。一般是先在软件里编好,然后为了追求音质后期再找交响乐团实录。想要编写优秀的音乐,乐理是基础知识,然后需要去熟悉了解不同的乐器不同的音色。编曲和乐器演奏是两回事,但是具备多种乐器演奏能力是最好的。 补一句,在传统的音乐编曲上,制作游戏音乐往往还需要考虑超长时间的loop循环,让人听一天也不会腻的单曲循环。还有需要程序控制的动态地音乐节奏切换、和弦进行切换、混响效果器切换,以适应游戏中的事件状态。所以游戏配乐会有一些不同。

    3.10.3、配音。为NPC配音,为过场动画配音,为游戏角色的语音包配音。这个工作很好理解,现在不仅在Stroy Telling游戏中很重要,在Gameplay游戏中也越来越重要,想一想《守望先锋》、《Dota2》,打着打着莱因哈特会来一句:“护盾快撑不住啦!”;小美会说:“嗨呀~好气呀~”。但是做这份工作的人群,在国内的生存状态并不理想。我认为需要给予他们更多的关注,看这两个视频了解一吧:“替”声世界之生存现状走进“替”声世界:夏磊_演讲

    声音资源制作美术资源制作就到这里,这些资源统统都会交回到游戏设计师的手里。他们在游戏引擎中把这些资源整合到一起,来完成真正的游戏制作工作。

    3.11 Level Design

     

    在Game Design方面,我们刚刚讲到了Stroyboard Design。经过这项工作,我们设计了玩家的游戏流程。在这之后,我们需要进行进一步的设计:在游戏流程中的具体细节。就像我展示出的我曾经的工作内容一样,我们会去考虑玩家在流程中的每一步的感受,会去设计我们想要给他带去的体验。这就是Storyboard之后的Gameplay Design的工作意义。与原型阶段的Gameplay Design有一些区别。这更像是做 Pre-Experience Design。

    经过二次Gameplay Design,经过美术和声音资源制作工作,我们已经得到了 制作一个世界所需的所有资源。在这个基础上,我们可以开始进行Level Design。Level Design我认为可以分成两层:1、关卡(qiǎ)设计;2、场景搭建。在我的语境中,关卡设计是一种游戏性设计,会去考虑玩家的行动路径、决策方案,会考虑战斗掩体的布置、地势高低的布置等元素。这项设计工作与它前置的Gameplay Design密不可分。

    场景搭建呢,是一份艺术工作,目的是在游戏引擎中还原场景原画师所设计的游戏场景。其过程可以参考如下:
    来自Level Designer-Maverick的 快速游戏场景搭建-森林铁路以及 快速游戏场景搭建-村庄
    来自Level Designer-Kaan Öztüzün的 快速游戏场景搭建-城市
    上面三个是Unreal4的场景搭建,下面放一个Unity的:
    来自Level Designer-Maverick的 快速游戏场景搭建-入海口

    这些都是自由的游戏场景搭建,实际工作中,房屋的位置、街道的转折、物体的摆放,都已经由关卡制作的过程预先制定了。在关卡制作中,设计师们用各种简陋的方体来代替物品,定制关卡中所有碰撞体积的位置(就跟原型阶段所做的事情一样):

     

    左图是艾兴瓦尔德的关卡设计示意图,右图是完成场景搭建后的效果。完成场景搭建后,我们的游戏基本就拥有了华丽的外表。还记得原型阶段给大家展示的截图吗,来看一下它们对应Alpha阶段的截图对比:

     

    真是激动人心的时刻啊,我们的游戏完成了脱茧蜕变,完成了华丽丽的升级!但是我们要知道,这背后是许多艺术家、设计师挥汗如雨的辛勤工作。他们可能经历过灵感的匮乏,经历过方向的迷失,经历过未曾预知的错误,经历过拍桌叫板的争吵,经历过委屈与绝望,经历过一年又一年纷飞的雪。看着这些伟大的游戏的画面,鬼知道在这背后我们经历了什么。

    3.12 Experience Design

     

     

    游戏还没有结束。我们要做最后一次设计工作。我称之为体验设计。体验设计,需要去考虑玩家从点开游戏的桌面图标开始,进入游戏看到的第一个画面,第一个菜单,听到的第一个声音,一直到玩家正式进入游戏场景,开始的第一个事件,收到的一个奖励,一直到玩家第一次保存并关闭游戏,下一次再进入游戏,遇到的最大的挑战,最紧张的时刻,最刻骨铭心的体验,一直到玩家人生中最后一次关闭游戏,把它永久地留在硬盘的某个角落,在这之中会经历的一切。这项工作会整合所有的游戏资源(美术上的、声音上的、故事背景上的),去整体设计玩家的游戏体验。就像旅行体验设计师会做的那样。

    在许多游戏的制作成员名单中,可能并不会看到Experience Designer这个词。因为体验设计,是一个团队的工作,整个团队的工作。每一个环节都会为最终的体验负责。当然,我建议由熟知产品设计的游戏设计师来领导完成此事。

    到此,游戏已经完成了Alpha阶段,也意味着游戏完成了全部的开发工作。

    4、Beta阶段

     

    Beta阶段的主要工作,就是对游戏进行测试与迭代。Quality Assurance团队会进入制作组,对游戏进行全方位的验收。他们会去测试游戏中的每一个按键,每一个功能,找出任何出现异常的地方,然后报告给Directors,让他们去修复和完善。同时他们也会再一次检验游戏的玩法。但愿他们不会在这时提出否定的意见。否则制作人会崩溃的。暴雪曾因为QA测试无法通过,最后放弃了已经开发了7年之久的《泰坦》,Chris Metzen,曾主持过《魔兽争霸》、《星际争霸》、《暗黑破坏神》、《魔兽世界》开发工作的暴雪副总裁,崩溃了。在顶着巨大的心理压力,收拾残局,制作完《守望先锋》后,他选择了离开暴雪,离开游戏界。这是为什么,我们需要有原型阶段,我们要在原型阶段检验游戏的玩法,对待复杂玩法的游戏,我们都小心翼翼。同时我也致敬暴雪,他们宁愿割掉自身的血肉,也不愿给玩家一个无聊的游戏。

    好了,我致敬的方式是放两个EA的游戏视频……pia!

    还记你在原型阶段下载下来玩的那个Ravenfield吗?想知道它在完成Alpha和Beta阶段之后是什么样子吗?请参照:《战地4》联机对战实录《战地4》官方联机演示

     

    结语

    到这里,整个游戏开发流程已经讲完了。谢谢你能够耐心地一直看到这里。最后我还需要补充一些。Again,这个流程是我根据古今中外的实际项目和自己的理解总结出来的理想模型。它可能并不匹配任何一个市面上游戏的开发流程,也可能不匹配小团队独立游戏的开发流程。但我尽可能的把各类游戏开发中需要的工作都整合了进来,让大家看到一个全面的工作介绍。有些工作,在你们的游戏中可能不需要出现,比如《球球大作战》就不需要High Level Design,或者你们开发2D游戏就不需要Modelling及之后的工作。甚至有的开发团队不采用这样的瀑布流开发模式,而是采用敏捷开发模式(会一边制作一边设计,根据玩家的反响实时调整设计方向),这都没有问题。只是我个人倾向于采用完整的这套开发流程 来制作游戏。

    希望在阅读完本篇文章后,你已经对游戏开发的流程有了一个大致的了解。至少在设计和美术上,你已经心里有数。在分享美术部分的时候,因为这是看得见的部分,所以我高兴能够用视频和图片的形式来辅助讲解。虽然收集和筛选这些素材花费了我巨大的时间,但是能起到一定的帮助 那我便觉得值得。设计部分能够展示的相对较少一点,程序部分就更少了,几乎没有。这也是因为程序部分即便是用视频图片还是用文字,都无法充分地展现其精髓。如果直接拿程序代码出来,绝大部分人又根本无法看懂。但是不用过于担心对于程序知识的欠缺,因为在本专栏正式引导新人自学游戏开发的第一部分,我们就会从编程开始。然后逐个地,把每一个工作内容,文中和视频中展示的每一项技术,每一个知识模块都学一遍。只要你学有余力,就可以跟着我把游戏开发的所需的所有技能都学一遍,成为一个全能游戏设计师。在了解所有流程的基础上,如果你仍旧只是对某一部分感兴趣,那么你大可规划好你自己的职业定位,就像开篇所述的那样,然后针对性地学习,并深入钻研。

     

    扩展阅读:

    欧美 3A 游戏公司的游戏设计与制作——jiayang yang

     

    北美游戏业入行门道和从业体验——Avatar Ye

    想要自己做一款游戏,需要学习哪些知识?——窦月汐

    展开全文
  • 扫雷游戏设计原理

    千次阅读 2011-07-20 11:26:34
    扫雷游戏设计原理:扫雷游戏分为几个步骤,由于比较多,所以在这里先列出来:第一步,使用二维数组表示地图;第二步,随机生成几个地雷;第三步,点击方格的反应,计算每个非雷区方格点开后的数字;第四步,当方格...

    扫雷游戏设计原理:


    扫雷游戏分为几个步骤,由于比较多,所以在这里先列出来:

    第一步,使用二维数组表示地图;

    第二步,随机生成几个地雷;

    第三步,点击方格的反应,计算每个非雷区方格点开后的数字;

    第四步,当方格数字为0的情况;

    第五步,当方格为地雷的情况。


    第一步,这个不用说了,

    第二步这个可以参考我的另一篇文章《猜数字游戏设计原理》,文章很短,很快就能看完。

    第一步地图的大小和第二步地雷的数量都应该是程序中给定的,或者玩家输入的。这个是多少自己决定吧。


    第三步,计算非雷区方格点开后的数字就把这个方格在二维数组中周围八个方向的方格是否是地雷都检查一遍,一定要注意不要越出数组边界。

    这个数字可以在游戏初始化时全都计算好,也可以在玩家点击的时候再计算。

    点击非雷区方格,显示数字,这个方格标记为“已点过”。

    如果想插旗子,也是给这个方格一个标记。这两个标记都是布尔型的。


    第四步,当方格数字为0时,我想这个应该是这个游戏最难的地方,这里要用到递归调用,就是让程序自动“点击”这个数字为0方格周围的八个方格,然后再看结果,如果不是0,就停止,如果是0,依然递归调用,直到没有0为止,或者直到点遍所有方格为止,再次提醒一下,一定要注意不要越出数组边界。


    第五步,很简单,宣布玩家死亡就可以了。


    展开全文
  • 游戏设计的100个原理》摘要

    千次阅读 2017-10-07 09:26:30
    游戏设计的100个原理》


    点击打开链接


    原理2——A最大,鬼万能

    万能牌可以代替游戏中的任何其他牌。万能牌就是一个玩家可根据需要随意赋值的空变量。改变某张牌的价值从而组成一个更强力的牌组则为游戏增添了更多复杂性。

    应用:WOW中 德鲁伊、萨满


    原理3——巴特尔的玩家分类理论

    成就型玩家(作用于世界):主要关注的是如何在游戏中取胜或达成某些特定的目标。

    探险型玩家(交互于世界):尝试在虚拟世界的系统中寻找一切他们所能找到的东西。

    社交型玩家(交互与玩家):享受在游戏过程中与其他玩家的互动。

    杀手型玩家(作用于玩家):喜欢把他们自己的意愿强加给他人。


    原理7——加德纳的多元智能理论

    人有8种不同的智能,或者说认知方式:

    1.数理逻辑认知:通过批判性思维和逻辑来认知的过程,有时也被含糊地称为左脑学习。(《星战前夜》、《龙与地下城》)

    2.空间认知:通过想象将物体在空间中的情形视觉化来认知的过程。(魔方、《音乐方块》)

    3.语言认知:以听觉或书面的方式,通过文字来认知的过程。(《龙与地下城》、大多数基于文本的RPG)

    4.身体-运动认知:通过身体或者周围的物理世界的移动来认知的过程。(动作控制类游戏)

    5.音乐认知:通过各种和音乐有关的东西,包括音调、旋律、节奏和音色来认知的过程。(抢椅子、《塞尔达传说·时之笛》)

    6.人际交往认知:在与其他人的互动中来认知的过程。

    7.内省认知:自我反省和认知的过程。(RPG)

    8.自然探索认知:从周围相关的自然环境中认知的过程。(寻宝类游戏)

    如果设计师在设计游戏时考虑到这些不同的智能,他们可以让游戏适应无限多的玩家。大多数游戏会利用这8种智能中的两到三个。


    原理10——科斯特的游戏理论

    所有的游戏其实是低风险的学习工具,要让每一个游戏在某种程度上都是寓教于乐的。一旦这个游戏不再教给我们任何东西了,我们通常会逐渐感到无聊并且放弃玩它。

    “组块化”的概念:是一个将复杂的任务分解成我们能够下意识地完成事情的过程。

    我们成功完成一个挑战——也就是在一个游戏中学会如何达成游戏目标——就是“快乐”的来源。


    原理22——石头剪刀布

    这种循环的制约关系已被应用于其他游戏中,以防止占优策略的演进,保证游戏过程中各种类型的元素保持同等的价值。


    原理23——7中通用情感

    7种在所有文化中都通用的面部表情分别是惊讶、轻蔑、愤怒、喜悦、恐惧、悲伤和厌恶。


    原理24——斯金纳箱

    最能引导玩家与游戏产生更多交互的方式就是以随机的周期给用户奖励。

    梯度效应:当人们越接近自己的目标的时候,他们就越有动力去完成它。如果玩家知道他将马上能得到这个奖励,他们会更有动力去完成能让他们得到这个奖励的任务。


    原理33——核心游戏循环

    核心游戏循环是视频游戏的设计人员必须清楚、仔细定义的,而且他们必须提炼出提供游戏体验基础的核心、重复的机制。核心游戏循环应该包含具有以下特点的动作:

    • 易于理解

    • 易于操作

    • 令人享受

    • 能够提供直接的反馈

    • 具有能适应不同场景的灵活性

    • 具有扩展性,能够加入额外的动作

    • 能够与其他动作结合

    • 能够进化以支持其他的游戏循环

    原理58——主题

    主题是你的设计所要传达的中心思想。它是为你的设计增添主旨的部分,让人们能看到游戏在提供娱乐和让他们学到技能之外的价值的一部分。


    展开全文
  • 游戏设计的艺术

    2020-07-16 23:33:21
    我是一名游戏设计师。 不,你不是。 我是一名游戏设计师。 你是什么样的设计师? 我是一名游戏设计师。 你只不过是玩游戏而已。 我是一名游戏设计师。 -------------------------------------------------- 我整个...
  • 游戏设计要求: 创建一个地图和若干巡逻兵(使用动画); 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算; 巡逻兵碰撞到障碍物,则会自动选下...
  • 游戏设计艺术:探秘之书 我将和你谈及艺术, 因为没什么别的可以谈的, 是的,没别的。 生命只是一个无名的流浪者, 乞求着能够乘上艺术的大巴。 ——Maxwell H.Brock Hello哦吼吼,快进来,快进来...
  • 游戏设计艺术 2.rar

    2020-07-30 23:33:23
    非常棒的游戏设计指南,高清版本,是游戏设计人员的非常不错的参考。
  • c#游戏设计

    2020-07-30 23:32:15
    《捕鱼达人》这款游戏做的的确不错,相信许多人都已经玩过了。但是作为一个业余“码男”的我,玩玩怎么能尽兴,梦想自己也能写出这么一个还算是不错的游戏。终于在一个月黑风高的夜晚,我摩拳擦掌,跃跃欲试,YY良久...
  • 寻宝游戏设计攻略

    万次阅读 2017-09-03 22:26:11
    每次带小朋友出去玩,寻宝游戏都是重头戏,我会根据地形,花很长时间去设计游戏。可以说,台上一分钟,台下十年功。准备很多天,寻宝一个小时就搞定了。 从来不吝啬跟妈妈们分享,如何设计寻宝游戏,在游戏中学习...
  • 多人联机射击游戏中的设计模式应用(一)

    万次阅读 多人点赞 2012-12-31 17:34:06
    为了方便大家更加系统地学习和掌握各种常用的设计模式,下面通过一个综合实例——“多人联机射击游戏”来学习如何在实际开发中综合使用设计模式。 反恐精英(Counter-Strike, CS)、三角洲部队、战地等多人联机射击...
  • 移动端游戏架构设计

    万人学习 2018-10-22 21:38:03
    目前很多开发者对于游戏架构设计一无所知,只是简单的把脚本与对象进行挂接,导致在后期开发中,版本维护,功能扩展非常不方便,现在网上出现了各种版本的热更新实现,比如Lua,JS,C#Light等, 该框架设计技术...
  • 方便大家相互学习交流,本文转自程序员杂志  ... ***************************************************************************************************************************
  • 对于开发者来说,申请软件著作权是保护自身利益的重要法律手段,开发人员申请软件著作权就要写软件设计说明和使用说明,怎样写呢? 这里给出目录,说明了大概需要写的内容。如下: xxx游戏 用户使用和软件设计说明 ...
  • 游戏开发团队及工作流程

    千次阅读 2015-09-16 23:55:02
    同时负责指导策划组以下的成员进行游戏设计工作。 游戏系统策划:又称为游戏规则设计师。一般主要负责游戏的一些系统规则的编写,系统策划和程序设计者的工作比较紧密。例如组队、战斗、帮派、排行榜、好友等系
  • 游戏开发之三维手办制作技巧

    万人学习 2019-07-01 10:42:20
    简单的三维手办制作教程可以让大家初步接触到三维设计的技巧,使大家对游戏设计制作有了更加深入的了解。只有将整个设计过程全方位的讲解,大家才可以对三维游戏设计有个直观的认识,所以我们次课程将分为12个课程来...
  • 游戏开发入门(二)游戏中的设计模式

    万次阅读 多人点赞 2018-06-01 16:25:00
    视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深刻的...
  • 游戏交互设计入门

    千次阅读 2016-06-10 15:13:58
    - http://gamerboom.com/archives/60362分析高收益手机游戏的美术设计特点 - http://gamerboom.com/archives/73534保留功能性应是游戏UI设计首要考虑因素 - http://gamerb
  • 移动端游戏UI设计-二部曲

    万人学习 2018-10-22 21:38:03
    主要实现了移动端游戏的UI架构设计,分两部分,第一部分采用的是有限状态机,第二部分采用传统的模式架构设计
  • 游戏数据库设计 参考博客

    千次阅读 2016-04-19 18:03:59
    http://www.doc88.com/p-9199096139057.html
1 2 3 4 5 ... 20
收藏数 351,724
精华内容 140,689
关键字:

游戏设计