滚动图片

打造伟大的工具:VV是如何从这三个领域提升工作流的?

【专稿,未经授权不得转载】

报道/随着元宇宙概念的火热,UGC在游戏行业越来越受欢迎。对于用户来说,UGC可以让他们发挥创意、表达想法;对于开发者来说,UGC工具解决了内容生产与消耗之间的矛盾。

然而,好用的工具并不好开发。与创意工作者相比,工程师更习惯于表达技术,因此经常做出让创作者觉得难用的工具。

此前的GDC演讲中,动视旗下Vicarious Visions工具负责人Jeff Stewart讲述了这家工作室数十年来积累的工具开发经验,并表示,以用户角度做工具链比开发优秀的工具更重要。

以下是听译的完整内容:

Jeff Stewart:

假设我希望工作室内的工程师们能够打造工具,他们可能是新手、可能是刚招聘的毕业生,或者是在不同领域的资深工程师,只不过没有在工具打造方面的经验,如果我希望他们能够打造适合很多工作室的工具,或者与我们工作室已经存在的很多系统兼容的工具,有没有人告诉我该怎么实现?

经过多年的试错,我得到的一个经验是,不要为引擎打造工具,很多人都打造工具都是基于引擎考虑,但引擎不是我们的客户,如果引擎出现问题,就会变得很无助,让我们很难做更好的工具。

当然,说不要做什么,是很简单的事,但是,你要做的是什么呢?我们要为人类打造工具,因为我们的客户都是人在使用,而人类思考问题的方式与引擎是不同的,而且人类还会犯错。

所以这也不好,有些工程师可能只为他们自己打造工具,只是思考他们认为游戏内容应该被如何打造。

那么,为其他人打造工具呢?这也是不错的想法,因为你作为技术人员可能要为非技术人员打造工具。但这听起来就像是UX部门的人在指挥你按照用户的方式做体验,虽然好一些,但依旧不那么令人满意,因为游戏研发就有这么个奇怪的问题:我们有太多的工程师,你可能是为人类打造的工具,但将会有大量的工具,结果既不好用、也不好做。

所以,我在想,我们真的是在打造对的东西吗?我不想让你们做工具,而是做工作流,把所有工具、所有方面都考虑进来,我希望所有人都有一个共同的体验。为其他人打造工作流,我觉得这个想法是大部分工程师都会在心理上认同的。

但即便是这样,也太过简单,想要做到实用是非常困难的,这也是我们Vicarious Visions(以下简称VV)的目标,因为我们希望的是多部门协同,让这个领域的工程师们快速成功。因此今天的分享主要是希望从我们的过去以及成功汲取经验,转化为可以指引未来工程师们的知识。

因为我们的确有过一定的成功,创立VV之后不久我和其他工具工程师打造了Alchemy Laboratory,这是VV公司工具套装的预备工具,这个工具是围绕工作流打造的,融合了多个方面的规律,用户可以混合、匹配不同部分的工具以适合他们自己的工作流程。

比如这是世界打造工作流的默认世界打造工具,我们曾经用它给《小龙斯派罗》和《古惑狼》系列制作关卡。

这是Visual Script Builder,是我们用来打造视觉脚本的。

这个工具套装里还有其他工具,比如UI、特效、同步、本地化等。

Laboratory是我们在工作流发展方面很大的投入,我们用它得到了非常好的结果,我有幸与很多天才工程师一起合作,他们对于为用户打造工具有很大的热情,而且产生了非常好的结果。

我们还打造了Lab Online,工作流和效率被视为我们工作室最大的强项,我们的用户在与业内其工具对比的时候给出了非常高的评价。

我们并没有将它的成功归功于某个原则,因为Laboratory是经过多年工具和工程师积累的结果,其中很多是来自不断的试错以及对新事物的投入、与用户及合作伙伴的沟通,还有些是通过挫折、错误的开始以及低效率学到的。

因此,我们希望总结过去这么多年的心得,并给未来指引方向,以蓝图的方式公布我们希望投入的是什么,能够与资深和新手工程师分享这些经验。我们制作了工作流研发指南(workflow development guidelines),虽然最初这是为参与工作流程的工程师而设计,但我认为可以适用于任何人,包括策划、UX、工具研发者、UI设计等多个领域。

这些工具的技术和指南由三个类别组成,分别是UI与UX设计、工程以及我称之为创意思想的东西,我们希望工程师们可以把它们当做参照,能用于决策以及团队讨论。

提前声明,我分享的这些东西只是因为我觉得可能对同行们有用,但它们不是唯一的方式,也不是唯一方法;这些是我们希望的,而不一定是我们已经做到的;这些也不是科学规律,而是根据过去大量的经验和教训总结的洞见,它没有量化用户调研作为支撑,但这是根据我们数据而给出的强烈推荐。

这是一个在线式文档,其中有些指南最近还刚刚改动过,所以这些东西会随时间而变化,因为我们的业务、工程师以及学习心得也会变化。

1、UI&UX设计

可能很多人不知道的是,UI与UX设计实际上大部分研究都是在游戏研发行业之外的,过去十多年这方面的趋势有很多,但我建议还是聚焦于游戏研发,因为其中很多东西是指导人们在线购物的,我们希望得到一些可以实现的东西。

这些指南是一些“高光时刻”式的方法,强调的是我们实际上遇到过的问题。

1)通过键盘支持提升工作流

这部分工作流程的第一部分就是通过键盘支持提升工作流,因为熟练的工作者对于将键盘加速工作流程有很高的期待,你和工程师可以做以下几件事:

支持精准输入。因为用户可能非常精准地知道防御塔会发射多少弹药,以及射击持续多久,不要用比键盘输入更慢的方式,用户会感激你给他们工作带来的提速。有一个比较好的方法是增加多种方式,比如你还可以拖拽或者点击到某个位置。

用联想输入加速数据接入。用户可能知道某个工具的全名,也可能只知道其中一部分名字,所以你可以通过联想输入的方式加速用户效率,哪怕是文件搜索框的联想输入也可以提升效率。

用快捷键加速任务。快捷键可以节约用户时间,因为它们可以帮助不同的工作流程之间流畅对接。比如用户想要选择两个目标,对它们分组、然后把这组移动,你可以通过分组快捷键的方式加速这个过程,通常来说,这些快捷键应该避免吸引用户注意力。

意识到快捷键陷阱。你需要意识到,因为用户会出现拼写错误,所以不要把创建与删除并列,快捷键是一种稀有资源,除非你的工作流有非常不错的定制分配功能,否则要慎重分配新的快捷键,因为这些快捷键是永远存在的,一旦用户适应之后,再改变就会遇到很大的挑战。

让键盘支持可以被发现。微软的办公软件已经被很多人熟悉,你可以使用人们已经熟悉的快捷键设计你的工具快捷键,比如Ctrl+S意味着保存,F2意味着进入某种类型的编辑模式。

2)打造整体工作流

整体工作流给人的感觉是井然有序的,是围绕任务设计的,与用户其它任务协调。非整体工作流给人的感觉是分散的,甚至会被认为是未完成的。你可以做这些事:

提高曝光率和可寻性。曝光率指的是用户可以多大程度发现并使用这些功能,可寻性指的是他们可以找到期望的东西,为了提升,你可以把它们放在一起,比如按照任务归类。这张图没有做到,这是Laboratory的世界编辑器,很多东西都是不一样的,就像我之前所说,这些是我们想要的,并不是我们已经做出来的。

将同类功能放在一起意味着减少了特定距离,比如鼠标移动、眼球移动,还可以是点击次数、找到想要功能的菜单层级等等。随着时间的变化,用户会对你的工作流形成脑海印象,他们会知道快速找到自己想要的功能,他们还会记得哪些东西没有试过,以便随后使用。

避免“倒垃圾”。这些往往出现在设定对话上,在匆忙的UI设计时,我们经常容易将东西堆在一起,因为没有人知道将它们放在什么地方,倒垃圾式的设计意味着工作流糟糕的整体性,很可能用户需要大量的研究才能找到他们相用的工具,冗余臃肿的设计很容易被用户忽略。所以,注意你的UI界面布局,提供方便的曝光和可寻性

理解“先”与“后”。用户们工作的时候脑海中可能已经有了前一步和后一步的概念,在使用你的工作流时可能已经形成了上下文环境,而且很可能会在使用完之后继续保持。所以,要考虑这样的意向是从哪里来的、哪里是下一步,还是这些环境可以很容易切换?如果用户使用工具的时候需要投入大量时间切换思维,你可以做的是调整工作流,在不同上下文环境之间给出有意义的数据,避免让用户投入大量的输出工作量。

你可以问自己,用户试图完成的更大目标是什么?因为这很大可能会影响输入和输出,因此会影响你的工作流可能产生的结果,与用户交流是很有帮助的。

2、工程部分

1)尝试防御型设计

这里指的是我们发现比较有用的细节执行方式,你可以尝试防御型设计(defensive engineering)。

考虑被滥用的风险,因为用户总是可能出现不容易察觉的抗拒行为,VV发现开发者们很容易忍受一些东西,相信很多人都知道“默默忍受”意味着什么。Scott Meier是个著名的程序员,他对于用代码打造界面有很好的建议,他说“要把界面做到很容易正确使用、很难错误地使用”,我很喜欢这句话,而且认为可以应用到工作流程的设计。

因为,如果很容易以“错误的方式”做某件事,而且依然可以得到同样的结果,你应该知道用户会发现并使用它,并且会告诉他们的朋友。

他们可能会发现捷径绕过你的工具里的验证环节,长期以来我们都遇到一个问题,用户们往往在记事本上修改数据,因为工作流中的工具做起来更难,因此这是我们必须解决的问题。一旦有这样的问题出现,用户们就很大可能会寻找捷径,这种事屡见不鲜。

避免“暴露所有东西”,这一点更多的是聚焦,减少用户需要投入注意力的地方。现代工程学有很多是人们不了解的,我们发现,当用户感到困惑的时候,他们就会开始对UI乱按一通,想知道这些互动会有什么结果。出现这种情况的时候,意味着用户对于功能是困惑的,他们需要帮助,想要走出困境。

将你的UI做成子集很重要,用户只需要翻滚鼠标和点击即可完成操作,80%的用户可能都只需要这个子集,对于少数需要使用复杂技术的用户,他们可以使用UI的另一部分,或许可以是高级对话选择之类的东西。

避免依赖部落文化(Tribal Knowledge),因为用户知道做某些事的正确方式是个谬误,遇到这种情况往往会伤害他们的自信心,尤其是对于和其他同行一起工作的工程师来说,“部落文化”有时候包括一些你不应该做的事情,在你的代码库考虑避开“工程师陷阱”。比如这些陷阱是你的工作室都知道的,而且知道如何避免,但与合作伙伴工作的时候,他们大概率不知道这些陷阱,VV是两者之间的桥梁,发现和纠正这种错误并不好玩。

容忍意外。尽可能容忍一些可能让人们丢掉工作的“意外”,Laboratory对于出错有很高的承受力,它有自动保存和恢复功能,能快速从崩溃中恢复。不令人意外的是,自动保存和恢复功能最初的设计,是我们工作室为了预防突然停电而做的功能。

2)考虑内容模型

这可以理解为以用户的角度思考,你要了解用户使用工具的时候期待的是什么,Jack Nilsen是调研公司的分析师,这里我引用一句他写在文章里非常有用的话,“系统应该说用户听得懂的语言,使用用户熟悉的词汇、短语和概念,而不是系统术语。”

我觉得这也非常适用于工作流,它们要用内容创作者的语言说话,而不是系统语言,这里我认为可以加入“内容模式”的概念,指的是用户在他们的工作流程中表达想法和打造内容的概念与关系。

比如分层展示的关卡设计工作流,它的展示层级就是关卡、布局、分组、目标和内容模型,非常直观,所有用户都知道怎么用,而且它们与在关卡打造时的功能映射做的也非常好。

另一个案例是同步工具,我认为优秀的工具应该充分利用所有机会降低工程学的复杂性,它们应该填补人们思维模式中的空白。

这个UI展示的是视觉效果工具,你可以在上面将两条线向左右拉拽,但在下方,这个工具实际上使用spawn和kill关键帧做的模型,两者本来是没有关系的,所以需要工具让它变得有意义。

优秀的工作流让创作者与内容紧密连接在一起,让用户将更多的注意力放到他们打造的内容而不是runtime上。这里工作流当中至少有两个呈现,一个是runtime呈现,一个是用户的内容模型,这是两个相反的极端,如果你作为工程师能最小化两者之间的距离,就可以大幅降低其复杂性。

3、创意思维

我将这各类别称之为创意思维,通过这一部分,我希望呈现的是很难量化,但依然存在的东西,它对用户满意度是有影响的,也就是“Touchy Feely”ROI,我还想增强一些常识,因为它们很容易被忘掉或者忽视,但我还希望给同行们带来启发,让你的工程师们使用他们独特的经验打造创意过程。

1)提升用户信心。

如果用户对工具有信心,他们可以不用担心去尝试很酷的新东西,如果他们没有信心,可能就会直接避开工作流,而且可能会告诉同事一起这么做,并且不会告诉你。

我们发现,用户在以下情况是有信心的,比如工具做到了他们要求的事情,他们可以快速改变想法,不用担心给其他人带来影响,比如给下游同事造成比较糟糕的数据,如果你的工作流没有指出这些错误,他们可能被同事指责的时候都没有意识到出了问题。

你可以做一下事情提升用户信心:

确保重做、取消是有用的,这或许是提升用户信心最重要的一件事。

仔细思考的话,这两个功能比只是纠正错误重要多了,它可以让人们尝试东西并立即放弃糟糕的想法,或者可以通过复制的方式实现多个想法。它可以通过降低重复工作的方式节约时间,降低了犯错的代价,它甚至影响了Laboratory的架构,所有的插件都因此受益。

支持源控制。这听起来可能与用户信心无关,但通过这种方式,你可以帮用户解决很多的困惑,尤其是你的数据有比较复杂的依赖性的时候,如果他们忘掉其中某一个环节,就会导致下游的同事遇到问题。如果他们没有任何辅助手段,这种情况就很容易发生,这很容易让用户产生怀疑。

做缜密的数据验证。不要允许用户为下游同事输入糟糕的数据,比如输出数据的时候,你可以指导他们避开糟糕的参照,或者根本不存在的参照物。用户可能不知道什么是对的或者安全的,因此,你应该在工作流当中加入纠正的功能。如果某些事出错了,找到它,并告诉用户哪里错了、如何解决,这很重要。

考虑预览改动。你可以预览改动,如果做出的修改比较多,帮助用户看到会发生什么,不要增加额外的成本,给他们改变主意的机会。你可以在一个改变发生之前或者之后做,比如这里,你可以在真正开始做之前进行预览,以避免很多的错误。

另一个案例是我们的视觉脚本(Visual script builder),如果你把一个节点拉到下一个附近连接起来,工具就会向你展示这些连接点会发生什么,除非你改变主意或者重做。

Laboratory的Curve编辑器也有类似功能,鼠标放在一个按钮上,它就会向你展示这个按钮能够做什么。

发生错误时,展示安全路径。因为,没有什么比不知道如何解决错误更糟糕的事情。让错误给用户带来帮助,发生错误的时候,允许用户回到熟悉和自信的状态,以便他们的工作可以继续。

如果需要纠错,确保下一步清晰明确,比如他们是否需要重新加载、重启?还是再次尝试?他们是否需要调整数值?鼓励用户在纠错工具上与你互动,我说的不是崩溃之后发送一个bug报告,而是清楚明白的告诉他们,当出错的时候,他们是否理解意味着什么。

2)为潜在价值挖掘功能请求

这一条我觉得对于工程师和创意人员都很有用,你要把用户的每一个请求当作特殊情况,比如多个不同的工程师报告了同一个问题,你需要根据情况给他们不一样的解决方案。有时候用户可能是将上一个工具的错误方法带到了新工具之中,你需要帮助用户解决他们可能预料不到的问题,或者他们只是不知道如何请求,缺乏对应的精准表达方式。

如果有人告诉你,“我只喜欢做后期”或者“我只想做Excel表格”,很可能意味着有沟通代购,你很可能需要深挖背后的原因才能了解全部真相。了解真正的原因是重要的,因为它可以让你以更有意义的方式重新思考这个问题。

这时候,你要思考的是,为什么用户担心这个?或许这是我的理解与他们有差距?用不同的方式思考问题,或许这个问题可以做成更通用化的方案,让其他人也能受益。他们想要的用户体验是什么?是否有无意带来的后果?

如果用户告诉你,他想要改变这个领域的默认值,从1增加到1000,你照做了,但它是否会导致预算超标?你需要谨慎,因为的确有这种情况发生。

3)让用户与内容紧密连接

我们希望创意人才感觉并看到玩家会在这里看到和感觉到什么,让探索简单快速地成为一个创意空间,我们希望增加用户在这里看到和感觉的时间,减少他们的操作时间,这可以通过帮助创意人才注意细节的方式实现。

用上下文的形式向他们展示,以便他们可以从玩家视角思考,允许他们探索大量的想法,或者深度探索一些优秀想法,我认为工具可以帮助开发者创新。

一个比较好的案例就是UGC工具,它们的作用就是,让人们觉得自己在快速创作具有创意的优秀内容。

支持直接操作。这意味着可以直接对内容作出自然的改动,而不是用其他中介。比如这里,你可以直接拖动圆点做出修改,而不是像之前那样输入改动范围,发送指令,然后才能实现,这里减少了很多复杂的步骤,让事情变的更直观。

你可以让用户从不那么直接的数据选择,切换到直接可以拖动并应用的直观工具。

增强内容,而不是让它变的模糊。比如,不要对选定物体进行着色,而是划出它的轮廓,不要影响纹理,这样就不会模糊用户想要创作的内容。

尽量不要在你的工具上直接展示代码,因为无论从任何方式来说,它都很难读懂,长期以来我们都是这么做的,但后来到了必须重新思考的时候,因为它变的不可控。所以我们增加了可视化效果,并把它缩小到一个窗口,用其他的空间展示有意义的操作。

随后,我们觉得可以做的更好,我们的工具套件是用WPF写的,更加丰富,而且更容易与之互动,而且提供了更多的能力,所以我们让游戏本身可以存档。

增强内容还意味着让已经存在的信息视觉化,比如我们的一个工程师打造了这个非常酷的视觉化工具,每次跳跃,都会有表格的变动,还有信息可以展示重力加速,这可以让用户快速处理非常重要的跳跃,并让他们聚焦于自己的游戏。

推广“混合板思维(Mixing Board Thinking)”,这里我指的是同时可以调节多个数值和结果,这种方法可以让用户摆脱非常复杂的思维模型,不用过多考虑数据结果、数据之间的结构等等,而是可以安全的看到混合之后的结果。

这是另一种混合板形式,比如你想要调整角色面部表情的时候,可以选择右侧的不同数据,你只是在混合面板上的一些按钮就可以直接看到效果。

支持“复制、转变、组合”。这可能是最抽象的一个,但我认为是最精准的表达,Kirby Ferguson在他的视频中提到,所有东西都是混合的,任何创作过程中,“复制、转变、组合”都是基础的。

复制对于内容创作是非常基础的操作,它可以让你避开枯燥的重复工作,作为工程师,你能做的就是在黏贴的操作时支持复制,比如数值、特定物体以及用户可以与之互动的大多数东西。

转变就是创作多元化版本,这也是我们探索创意想法的载体。做创意的时候,有时候开发者知道自己想要做的是什么,但还有些时候,他们不知道要做的是什么,只是在不断地尝试,工具可以让探索带来启发。所以,你可以做的是支持随机化,支持用户在对比重复的情况下快速改变内容。

组合概念可以带来独特性以及创新。这里向用户展示哪些可以组合、哪些不能组合,你可以通过工具帮用户加速组合,比如我们的视觉化脚本可以通过拖动节点的方式让用户看到很多种组合,这些方式可能是他们平时想不到的。

工具可以用有意义和聪明的方式理解组合方式,它可以选择尽可能少的meta数据做出有意义的组合,我觉得modifier在这方面也是不错的案例,用户可以选择他们想要影响的最终视觉效果,插入多种数值,去掉不想要的改变,因为他们可以视觉化看到结果。

对于“复制、改变、组合”,我说的东西没有什么是全新的,但对于技术创意人员来说,我认为工具可以通过有意义的方式讲很多东西组合起来。

我希望从2+2=4,发展到树+2=更多树,工程师们可以带来很大的贡献,因为他们已经理解了很多的概念,我们擅长让不兼容的变得兼容,确定一些规则,为了让用户与内容更近,我们应该通过这样无缝的工具,尽量减少让他们分心的东西,做出真正非常酷的内容。

通过以上三种方式,我们在让工程师处于创意思维模式,让他们以用户的角度思考,了解用户习以为常但他们不熟悉的方式,以上就是今天分享的所有内容。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注