撰写了文章 更新于 2017-05-02 15:09:58
Steam Dev Days 2016 图文版——(1-8)
1. 欢迎
By Greg Coomer (Valve)
本节没截取ppt因为根本没有嘛
(观众掌声)
谢谢。欢迎来到Steam Dev Days(以下简称SDD)。非常高兴大家今天能来到这里,在未来的几天里分享信息、相互协作。Valve相信SDD跟科技产业中的其他会议有着显著的不同。在开始前的这几分钟里我想谈一谈这一点,因为我相信通过这个角度看待SDD,在场的每个人都能让SDD发挥最好的效果,与我们共同度过这段美好的时光。
尽管我们有许多东西要告诉你,当然这也是一开始就举行会议的原因之一——传达大量的信息,但是我们不认为这是一次单向的对话——就像信息的传输一样,从平台拥有者(我们)到平台用户(你们)。我们觉得那么操作的话挺X(蠢?)的。我们也不希望,并且SSD也不是一次公关活动。它也并不是全部都是关于在线直播,也没有非常多超高的产值,相反,这是一次相对私人的活动,我们只是相互进行交流。当然,也不是完全的私人,我们没有对外封闭,也没有要求你们签署保密协议。在这里我们所谈论到的信息会传到到外部——这是一件好事。不过这也是一次与众不同的活动——我们没有邀请媒体,所以现场也没有媒体人员。这就意味着在这里进行的对话有很大的不同:更像是合作、工作、一起把事情完成。我的意思是,我认为这里没有媒体人员。(观众笑)或者你们可以互相指出他们(媒体人员)来,或者让他们对他们的人生选择感到内疚。(观众笑、掌声)
SDD也不希望到处都是商业化开发包装,类似那些“互联网活动internet event”——你们期待最多的是交换名片,互相做些手势(finger guns图1)(观众笑),希望能发生点什么——我相信我们都经历过。实际上SDD是、并且我们设想的就是,切实的合作——在这段时间,通过你们和Valve之间、以及你们之间相互协作,来学习和做好工作。我认为这应该才是你们这次会议中所要期待的,这是门槛,也期待你们愿意将这种能量带到会议中来、共同协作,让每个人都能因为来到这里获取这样的价值。我也认为这是让SDD成为一段美好时光的秘诀,所以如果我们都参与进来,应该会很有趣。
图1.1 Finger Guns。这张是我自己找的图
这是Valve在20年前创立品牌以来,我们一直都在尝试营造的:将这种思维带入活动中、创造一个能类似社区拥有倍数化特性——投入,呃,产出远远大于投入,并且我们每个人都能受益。我们系统地寻找这些特性,我们也尝试在我们做的事情中培养这样的能量,比如过去的MOD场景、Steam商店政策、创意工房、甚至是开放的PC生态系统本身。我们认为这是存在于我们的DNA中的,也是我们希望所有事情都遵循的准则,所以这次的活动也不例外。(观众掌声)
SDD的核心就是这些简单的准则。所以今年(2016年),除了培养这样的交流合作以外,Valve也有一些我们希望在这个活动上完成的目标。第一个就是——我想讲的总共有三个——第一个,也是我认为最重要的一个就是我们希望所有Steam开发者最大化利用了Steam平台——这相较于成为一个PC、Mac、Linux游戏开发者来说更容易。众所周知,将游戏上架Steam可以在商业上带来很大的帮助,但事实上,跟所有复杂的系统一样,Steam也需要一些导航,而接下来几天我们讲的大部分也是关于这个的——确保每个人都能各取所需并从中受益。根据2014年的上一次SDD结果来看,确实奏效了。在这样的环境下,大家都带着合作的心态,确实为我们所有人产出了更多的价值——技术上的知识、发展业务的方向以及和你的社区形成牢固的联系。
第二个则是,我们想要深度讨论虚拟现实(VR),部分原因是它现在也是我们的关注点。(观众掌声)。Valve非常重视这块,也在上面投入了很多精力,所以我们也想在这块跟你们谈谈。更重要的是,这块领域跟SDD上所有的主题有关,也是现在最具有创新力的领域,这就让它成为了最让人兴奋,同时是最多疑问、让人想问“到底TM发生了什么”的话题。所以关于这个话题我们会讲到很多,尤其是我们想关注目前市场上能提供的最好的VR,也就是PC上的VR。当然,移动端和主机的VR对我们来说也是同样的有趣和相关,但是我们也有理由相信,理解在PC端VR发生了什么上我们才能真正的把握这次机会。我们也相信你们对这个层次的VR付出的精力,最终被现有的VR种类所应用——所有的画面逼真度、输入精确度、以及追踪技术——在未来VR各种特性的实现中发挥作用。所以我们未来会致力于譬如:追踪技术许可的更新——来帮助你理解当前发生了什么;Valve自己的硬件开发,未来我们为VR硬件做了些什么;VR内容的趋势——我们从你们以及整个开发者社区得到的。
第三件事情上,我们希望所有人知道,从我们角度来说未来会是怎么样的,以及我们在Valve为了2017年所做的工作。我们想跟你们分享一些预测,我们看到的——基于我们在Steam上看到的趋势正在做的。不止这些,更重要的是,我们想要告诉你们关于我们的计划、我们构想中的大体的Steam平台、Steam商店,以及,呃,我们自己游戏的产品,当然也有VR的未来会如何。为了实现这一点,我们会告诉你们2017年对平台所作出的承诺——我说的是VR,Steam的这一部分;还有我们正在做的投资——用我们的时间和钱等等。虽然今年的SDD,我们不会将它作为用来进行关于Valve对VR开发内容的重大产品公布的时间和地点,但我相信等到明年落实我们现有工作的时候,在场的所有人都不会失望的。
好了,各位,我只是个开场,我现在讲的重点、话题,将会在之后由Tim、DJ、Joe的一组幻灯片里详细阐述。感谢各位来到这里,那我们就开始吧。
(观众掌声)
2. STEAM 事业近况
By DJ Powers (Valve)
(观众掌声)
谢谢。非常感谢。
早上好,欢迎来到SDD。非常高兴我能有机会站在这里和你们分享这次极好的活动(这人呃了好多下哦。)我的名字是DJ。在这里,我将快速的讲一下Steam业务——它的如何发展、2017年我们的目标以及更多。要谈论关于我们的目标,我们先回头看看我们做到了什么。2013年的Steam是什么样的?有人记得那个商店吗?对,回到在商店是蓝色之前的那个灰色商店的时候图2.1,嘿嘿嘿,我们都爱上了现在蓝色。
图2.1 灰色商店
在那段时间,我们一周大概上架5到10个游戏,每天在主要位置(main capsules)特色推荐12到15个游戏,而作为消费者,无论我所说的语言是什么,也无论我身处哪个国家,甚至是无论我对什么种类的游戏感兴趣,我见到的就是那12个Valve认为我那天应该看到的游戏。商店的鉴赏工作是由Valve完成的,上架所有游戏是由Valve完成的,我们还有一个小团队来人工添加资源(assets)、输入字符串、为每个游戏点击发布按钮。我们觉得当时我们有点像这样:
图2.2
你们能看到,开发者们带着他们的作品来,Steam在中间,而那个在第四个作为的人就是我,磁带处理(tape process)他们的游戏并分发给消费者。这是一个不错的生态系统,在2011、2012年,效果都很不错。但是到了那个时候,在2012、2013年左右,PC内容和PC消费者开始爆发式增长。我们有了能更便宜同时更方便传输内容的引擎,我们上线了诸如抢先体验(Early Access)和青睐之光(Greenlight)的Steam特性,我们也看到了一些项目通过新的有趣的途径比如Kickstarter来获取资金。忽然之间,Steam变成了一个巨大的瓶颈。由于Steam没有足够的时间处理,有些开发者因为想要上我们的平台但是受到了阻碍而沮丧;消费者也因为明知有许多很好的东西,但是无法在Steam上获取而沮丧。当时我们尽量让东西快点发布出来,以至于常常我们在工作室里像着火了一样,就像这样:
图2.3
你们能看到我们有些人的头发这真的是着火了。明显,这不是一个很好的长期解决方案,所以我们就着手开始设计一些给开发者们的工具,让他们的东西上平台的速度快很多。我们的目标是让Steam抽身而出,让开发者们自己做、能自己按发布按钮、按照他们自己的计划表行事。我们一做完这些工具,事情就明显好转了。现在Steam世界就非常像这样:
图2.4
开发者们能直接向消费者们发布,而不用在Steam等任何一个人,而消费者们也有渠道获取很多优秀的内容——所有的PC游戏所需提供的优秀内容。这对游戏经Steam发行的比例产生了什么改变?显然,当你做出这些改变的时候,就会产生影响。如图就是每个月由Steam发行的游戏的数量:
图2.5
如你所见,2013年末,就在我们开始推出这些工具的时候,平台发行的游戏数量此后出现了上升。显然我们解决了开发者们发布他们的内容的问题,但是我们仍在让消费者找到合适的内容上有些问题。在用户只能在主要位置看到我们挑选的12个游戏的情况下图2.6,用户对买什么样的游戏如何做出决定?
图2.6
如果你不给用户用于追踪和发现感兴趣的东西的工具,内容本身如何优秀、有什么样优秀的内容都显得无足轻重。所以这就是我们着手开始制作的下一组工具。
图2.7
在2014年,我们发布了一个新的商店首页,我们称之“发现”更新(Discovery Update)。这次更新让所有Steam用户拥有自己的主要区域,也有过滤器用来,比如说,你懂的,我不想看到抢先体验EA的游戏,或者是我不想看到这一类型的游戏,还有更多可以自定义显示在主页的内容。
而Steam在后端,也获取了更多关于用户的内容。我们能看到他们在玩什么、他们库里有什么,从而在主页主要位置放一些对他们更有意义的内容,更迎合他们的兴趣。现在,我们每天在主要位置上向世界各地的人推送500到600个内容,相较于2012年的12个而言,确实是一个非常大的进步。今年(2016年),到今天(2016年10月21日)为止,我们在主要位置这块向全世界的人推送了共计4800个不同的内容。
通过这些,我们感觉我们已经有了明显的提升:开发者们有了发布内容的工具,用户们有了找到内容的工具,这两点都非常重要。将用户和他们所感兴趣的游戏联系起来的结果就是,我们看到了例如这些游戏图.8的成功,而在几年前我们可能就错过了。
图2.8
你们看到的这些游戏,有三个共同点:他们在2016年发布;他们有非常高的评测分数,这里面的每个游戏在Steam商店要么就是非常好评,要么就是好评如潮;而且他们也在2016中收入最高的游戏之中。在我们着火的那段时间,我们常常坐在Valve里开着会,看着20个游戏,决定那周发布其中哪5个,而那些我们没选中的,则仅仅因为我们不能足够快的推出而不会发布。我们很快就意识到,我们非常不擅长于预测在消费者中会引起怎样的反响。这不是我们能做好的,能做好的是消费者,而我们非常想要从他们手中获取。如果是在过去的会议中,我们看到这一组游戏,我们可能就错过了一些比如星露谷物语Stardew Valley这样的游戏,对吧?我们可能看着这个游戏,然后决定种植作物对消费者来说并不是那么有趣。相反的,消费者们很喜欢这款游戏。在Steam上,它的用户评分有97%的好评率,数十万的玩家曾经玩过及仍在享受这款游戏。错过任何一款像这样的游戏都将是奇耻大辱,因为我们仅仅是不能及时推出这些内容(而否决了)。现在我们回过头来看看2014年这个“发现”更新刚刚上线的时候,你能看到同样情况的有很多游戏图2.9。这里的每个游戏,同样的,有超高的评测分数,在Steam上非常非常成功。如果没有商店的这些改变,我们觉得我们可能就会错过这里面的一系列游戏了,所以我们对这个进步感到非常高兴。
图2.9
PC端将要迎来很多绝好的内容,当中许多来自于在这个房间里的人,我们觉得我们在Valve的工作就是找到一种方式并帮助他们都出现,创造这样一个蓝图并且让它实现,让我们自己不成为阻碍——这点我们觉得我们做到了,而且做的很好。我们已经谈了谈关于游戏数量的增长,而在用户数量上我们也看到了惊人的增长。这幅图是显示了过去几年中的最高同时在线人数图2.10。抱歉,我会往边上让让,这样你们可以拍照。如你们所见,在线用户人数从2011年以来到现在变成了三倍。但是更有意思的是,不但用户数量变成了三倍,在参与度角度来看,所发生的事情也非常不可思议。我们看到了每个用户花费在Steam上游戏的平均时间发生了增长,我们也看到了这些用户平均玩游戏的种类也变多了。
图2.10
所以我们在Steam有了更多的游戏,每个用户更多的游戏时间,以及每个玩家选择的更多样的游戏,这三个一起构成了一个非常好的进步。
我们谈过了游戏数量的增加,也谈了用户增加,游戏时间的增加,接下来我们谈谈收入。这张图图2.11展示了Steam自上次2014年的SDD以来的最大的两个市场:北美和西欧。北美是Steam上最大的市场,自从2年半之前的SDD增长了80%;而西欧增长了50%到60%之间。
图2.11
北美市场80%的增长振奋人心,来看看全球发生了什么:
图2.12
这张图根据市场大小从左至右进行了排列,排前面两个柱形我们已经看过了,就是北美和西欧地区,第三个柱形图,则是亚洲。亚洲现在已经是Steam的第三大市场了,而如果在一年前我们做现在这个交流,事情就不是这样了。亚洲的增长实在是惊人,自上一次SDD以来,亚洲将近有500%的增长率。同时也有一些市场的增长率也非常好,你看,你能看到东南亚南亚、中东,都有200%、300%的增涨率。这些是新的消费者,对于PC游戏非常兴奋、参与到市场中来,而很多人都是第一次。在这里你们能看到的,全球的增长并不是一个偶然。Steam上有很多游戏对这些市场投入了重视,包括本地化、定价方面,而他们也从中受益。你们发现随着增长,那些游戏从所有这些新加入的消费者那里受益。我们认为,如果你们中任何一个人在考虑上线游戏,你们都要非常重视这些:我们是否要在亚洲的这些国家本地化我们的游戏?在俄罗斯和巴西的标价是不是合适?我们是不是基于他们的经济水平在为这类消费者做正确的事情?Steam也给你们都提供了所有用来考虑定价的工具,我们也能为提供帮你决定哪些国家进行本地化这样的数据,不过这些确实应该成为你们需要考虑到的。
除此以外,Valve也一直以来致力于促进这些国家的增长。Steam运用了很多方法来促进这种增长,我来给你们看看具体是怎么样的:
图2.13
Steam现在在全世界有25种本土化语言,如果消费者能理解他们所读到的内容,那么消费者购买就会更方便。我们在全世界有29种本地货币,同样的,如果消费者对游戏的价格以及跟日常的其他消费比较的价值定位有比较轻松的认识的话,他们的购买也能更方便;我们在全球有50多种本地支付方式,所以如果你是一个没有信用卡的消费者——很多消费者没有——我们有很多适合你日常生活的将钱转入的支付系统,在使用Steam过程中你不会有额外的障碍。以及世界范围的内容,我们有来自超过100个国家的开发者,而在2014年,我们的开发者来自于50到55个国家,在两年半里差不多翻了个倍,意味着很多本地化的内容将在全世界出现,吸引这些市场里的新用户,从而又让这个市场内出现更多的内容,非常美妙的循环,而这也是用户数量开始增长的区域发生的事情。
好,那么我们已经讲了Steam增长的方方面面,游戏、用户、游戏时间、收入。我想将这张幻灯片图2.9/2.14重新调回来,稍微讲一讲。
图2.14
我们在Steam上看到的增长,尤其是对于开发者来说,是非常惊人的,看到所有这些增长很棒,可以说有点吓人。我们想要进一步强调、想让你知道的是,以我们看到的来说,没变的是,消费者在寻找优秀的内容。我觉得这是我这张幻灯片所表述的:抛开数量上的增长,Steam仍然是精英主义,这是一个让优秀内容登顶的地方;而我们现在所开发的所有工具,用户能够搜索商店,你们可能有的跟用户之间的紧密关系,都为了促进这个。我们想要这样的游戏,有着非常好评或好评如潮的评分而登顶。这些游戏有着各种各样的类型、各种规模的发行商、各种大小的市场营销预算,但是他们中的每一个,都真诚的跟服务和联系与他们的观众。所以这里我想传递的信息就是,在Steam上找到成功的方法就是做一个优秀的游戏并跟所有的观众建立联系,这一点并没有改变。在三年前,我头发着火的时候是这样的,现在也是这样的,将来我们在几年后回来开这个SDD的时候也会是这样的。
好了,让我们回到现在,讨论一些Steam在2017年以及之后的发展方向,在未来我们能期待些什么。我们会继续让消费者更容易找到他们想要的内容,我们也会继续让开发者能更方便的将游戏带上Steam平台。
图2.15
在未来的几周时间里,我们将要再一次大规模更新商店。我们会提供更好的过滤管理、更好的推荐、更多关于你的好友在玩的游戏的信息,我们想要商店做更多,承担更多将你们和用户联系的压力,我们会为比如VR和视频的内容提供更多有力的支持。我们能告诉你的是我们计划继续一直反复的在Steam上做这些事,这不是已经做好的内容,我们会一直做以求更好。另一个Steam未来准备的方面是硬件。在2014年的时候我们在这里谈论了很多有关Steam将如何**到客厅,以及这意味这什么。当时我们其中一个目标是——现在也是我们的一个目标——将硬件更倾向于像软件一样对待。Valve是一家软件公司,我们在20年的开发软件中学习了很多,而我们想把学到的东西应用到硬件上。
图2.16
Steam手柄自从发售以来,在不到一年的时间里已经更新了72次,这使它相较于11月份发售的时候要好了很多,很多更新极大的增加了手柄实用性。我们致力于那些你们告诉我们要解决的、那些开发者和用户认为重要的,这样我们能为我们下一步的更新做个优先级排序。接受你们的反馈,你们会听到这个很多次,接受你们的反馈非常的重要。特别是对于手柄,我们可以计划继续这样的方法,我们将在接下来的一年里推出另外72个更新——我不知道这个数字是不是这真的——不过我们会在明年推出一些更新,Scott Dalton可能因为这个会对我生气。我们打算,呃抱歉,事实上,接下来,马上,我们会对Steamworks API发布一个更新。这个更新中会加入对市场上所有流行手柄的支持,所以你再也不需要一个手柄特殊码(controller specific code)了。你只需要发布到Steamworks API,然后每个手柄都将得到支持。这是一个关键的提升,也是我们一直以来致力于的东西。
图2.17
Steam流式盒(Steam Link)是另一个我们几年前讨论过的硬件,并在11月份发售,也是一系列将Steam带到家中更多地方的产品中的一个。三星Samsung和Valve刚刚宣布了,同样用于Steam流式盒的Link技术将很快会集成于三星电视,所以出门买一个新电视,将它带回家,在你家的一个新房间里也能有Steam了。现在电视机能做很多事情,它们都跟internet相连,有很多应用程序,但是有一点要指出的是,这并不是商店里的应用。Link技术是直接集成于电视机硬件的,来达到低延迟和高清晰度的目的,如果你想要直播游戏的话,这点非常重要。我们会继续寻找类似的让Steam在家里更多地方可用的方法。
图2.18
我们也继续致力于Steam OS图2.18,我们利用用像Unity和虚幻这样的引擎让为Steam OS开发的时候更方便快捷。这两个引擎都支持Vulkan——一个Valve帮助开发的高性能图形API。如果你们现在将Vulkan作为目标,无论你在为什么平台做开发,你都将从我们将来针对客厅和VR的工作中受益。我们也致力于将Steam VR集成入Steam OS中,我们认为对未来VR消费者来说,将Steam OS开发成一个简便的即插即玩方案有很大的价值。
图2.19
谈到VR,虚拟现实,这对我们来说是另一个重要分类,Greg在这上面谈了很多,在接下几天你们会听到很多关于这个的内容。不过请允许我提供一些数据,一些对于我们现在如何看待VR的深层次思考。在Steam商店,现在有超过600个VR应用,几百个将要上线的,内容不断的涌现图2.19。我们在Steam上每天有超过1000个新的VR用户。很多Steam的VR应用已经赚了百万美元。这有着所有成功的标志:开发者成功了,我们有兴奋的消费者,飞速提升的技术;所有我们想要在VR领域看到的东西都在发生。所以接下来,你们会看到Valve继续在VR上all in。在接下来的几天看看那些展出,那就是我们将要讨论的东西。我们会从各个方面进行积极的投入,下一个演讲人Joe,会在这些投入有更多的细节。
好的那么,做个总结,回顾Greg讲的many to many,我们讲了我们如何将开发者和消费者联系的历史,同时讲了Steam在这种联系中扮演的角色,我想要快速的回顾一下早期人工时期、头发着火时期、一直到我们今天,为开发者和消费者提供的一系列良好的Steam工具将双方联系到了一起,而Steam本身也没有被拖慢。但是我们还没有结束,我们将继续致力于让你们和消费者之间的联系更紧密。
这张图对我们来说代表了一些东西:一,这是我们认为未来Steam上开发者和消费者的关系,你会发现Steam、Steam的流程已经我们的桌子都让开了,你们和消费之间有直接的互相联系;二,我们希望这张图也会是这周SDD的样子,在场的所有人,都彼此联系,分享想法。所以当你在这里参加会议的时候,请,再说一次,给我们反馈。这是我们提高的方式,也是我们用来帮助Steam、帮助你们所有人、帮助整个行业前进的方式。告诉我们你在做什么,对于提高这个平台你们有什么想法。相互联系,分享想法,最重要的是,请继续做优秀的游戏。
我将把接力棒交给Joe,他会谈一谈VR的哲学,谢谢大家。
(观众掌声)
3. 虚拟现实的哲学
By Joe Ludwig (Valve)
图3.1
嗨,大家好。我想让你们知道一些关于Valve正在投资的VR技术以及开放的VR生态系统,以及更重要的,为什么我们要这么做。在VR技术方面,我们致力于内容,也同时致力于硬件和软件。在这里,我们的目标是给你们一个我们在做的决定和投资的背景。
图3.2
很多人将虚拟现实,或者是虚拟现实和增强现实的结合叫做“最后的平台”(the final platform)图3.2。这是因为很难想象当一个平台能控制你看到和听到的任何东西之后,还能发生什么。如果不管在什么系统下,人们最终都要使用这个最终平台并停留一段时间,那么将它构建成一个能不断自我提升的平台就非常的重要了,而我们认为这样的系统最好的例子就是开放平台(open platforms)。
图3.3
在我表达对于VR来说开放平台有多么重要之前,我需要定义一下我说的开放平台的意思。开放平台,是由几个一般性原则所定义的。
图3.4
开放平台,呃,好吧,咳,开放平台是……(放错幻灯片了,尴尬)这就对了。开放平台(忍不住笑出了声)是这样设计:是由来自不同公司的用不同的方式实现的组件所组成,他们使用公开标准、有时候是公开源,让这些组件进行有效的协同工作。
图3.5
这个协同性的意思就是硬件和应用软件能在一定程度上独立于彼此工作。应用常常不在意它们在什么样的深层的硬件上运行,反之亦然。图3.6
图3.6
图3.7
当然,因为开放平台是基于公开标准,没有人需要你来提交一个应用或者一块新硬件来获取许可。图3.7,3.8
图3.8
图3.9
开放平台中两个最好的例子就是PC和internet两个平台,以及这两个平台的结合,支持了所谓的“无需许可创新”(permissionless innovation)。如果你想开发新的东西,只需要去做就好了,不需要游说看门人来获取许可,所有人都默认拥有开发任何想要的东西的许可。这两个平台也是推进计算机行业发展的主要动力,因为很多公司和个人都在进行积极的推进。这两个开放平台带给我们网页浏览、回退按钮、鼠标滚轮、YouTube、DLC以及最终的完整的游戏,MMO、MOBA、Minecraft、F2P(free-to-play),还有许多许多。如果在之前需要获得许可的话,这些东西很可能一个都不会存在,因为他们刚出现的时候,看起来都是很蠢的主意。
图3.10
相反地,两个封闭平台的最好例子就是游戏主机和iPhone。在这两个案例中,所有硬件的创新都是由平台拥有者这么一个公司驱动的。如果Apple、Sony、Microsoft或者别的什么公司想要在下一个迭代产品中加入一个新特性,他们可以做到;而其他的所有人需要设法游说这些平台拥有者去买他们的技术或者是公司,要是平台拥有者拒绝了,那么也就到此为止了,没人可以提供直接对消费者提供新的创新。这两种平台都对谁能在他们平台上发布软件拥有绝对的控制权,他们都允许第三方软件,但是对允许的软件类型有着严格的规则,而且他们经常由于软件越界了一些之前并不知道的由平台拥有者决定的界线而决定不发行,甚至是下架软件。封闭平台的规则不是固定的,可以因为平台拥有者的一时心血来潮而改变,常常对消费者和开发者造成了伤害。
图3.11.没错,就是他之前放错的那张幻灯片-图3.4
开放平台则恰恰相反。开放平台好在,它在开发者和用户之间形成了良性循环。图3.11/3.12
图3.12
这很容易理解:硬件和软件的开发者可以做出他们想做的东西并提供给用户,通常是以售卖的形式,如果用户喜欢这个新东西,那么他们就能购买。有些用户是平台的新用户,从而让平台变大了一点。然后相对的,由于潜在的市场变大,鼓励了更多新内容的产生。如此循环,你就能相当快的获得一个大型生态系统。我需要指出的是“新东西”包括各种各样的创新,而不仅仅是一块新的硬件,它同时也包括了你在游戏设计方面做出的创新,比如新的控制设计、运动方式或是商业模型。所有这些都可以积极地反馈到开放系统当中。图3.12
图3.13
在技术开发者自身当中也有类似的正反馈图3.13。每一个加入到平台中的字节都为下一个新发明提升了基础,是下一个新发明开始的地方。长此以往,这会使得之前在循环中受阻而不会存在的新发展成为可能。新的创新是由左边之前创新遗留下来的基础上创造的。
图3.14 可是我觉得这个不是旋转木马啊
想象一下旋转木马,每个新创意都是旋转木马的一小个推力,而每个新加入平台的用户也是这样的,很快的这个旋转木马将会旋转的相当快。
图3.15
所以特别地,为什么对于VR来说要是一个开放平台呢?因为如果这是一个接近于最终平台的东西,它将持续很长一段时间。通过将平台的允许默认设定为是的话,我们可以让这个生态系统参与到服务于用户和开发者当中来,而不仅仅是平台拥有者。而且在VR生态系统来说,现在也处于很早期,没人知道下一步最重要的是什么。
图3.16
这些当中的每一个,都有不止一个公司认为这是现在的头戴式显示器(HMD)最重要的问题,所以这些公司都在针对他们认为最重要的问题开发他们自己的HMD。他们会发布他们的产品,然后就能看出是不是对的,不管对错与否,整个生态系统会学到些东西。而这个也不需要中央集权来选择下一步该做什么、什么是好的,因为没人能确切的知道下一步做什么。
图3.17
所以我们着手确保VR将以一个开放平台的方式出现,而我们也利用在VR基础层面开发技术来完成这一目标,尽可能大范围的分享我们的技术,确保软件开发者的能获取到这种技术的API的渠道都是开放畅通的。今天我想要大致讲一讲我们用来完成之前三件事的一些具体方法。
图3.18
你们可能已经听说过了,我们在给任何一个想要做追踪设备的人授权许可我们的追踪系统Lighthouse。在我们讨论这意味着什么之前,这里有一个关于Lighthouse来源的快速入门。
图3.19
回到我们刚刚起步的2012年,很明显追踪系统就像风景画中的一个大洞。你能找到一些提供内置追踪技术的系统,以及更多的额外为追踪花上几千刀的设备。这里的追踪技术,我的意思是,我们刚刚讲到的是只有旋转的追踪技术,基于惯性测量单元(IMU)的只有旋转的追踪技术。如果你想要位置追踪(positional tracking),你唯一的选择就是临时加一个表情捕捉系统,写一堆你自己的软件,然后为这个特权付上几万刀。换句话说,甚至远远没达到消费级产品的水平。所以我们开始开发一个消费者承担得起的系统、一个在家里就能用的系统。
图3.20
我们想到的就是一个像Wi-Fi一样未来有一天普及的捕捉系统,Wi-Fi渗透在各个公共和私人空间,而你也不会考虑到兼容性问题,它就能用。为了达到这个目标,我们需要它跟Wi-Fi一样开放和标准化。显然我们现在距离那个目标还很远,但是我们已经朝着那个未来迈出了第一步。
图3.21
要使用Lighthouse,用户需要将这两个基站放到墙上,任何一个拥有Lighthouse传感器的设备就能追踪他们自己的相对于基站的位置,精确性也很高。精确性,我指的是,大概有三分之一毫米。跟你们一个参考,三分之一毫米就是三张纸的厚度。这个程度的精确性很有必要,来追踪显示一个HMD,同时也不会让人感到难受。
图3.22
关于作为提供给VR的追踪系统的Lighthouse,它有很多我们喜欢的特点。因为它能掌握多个目标,以及S.M.A.R.T(Self-Monitoring Analysis and Reporting Technology,自我监测、分析及报告技术)在接收器这一面,它支持任何数量的目标,这意味着它在追踪输入上表现非常优秀。相对于加入更多新的目标,你会更快没有地方来放这些目标。现在,它能追踪HMD和手柄在一个变成四米的正方形里,已经挺大的了,而且我们希望之后能做的更大。而事实上,基站并不知道接收器在使用它们,也避免了一些潜在的隐私方面的担忧,让Lighthouse在公共空间也非常好用。当然,Lighthouse的追踪精确性也想当高。所以你会用这个系统拿来做什么呢?
图3.23
我们用来追踪HMD和手柄控制器,这是用来支持HTC Vive的追踪系统。我们也可以想到一些别的可以追踪的东西,但是有那么多东西而任何一家公司一次只能追求一个。我们的追踪宠物和别的输入的需求,比如不同的手柄、相机等等等等,都长期被抑制。图3.24
图3.24
图3.25
从八月开始。我们就开始提供了Lighthouse或者说是Steam VR追踪——官方的叫法——给任何一个想要追踪东西的硬件合作伙伴。而由于这是一个开放系统,他们也无需为他们开发的东西付费,也没有看门人来否决他们,也没有他们需要进行的认证流程,他们开发的东西完全是在他们和他们的消费者之间的。同时使用该系统也不需要支付授权费和专利使用费。图3.25 Valve花了数年时间开发Lighthouse,为的就是将它开放给整个世界。我们为这个正在兴起的生态系统填补了一个空白。虽然说起来尚早,但是目前看起来它很有效。
图3.26
到目前为止,有超过300个公司和其他的组织已经注册在他们的产品中使用Lighthouse。他们致力于制造头显、手柄、其他的追踪输入方式、触觉服(Haptic suit,用于反馈触觉)、beer cozies(这怎么翻译,中文好像没有这玩意儿,用来给啤酒保温的,可是为什么要这个技术?)还有各种各样其他的设备。这些公司有超过一半准备在明年发布他们的产品。通过允许各种硬件公司在同一个追踪系统上标准化,我们让安装在家里的每一对基站更有价值。非常明显地,这对消费者非常有利,同时对你们这样的软硬件开发者来说也很有利,因为这意味着世界上有安装了更多的Lighthouse供你们销售你们的内容和设备。
图3.27
为了确保所有的Lighthouse授权都能接入到基站,Valve正在进行自己的基站生产线的下一个设计,我们会在明年(2017年)投入生产。如果你就成本或是进度有问题,请联系我们,让我们知道你自己的进度是怎么样的,我们希望确保在你需要的时候,这些基站对你和你的消费者来说是可用的。你可以在今天下午Ben Jackson的演讲中获取更多关于Lighthouse以及许可程序的信息。
图3.28
前面我们已经谈了我们在让硬件设施更开放方面都在做些什么,现在让我们来稍微谈谈我们在使软件更开放方面正在做些什么。
图3.29
OpenVR SDK(Software Development Kit 软件开发工具包)由两种API构成:第一个是让应用开发者一个通用的界面下能够接触到可能存在的多方供应商的硬件;第二个界面则是让硬件开发者能获取到所有软件开发者所开发的软件。这两个API都依托于SteamVR,而这个通过Steam平台是免费提供的。可能你们中的有些人会问自己,非要在Steam上发布的平台怎么算是开放平台?其实,答案是你不是非要在Steam上发行。而且如果我们看上去想要自行取而代之成为守门人的话,你的正确做法是提醒我们这一点。
图3.30
你可以自由地将OpenVR SDK汇编入任何程序或者驱动,并在Steam上发行、或是自发行、或是组织内部分发、甚至是不发行。Steam商店确实有一些对内容的限制,但是API本身没有这样的限制。只要你的API在安装时自行注册了,它将会自动出现在用户的Steam库里,跟其他的使用内置程序列表的程序,譬如Vive覆盖界面(overlay,就平时按shift+tab出来的那个节目也叫overlay)一样。DJ刚刚讨论了很多我们设法将Steam变为适合你们的地方的方法,不过如果对你来说不是这样的,那也没关系。总的来说,我们想让你们思考,想让你们去做你们认为有利于你们的消费者的事情。对于OpenVR驱动来说也是这样的。既然OpenVR项目已经有了一个相当重要的库,很多公司在致力于为他们自己的硬件开发OpenVR驱动。我们和其中一些硬件合作商有合作,但是更多的则是选择直接使用SDK,也不跟我们交流。如果你的硬件快要发布了,而你又想要让你的驱动上Steam平台,请给我们电话,我们非常乐意提供帮助。
我们还有很多值得一提的未来的工作方向。其中一些就是输入。
图3.31
在GDC(Game Developers Conference,游戏开发者大会) 2015上,我们展示了第一个完整的VR系统。依靠平台集成的动作输入,开发者们可以在虚拟世界里提供给用户同时拥有手和眼睛的体验。四月份的时候,运回了这个系统,自此以后我们一直都在努力致力于下一步做出什么改变。首先我们将捆绑追踪手柄从Steam手柄变成了从成千个Vive开发套件中选出的Mr. Hat手柄。我们手柄的原型,呃,我们手柄的开发自此以后一直到现在还有过好几个原型。最右边的图那个实际上就在SDD,所以你们可以尝试一下,然后给我们反馈。它允许你在完全张开手的情况下仍将它握在手里,这使得抓住并放下可以成为VR中用来捡起和丢下物品的动作。你可以……(观众掌声)你可以在今天下午的happy hour时段试一试,它会在,你们就在社交大厅里找找看,我也不确定它确切会在哪个地方。
图3.32
这只是我们做的众多原型机中的一个,而且别忘了,这也是数百个其他公司也在做的原型中的一个。输入端目前在VR生态系统中,是创意的热点位置,而确认自己最终做好了的最好方式就是让这些尝试都进行,让消费者用钱包来做决定哪些最好。尽管我们对于哪个方向做输入端好有我们自己的想法,如果被证实是错的我们也很开心。
图3.33
我们也在寻找志趣相投的VR技术提供商,以开发可供给多个VR供应商的东西,这里有一些例子:其中有一个公司叫做Nataro,Nataro致力于60 GHz频段下的无线视频传输系统,摆脱绳线的束缚。我们在今年早些时候对他们进行了投资,而且我们对到目前为止在demo中所看到的内容非常的兴奋。我们也对几个组件的提供商进行预支付,来获得能成为所有人都能买到的标准部分的关键性组件。最好的例子就是那个啥,就是ASIC(Application Specific Integrated Circuit,专用集成电路),由Triad (Semicondutor) 为Lighthouse传感器开发,以及其他的一些。我们也在精通例如3D环绕声、计算机视觉之类的软件公司设立项目,来开发能被生态圈中其他公司利用的更基础的技术。如果你的公司致力于能推进VR生态圈的技术,请联系我们,我们想要知道你在想能做什么。
图3.34
我们也在倾听你们所告诉我们的关于OpenVR的东西,和别的我们在做的事情一样,我们在做的每件事都在进行中,包括OpenVR。比如我们听说了你们非常强烈和明确的请求,想要对偶尔出现的掉帧有一个保障,所以在几周里我们会在运行时加入异步投影。当游戏掉帧时,异步投影会选取最后一帧,并且扭曲它来缓解头部的旋转。依然非常重要的是……(笑,观众掌声)能不间断地维持90fps依然非常重要的,但是这个可以让偶尔的掉帧不那么明显,这个特性将在几周后的显卡beta版本驱动的选项中出现,之后过些时间会出现在AMD(显卡)上。可以去听一下Nat Brown的演讲,我记得是在今天下午,可以了解更多关于这个以及其他技术的内容,来帮助你的游戏表现优异。
图3.35
另一个我们从你们那边了解到非常清楚的地方是,对其他的平台提供支持。这是一张Steam VR在Linux系统下通过Vulka使用HTC Vive的截图。(观众掌声)我们在积极致力于对OS X和Linux提供支持,我们也希望在接下来几个月的beta中加入对这两个平台的支持。你可以看到在Linux上运行的头显,就在,我记得是明天下午社交大厅的12号展台。
图3.36
在我完成并将你们交给Tim之前,还有一件我想说的事情是,Valve就在你们身边推动这个旋转木马,我们有超过50个人在重大VR内容工作,以及更多的人在核心VR技术工作。我们认为将一个成长中的VR生态系统构建成开放平台,是帮助你们和你们的消费者最好的方法,这也是我们接下来几天中想要谈论的内容。如果你对今天我们讨论的内容有任何的问题,请随意找我或者VR团队中的任何一个人,我们非常乐意听你在做什么,以及我们能如何提供帮助。谢谢。
(观众掌声)
4. 虚拟现实与游戏的未来
By Tim Sweeny (Epic Games)
(观众掌声)
谢谢。
我在这里想要探讨关于VR和游戏的未来。我觉得在座的人致力于的事情对整个计算机行业的发展来说是如此的根本,所以这也可以是关于人机交互的未来的讨论。
我在这里阐述的想法都是基于我在Epic Games的经历,所以我就先简短地回顾下我们都做了些什么。我们开发了Unreal Tournament(虚幻竞技场)图4.1,一个PC平台的老派学院派射击游戏;Paragon图4.2,我们的新MOBA F2P动作游戏,在PC和PS4平台;以及虚幻引擎图4.3。由于需要制作这样的前沿技术,我们和所有硬件供应商、所有的平台公司以及行业内的研究者有着非常密切的合作。所以我们尽量将所有从开发这个技术中他们的知识和我们自己见解里的精华部分一起带给大家,来树立对这个产业未来的走向的理解,这就是我今天在这里想要分享的。
图4.1
图4.2
图4.3
我们现在已经处于一个非常有利的位置,因为我们有着行业中所有的平台、非常高性能的GPU、可高度编程着色器以及解决了之前性能瓶颈的底层API,所以我们有一系列非常优秀的硬件可用。
图4.4
在PC我们有DirectX 12和Vulkan图4.4,而在Android和Linux上我们也有Vulkan,引领着所有开放平台前进。一个我们观察到的非常有趣的事情是,驱动整个技术发展的创新是由PC引起的。PC是开放给所有人的平台,发布产品也不需要从任何人那里获取许可,因此软件和硬件的创新完全没有受到守门人的限制。
图4.5
早期Apple电脑在主机被发明之前推动了电脑游戏产业,在80年代末的主机平台崩溃事件后,IBM PC推动了游戏的发展。
图4.6
这些早期游戏都是用抽象字符代表环境和人物,因为我们没有足够的计算机性能来画任何大概接近真实的东西。
图4.7
不过一切都在90年代初,John Carmack在德军司令部Wolfenstein 3D、毁灭战士Doom上的惊人工作,以及之后Epic在虚幻系列游戏时发生了改变。终于粗略的展现近似现实的画面成为了可能,因为我们拥有了足够的计算机性能。在过去的18年里,我们一直在推动的行业技术水平的发展,而我们现在就快要达到照片写实主义的程度。来的正是时候,为VR的来临来的正是时候,这是它所最需要的。PC引领着VR革命,VR需要前沿的硬件、迅速的进化、自然双目成像、PC上的CPU、GPU、头显、软件和分发平台,意味着所有这些系统组件在整个系统中可以无限制或瓶颈的进化。你知道,就就是创新的基础,而别的封闭平台就不是。
图4.8
行业内的所有公司都在为实现照片写实主义的目标做出贡献,我们也快要做到了。高端图像对于VR来说是至关重要,也就是说之前的所有平台都是不对的,因为我们的大脑期待现实,在VR环境中,我们的大脑期待的是存在感,我们也发现当一些提示出错会让人十分的困惑。甚至我们在看风格化的画面的时候,这是一个Oculus上的名为Henry的短片画面图4.8,在这样的风格化画面上,大量的细节也仍需要是正确的,不然你的大脑就会不会接受这个画面,无论它是真实还是风格化的。所以在VR中这个渲染问题比Doom、吃豆人Pac-Man、及现在的前沿游戏中的要难很多。这不仅仅是关于渲染,更是关于传感技术、生理学和心理学、以及将所有细节交织在一起来做到对用户来说魔术一样的地步。我想要回顾一些图像的核心方面,那些形成了目前技术水平的方面。
图4.9
我们从在物理基础上对所有东西进行渲染开始,而目标是利用微观计算真实地模拟光和物体上微小表面的互动,物体在纳米尺度以上有了突起,这些新的渲染模型和先进的双向反射分布函数(Bidirectional Reflectance Distribution Function,BRDF)都是为了更精确地模拟这些计算。在这一点,我们其实可以在很多面上加入很多写实照片的材质,不是所有但也是很多,同时也是各种各样的现实世界外表。区分你在电脑中和在现实看到的画面的正在变得非常困难。挑战就在于在一次智能采样中加入灯光、反射、透明度、阴影和抗锯齿,来实现写实化。我们观察到的对于所有行业中的画面开发者来说的关键性挑战就是,我们的显示器分辨率的增速远远超过了下层的GPU性能发展速度。4K电视和显示器现在很便宜就能买到,生产商也在着手推出8K显示器,所以我们就有了16倍的像素点,而在VR领域,我们正处在10年路线中的从低分辨率一路提高到单眼至少8k——这是在VR情况下达到完全写实要求的——的某个位置。这么一来,图像开发者将要不得不投入大量的努力,来实现提高画面写实到那么多的像素点、而不在性能消耗上有相应的提升。
图4.10
当我们追求照片写实主义的时候,内容渠道也需要改变。在早期我们所有游戏的美术都是我们自己用Photoshop或者Deluxe Paint做的,但是随着图像和显示器的分辨率的上升,如果仍这么做则需要做的工作指数型上涨。所以现在捕捉显示素材性价比更高,我们需要研究并对用光度学对现实物体进行采样,这已经成为过去三年来我们做的主要内容开发途径。在这个项目中,为了开发虚幻引擎的Kite demo,我们去新西兰对数百个真实世界物品进行了采样,然后将它们程序化生成的环境中。图4.10
图4.11
在这张图里,你们可以看到材质从色彩频道到高度频道的不同层次,这些都是通过对取样自真实世界的图画进行自动处理提取完成的。将这些信息放入到同一个大环境需要实现程序化。对真实世界物品的取样、以及程序化地将这些分散到游戏世界中,这两者都是非常有必要的,因为它们都能使生产效率倍增。随着游戏真实性的提高,我们无法做到让团队规模也随之变大,否则游戏预算就会发生指数型增长,所以我们所做的所有提高人员生产效率的手段对于游戏开发流程来说都非常的有价值。
图4.12
图4.13
有意思的是,你能发现现在游戏开发者开发内容的方法跟20年前并没有什么去比。这是第一代虚幻引擎,在1996年的时候由我使用VB语言编写的。(观众掌声)(笑)有人用过这个吗?(笑)现在计算机和图形算法比当时快了十万倍,图形显示能力也极大的增加了,但工具却大体上保持一致,不过这个现状马上就要发生戏剧性改变了。
图4.14
下一步就是在完全沉浸的VR环境下开发内容。与以前使用CAD软件或是十分复杂的用鼠标移动、打开菜单选项修饰物体的习惯不同,你将伸出手去抓住他们、到处移动他们,在虚幻引擎编辑器中我们已经实现了这个技术,而且就在今天进行了发布,你们可以下载并使用。虽然Unity在这一领域也做了些很棒的东西,但这才是有生之年可见的对内容开发产业有深远影响的改变之一。我们也不是仅仅在谈论针对某些VR编辑方面的某些特性,你可以利用它进入VR模式并沉浸其中,在这个VR世界像有一个小型虚拟iPad一样获得所有的虚幻引擎菜单,你可以跟所有的2D菜单和选项进行互动,使你能够做任何部分的内容开发。有一点很有趣的是,这种情况下所有那些过时的CAD程序——比如3D Studio MAX、Maya——所有我们使用的各种各样的工具,都需要进行大型的更新、反思,呃,或是替换,来获取高效率的新工具,因为在未来几年内,我们将把所有的绘图、塑形、物体建模工作以及3D环境测试直接放在VR媒介上,而不是以前的电脑屏幕上。
图4.15
这将变得很有趣,因为这将让图像技术向更多的用户和内容创造者开放,在过去的两年里,我们已经见到了这个惊人的趋势。事实就是,我们不仅仅利用突破阈值后的现代引擎实现实时计算机图像技术的游戏开发,那些使用优秀渲染技术的公司突然也都对给尚未使用实时引擎的公司应用等进行部分内容构建产生了兴趣。比如,建筑师利用虚幻引擎来构建相当复杂的环境。
图4.16
和这些人合作的经历非常有趣。对我们游戏开发者来说,有很多机会“作弊”是很爽的事情。当我们想要构建3D环境时,如果硬件条件不允许,我们可以对它进行风格化、限制、或者利用巧妙解决方法来避开技术限制。但这对于想要3D物体模型的建筑师或者公司顾客来说不行,他们想要所有的现实物体都能被准确地实时再现。如果技术达不到,那么就是彻底的失败了。
图4.17
所以这些应用推动了所有的引擎开发者去寻找新的方法,让我们能增加我们的特性能力来支持所有需要真实展示的东西。
图4.18
举个例子,汽车工业也使用了这个技术。某种程度上,我将这些应用都看成没有文本的游戏,因为他们做了游戏开发者就创造能互动的真实的交互影响的环境、物体所需要做的所有事情,除了游戏玩法本身。所以这是这个技术的一个有趣的缩影。
这极大的推进了引擎技术。比如不均匀材质的涂装(anisotropic paint),它需要改变渲染模型,使用新的BRDF技术、创造出真实的碳纤维等材料的效果。所有不同的材料都在促进渲染工作,而游戏产业也从中获益。
图4.19
图4.20
图4.21
近几年的质量水平已经相当高了。这里我们有并排放了渲染物体和现实情况的对比图4.19,4.20,4.21。分辨两者哪个是哪个变得更难了,对未来技术来说这非常有趣和振奋人心,因为这意味着我们能将所有这些技术带给主流消费者。相较于到Amazon.com购买产品去看那些让人讨厌的缩略图一样的截图,你会更倾向于将整个物体全屏化、到处移动、甚至是自定义其中部分,而且都是实时的、在一台电脑上、使用的只是引擎技术。对于VR和AR来说,将更为广泛运用。
图4.22
另一个行业里的主要挑战是,再现真实的数字人体模型。我们在Paragon里的经验推动我们的美术和工程师在这方面保持了顶尖水平。我们要做一个忠于MOBA类型的游戏,但同时也加入了非常先进的有真实浸入感的3D图像。这是一个巨大的挑战,同时也在各方面推动了引擎的发展。
图4.23
我们从参考真实人类的照片着手,标准化亮度、色彩和表面的属性。我们测量了人们在在灯光台(light stage)下的所有这些属性,来标准化局部和全局对于不同的光照的相应,提供参数以用于浅表下的散射算法等等。
图4.24
当然,人们也常常穿着各种各样的衣服,所以这也推动了穿着系统,无论是动画方面还是渲染和物理模拟,无论是绒毛还是帆布。
图4.25
要达到真实性,需要获取到非常高精度的数据,在低分辨率下你是无法做到的,即使是小到人类皮肤上毛孔也是非常重要的。
图4.26
头发上的非均质反射也是实现生成人类真实化外貌非常重要的一步。
图4.27
所有不同元素之间光线相互作用,包括背景光线透过头发的漫反射、所有浅表和皮肤之间的漫反射,即便是光线并没有直接照射到上面,你也能看到颜色。
图4.28
对于数字化人体模型来说,写实化的眼睛也是非常重要的,尤其是当你想要在人物之间——无论是人物跟玩家互动,或是在影片环境下人物相互互动——创造社会性互动的时候。事实证明,这之中有大量的细节,而我们的大脑有着相当特殊的特定回路来从他们的脸上判断出他们的意图,所以做好这个就显得至关重要。
图4.29
当这些都合在一起的时候,就有了一个现在能实时运行的结果了。这一张图并不是完全的照片写实,不过它每天就在接近。人类模型作为一个最难处理的模型,我觉得在未来的几十年里可以得到解决,到时候我们就会有写实到惊人的人物出现在各种VR体验中。
之前我们了解了有关渲染数字人类模型的数据方面内容,除此以外还有很多围绕着动画化、面部互动、意图确定和控制这一切的人工智能方面的挑战。我们还需要做很多的研究,不过现在靠着目前最高性能PC的每秒执行9万亿次浮点运算(tereflop)GPU能做成这样也是非常惊人的。考虑到GPU性能每年都有显著的提升,今后的结果可能会更加惊人。主机平台在更新中,这是我们非常乐意见到的,但是毫无疑问的是PC才是引领着这次革命。在9 teraflop/s之后将会是怎么样的呢?
图4.30
接下来需要解决的问题就是完全写实化人类动作,这意味着要远超骨骼动画化,达到完全物理模拟人体运动的程度,也就是要模拟肌肉的收缩和舒张,身体组织、脂肪、韧带的活动,这些都对人物的外观有影响。然后将这些技术变为非常好用的形式,这样你就不需要花好几年时间创建每个人物,而是从一个普通的人类(应该是类似于模式动物这样)开始进行自定义以满足需求,或者也有可能使用可以匹配现实人物的自动化工具。我们还有很多要做的,而且游戏产业跟前沿科技公司比如Google和Facebook之间相比还落后很多,他们研发深度学习技术来高度自动化解决问题,而我们仍然靠蛮力解决。这些都是我们需要也将要投入的领域,产业也将在未来几年内大幅度前进。
图4.31
相机模型在游戏和电影中也非常重要,这些跨类型(cross genre)运用在创造如同电影版体验的VR上,也能在一定程度上相互影响。我们有非常写实化的相机模型来精确的导出景深,并且没有利用一些程序预设参数的小技俩,而是使用现实中Hollywood的摄影师也需要的相机模型。这样你在现实世界中做的事情就可以实时复制到游戏中。
图4.32
实际上这使得VR技术进入到了Hollywood。每一个大型的电影工作室、每一个重要的电影制作人都在很大程度上考虑VR技术。他们中有很多人都在投资一些项目,有些项目已经公布,而更多的还在工作中。比如维塔数码Weta Digital在参与制作过霍比特人The Hobbit的非实时渲染电脑导入了虚幻引擎,构建了一个完整的场景,这个场景他们在几年前的游戏开发者会议展示给了大家,证明了其可行性。这仅仅是目前发生的最前沿的部分,所有的工作室都采用它。
图4.33
图4.34
卢卡斯影业LucasFilm已经试验了使用实时游戏引擎的方法。迪士尼Disney电影,最酷的一点是想象一下游戏产业技术、工艺、专业知识正在外界找到了更广泛的用途,迪士尼乐园Disneyland和迪士尼世界Disneyworld主题公园的建筑**,是基于VR的。星球大战Star Wars的VR**,也全都是在基于PC的计算机图形技术上实时运行的。这些经验都会非常棒,而且他们也是未来趋势的线索。
图4.35
在科技革命的同时,也发生了一件很有趣的事情,他们有时候会朝着意想不到的方向发展。就在PC突破了1 teraflop/s的局限的同时,只能手机出现了,这些小设备在当时我们觉得性能低下,但是在接下来的10年,智能手机产业变成了一个比PC还大很多很多的产业,世界范围内有将近30亿使用中的设备,而且都能用来玩游戏。这使得行业中的我们这些核心技术狂往回思考,因为它让游戏从超高端的3D回到了2D以及高度风格化的渲染场景。但是我认为,我们必须要认识到是什么让智能手机革命变得如此成功,这样我们就不会滥用这些经验到发展中的VR和AR中了。智能手机的成功,是由于其便携性——你可以将它们放在口袋里去任何一个地方,你可以接入到internet,你可以跟人发email、进行交流——这驱使了它们的应用。然后游戏开发者们就意识到了,既然你身上有这样的小型设备,那么我们就可以往里面放些游戏。智能手机,当你玩智能手机游戏的时候,屏幕大概占据了你视野中的15度,一个非常非常小的数字,所以人们很快就发现了在智能手机上运行的最好的游戏是非常简单的游戏,画面也很简单,用图标表示显示世界中的东西,而不是浸入式3D画面,因为当它占据了15度角的视野时候,浸入式3D画面的局限性非常大,它不是可移动的。而这次手机行业革命的技术,则是基于设备的便捷性从而让影响游戏行业围绕它进行。VR走的是一条完全相反的路,因为VR让你处在一个完全沉浸的环境当中、填充了你视野的120度甚至更多、尝试再现存在感,它需要比之前的任何东西都能将技术推向都远的游戏——这个游戏要有高帧率及交互。随着VR的进步和小型化发展,最终我们可以看到它会发展成为尺寸外型跟Okaley太阳镜差不多的东西,我们需要强劲很多的GPU性能来实现。我毫不怀疑未来移动端VR在低端GPU上运行的解决方案的成功的潜能,因为它们到时候就能跟现在的高端VR相当了。
图4.36
我认为所有重大的发展、前沿的游戏、利润,在未来至少五年的时间里只会出现在高端VR领域。
图4.37
在这个行业过去20年里发生的一件有趣的事情是,多人游戏,高端多人3D游戏在20年轻的Doom就已经有了,但是多人游戏在这段时间并没有改变很多。我们有了更好的画面、也有了跟大型的游戏,但是玩家在环境中行动、射击、利用低带宽输入设备的机制一直没有改变。
图4.38
我相信在未来2年内的改变将比过去20年更多,因为我们就要有完全互动的VR社交体验了。桌球国度Pool Nation(应该是VR版)之前做了一个很好的尝试,但在浸入式体验VR环境中,当你可以看到其他人的头和手到处在动的时候,你获得的感觉跟在多人游戏中的是完全不一样的。随着其他的输入手段以及更高精度的传感器的上线,这将变得更加的真实和有趣。现在我们有多达6个自由度,(乘以)3种输入设备,未来还会变得更多。想象一下你们的VR设备上有对外的摄像头(outward facing camera),它能捕捉你的手臂运动、手部运动、手指运动,以及对内的摄像头(inward facing camera)能够捕捉你的是面部表情,并将其转换为3D模型脸部的运动,它将改变一切。
图4.39
我想要分享一下我认为未来它将变成什么样的推断。这是一张由Ninja Theory构建的Senua表情,我们在GDC上进行了第一次实时运行展示。在跟很多前沿运动捕捉公司的合作当中,他们团队买了一个VR运动,呃不,一个通用的动作捕捉设备(motion capture rig)来同时捕捉身体运动和面部运动。这是个大屁股大家伙,非常昂贵的设备,世界上只有一个——所以你也没法在BestBuy上找到。我相信由于技术的支持,这类东西将来会迅速的变为消费级,传感器的进步会促进传感器的消费,能支持将相机输入转变为高水平面部、身体运动数据的深度学习,很快就会实时投入使用。我在这里想展示一下现阶段技术发展水平,运用这个完全不受约束的技术能做到些什么。让我们来看看这个短片。
短片画面自己看去吧
Hellblade: Senuas Sacrifice的短片,标题 Diary - Making a Virtual Human
声音来源1(轻声的):别动,别出声,躲起来,别转身。
声音来源2:他们的神消耗量你的意志,他们用它来消灭你。
女主角:他们无法阻止我,我还能感受到他。
声音来源2:他剩下了什么,他们永远不会放他走的。
女主角:我不会让他在这里腐烂的!
声音来源2:你是那个将要腐烂在这里的人。
女主角:我想静静。别管我。
声音来源2:你会死在这里。
女主角:不。
声音来源2:而你承受的一切毫无用处。
女主角:闭嘴!
(完)(观众掌声)
啊,谢谢。
这些都是实时捕捉的,而且我认为在未来几年内都可以变为所有人都能获得的消费级,而得益于此,开发多人游戏体验将会变得非常简单。不需要在大型环境下用20英里每小时的速度围着地图边跑边射击,取而代之的将是更紧密的体验,也将引领向全新的VR体验。对于这些新类型游戏来说,基本规则还没有被制定。在早期我们见过将一些人放在一个房间里讨论,然后大家相当快地就感到厌倦了,但是Pool Nation以及一些其他的游戏显示了,当你有很棒的转移注意力点,比如low brain bandwidth(低脑力带宽?)来限制讨论,你可以在这些VR空间里花上好几个小时,就像跟朋友出去闲逛、做些有意思的事情一样。我们会密切关注这一点。
图4.40
下一个话题是,对于未来10年左右的开发来说是怎样的。目前所有的已经达到消费级并能分销给用户的创新,都在VR领域,过一段时间也会应用到AR。目前来说AR头显都非常大,有一些很明显的局限性,但是慢慢地他们会缩小成Oakley太阳镜这样的形式,能让你浸入到单眼8K分辨率的全视野体验。开发一些技术将你在现实中看到的实际画面和计算机生成的图像进行无缝连接,会使得现实和虚拟的区别变得难以察觉。这将会是一个非常有趣的转变,因为AR设备会比任何电视机都便宜、因为它们会变得更小、使用更少的材料,成长到现在智能手机市场的规模。有人说在未来15年里,全球将会有40亿的装机量。就算目前来说VR头显的数量相对较少,还不到100万的高端VR头显,未来也会呈现指数型增长,我打赌在我们拥有数十亿用户之前,这个指数每年将会是3到4次方,这对所有人来说都是绝佳的机会。
在AR中,可携带性是体验的一部分,因为你会想要它跟智能手机一样方便,能随时随地开启并工作,但是毫无疑问的是,如果你想要专业的高质量游戏体验的话,你会用某种无线技术将它接上一台PC来获取那些靠移动端GPU能力远远做不到的真实体验来获取另一种体验。以上就是对这项技术和市场的展望。
图4.41
我觉得将这个技术落实到人类身上更有趣,一旦我们能将通过internet实时对人类及其情绪进行同时3D取样和重构,并达到了数十亿人的规模,那么其实在这个时候就变成了传送技术。Elon Musk(就那个Paypal、SpaceX、Tesla及SolarCity CEO)正在做超级高铁hyperloop,但是我觉得如果我们不离开家就能拥有同样的体验的话,可能我们就不需要它了。虚拟现实世界就是中心所在,而在座的人也将这个中心中。我们这些游戏开发者是行业中唯一知道这一系列各种不同的组件的人,来让这个交互世界能够运作。我说的并不是仅仅是观众中的VR开发者,而是所有的游戏开发者,都有这个知识和观念,而我们都会处于数字化真实世界进程的中心。这个想法起源于科幻小说,在行业中也已经酝酿很久了,它被称为虚拟世界Metaverse。
图4.42
你在『雪崩Snow Crash』和『钻石时代(The) Diamond Age』中可能已经读到过了,这两本书很有趣的书,而他们对未来做的预测都惊人地准确。在Snow Crash里,用户需要自行协调进入Metaverse的方式,所以在有一幕里,有人进入到电话亭里去召集别人。这就是他们对于这个纪元的科技预测。所有这些手段的终极目的是为了在虚拟世界创造社会体验,让人们感觉确实自己存在于那里。这一部分与游戏有关,但不仅仅是游戏而已,我认为这将是人类下一步发展的阶段——从石器时代的穴居人,到农业革命、工业时代,下一阶段将是无处不在的人与人之间的联系、过上不受到实物商品限制的生活,因为你在现实生活中所能拥有的任何东西都能在虚拟世界中重现。我非常感激各位让我在这做出一些胡乱的预言,让我能稍微具体地讲讲它牵涉些什么。
图4.43
这并不是一个,呃。我们能看到这是一个早期的3D多人游戏,而在未来这将变成公共的虚拟空间,人们能在那里实时会面,参与到活动中,比如游戏、社交、创建现实工作、学习、购物等任何事情。在某种程度上它会变成一个复制了现实世界的平行宇宙,只不过稍微有一些不同。而它大部分将会由用户来创造,因为它比任何一个内容商能创造的还要多得多。如果你去看看现有的最活跃的平台,比如Steam、Facebook或是Twitter,会有一个特定的经营者在中间做一些创造性工作,无论是Valve,又或是Mark Zuckrberg在Facebook上发表一些自己的看法,但是绝大部分内容都是由用户产生的,而我也相信这也是Metaverse的重要一面。创造这样一个世界同时也意味这会将真实世界中很多有争议的东西带入,比如说可能会有色情、犯罪、肆意破坏、骚扰,而所有创造了这些新媒介的人需要好好的想一想如何迎接这些挑战和机遇。
图4.44
在玩谈论更多之前,我觉得我应该先定义一下我假想中的Metaverse应该是怎么样的,因为很多基础现在已经存在了,甚至是存在了好几十年,当它们并没有被完全整合起来、形成接近最终体验的东西。我们在internet上有很多发展:世界上所有的人都能连接到其他任何一个人;有不断更新内容的网站,你可以使用超链接来回穿梭;SNS则察觉到了,嘿,死宅才会去做网页内容,我们实际上需要的是一个平台,让任何人都能参与进来,不需要成为专家也能发布他们喜欢的东西,并且通过分享来进行有趣的社交互动。所以我们将SNS作为那个想法的终极实现方式。而对于Metaverse来说,这仅仅是个起点。如果将那些层次都拿过来,再加上虚拟世界,浸入式3D环境,通过精确复制、忠实表达的用户面部和表情而增加的真实感,以及数字化人体模型技术来支撑起全部,我认为这是Metaverse的最低可行要求。如果实现了这些,再加上用户能在上面加入自己的数字内容,那么我们将会使这个新的媒介诞生,从而改变整个世界。
图4.45
Metaverse中非常需要改变的一点是现在应用apps模型,因为现在apps这个概念就是完全独立地理的软件包,它们独立成为单独分发的可下载的东西。从Mainframe一直到现在的智能手机这50年来一直都是这样的,不过现状马上将被打破,因为这些经历将会是很多不同用户之间合作完成的。每个用户不会仅仅是拥有一个头像、以及别的自定义内容,而是会拥有他们的房间、他们创造的区域、并且他们也想将这些加入到其他人参与的无缝环境中。这听起来可能像是在形容Minecraft,但实际上比它还要复杂得多。因为最开始的阶段往往是最有趣的,而更深入的阶段要求非常先进的游戏逻辑和所有其他的部分。我们需要弄明白的就是如何将这些软件用一种新的更模块化、有关联的方式组合在一起,而不是完全划分开的应用程序。
图4.46
不过最激动人心的是每个人都能成为某种水平的创造者。目前世界上大概有5000万的左右的数字内容创造者。每个玩Minecraft的人在某种程度上都是内容创造着,而他们都是从这个非常简单、低精度的程序开始的,而他们中最优秀的人成为这个新行业中的明星。在Metaverse中,不论你是否会成为一个认真的建造者,每个人都会参与进来,整理房间、拍摄下进行互动的照片或是影片,因为在虚拟环境中的自拍和在现实世界中的自拍并没有什么区别。很多工具也将被用于服务他们,比如为严肃的高端游戏提供的虚幻编辑器,或者说更像Minecraft这样的工具以及一些插件,来满足休闲体验的需求。
图4.47
Metaverse中也会有生态环境,这将会和现实世界非常不同,因为数字产品永远不会短缺,你不需要在地面上挖洞、找出铁、矿石,也不需要挖油井来造东西,它只会被创造力和想象力所束缚,所以在很多方面这将是一次自由的体验。而我们当中足够年轻的人也会期待在有生之年见到虚拟世界生态成长到跟现实生态一样的规模,因为到这个时候,在里面购买、创造、售卖和交易虚拟物品对人民而言将会有跟在现实物品一样的意义,未来的经济也会非常的有趣。
图4.48
不是我危言耸听(fire-and-brimstone part),我想要强调的是Metaverse可能变成一个乌托邦utopia,也可能会变成反乌托邦/敌托邦dystopia。我们很高兴生活在一个PC平台是几大竞争平台中最大的,而基础的internet是完全开放的技术。任何人都可以开发软件,任何人都可以分发软件,任何人都可以做不需要任何人许可的任何事情。我相信我们在过去的几十年中,看到了封闭平台比如Ios、Android、主机平台中发展到现在行业前列,也看到了在封闭平台这样良好的形势下PC平台出现了大幅的回缩;SNS入场,并构建了完全封闭的生态系统。我想指出的是,这并不是不可避免的,本来有可能会走一条完全不同的路,而我也相信在那条路下,我们会处在更有利的位置,但是现在想要改变这些可能太迟了。如果我们让这个我们一起创造出新媒介——集合了所有人类的这个共有在线环境Metaverse——成为了被一个巨型公司控制的封闭平台,那将是多么的悲剧。就像他们经常做的,他们会利用它给你们发广告垃圾信息,收集你的私人生活信息并卖给出家最高的人,成为所有用户、内容创造着者以及交易之间的中介,确保所有东西都要得到他们一定程度上的认可,而他们在所有东西上都要分一杯羹。我们真的需要作斗争,保持这些是开放的。即使是现在的Windows这样的平台也在受到攻击,我猜你们都听说过我过去因此而动怒,但是Windows有成为封闭平台的危险。作为游戏开发者,我们需要站出来反对,不然他们就会得逞了。
我认为伴随着AR和VR技术,这一点将会变得更加重要,因为这个媒介将会在我们生活中变得如此重要、塑造我们在这个世界中的社交和体验。不管是谁控制了它,他都会变得比任何现有的公司、政府还要强大。而如果我们能确保它是开放性的,那么我们就没有那样的顾虑。我认为我们需要一个协议和一个代码库,而不是一个公司。它必须是一个开放性平台,而不是竖起围墙的花园。顺便,我没有,而且我也不是在试图推销一个,我只是针对应该存在什么东西提出建议。
所以我认为可以是一个协议,就像internet协议一样,所有个人和公司一起分享,所有人都可以建立服务器、分享它,而且也有一些能用来往复分享数据的机制。(在VR这一刻)这样的协议还不存在,我仍然想对它会是怎么样的提出一些概要,因为这些在变得越来越清晰。我们需要一个实时的数据储存和传输协议,因为Metaverve至少会从数以PB计算的数据量开始,而且很快会突破EB(exabyte)大小,在这个量级上不断增加。有比如Amazon Web Service和Steam这样的集中式系统,也有非常有意思的分散式处理,比如BitTorrent让用户能每天字面意义上的任意几个字节的数据,这类中大部分都是灰色地带,不过也不是完全的违法,但是这是一个有效且成规模的系统。有个叫做IPFS(InterPlanetary File System)的项目非常有趣,它建立在群协议(swarm protocol)上,在顶层创造一个分布式共享文件系统,这样任何人都可以建立目录,自动复制他们的数据、储存到所有参与者的电脑中,这种方式也确实有效,而且甚至有一个更大的规模。
我们需要能支持这个的引擎,不是一个引擎,而是很多个引擎,因为我们希望所有的游戏引擎都能参与进这个共用环境中来,而不是迫使我们成为一个单独的供应商。当然,虚幻引擎会成为其中之一,Unity、Crytek以及所有其他的引擎提供这都应该成为其中的一部分。我们需要很多新特性来支持它,我们所有人都在致力于这个,它也在朝着有趣的方向发展。
在电子商务层面,我们有传统的系统,比如Steam有一个很棒的交易系统,但同时是也有一些分散式处理,比如Bitcoin以及区块链BlackChain用于构成交易的框架,不需要信任一个中央群体,是我们概念中的无人能制监察的开放系统的理想形式。
随着这个媒介的发展,我们要认识到的是,并不是所有的东西都是拟真的3D内容。传统的通信——比如通过文本聊天——仍会存在,因为有些人在Metaverse里,而有些人在外,他们需要交谈交流。到时候非常有趣的交流将会是人们如何进入、如何合作,而这些则都需要新的交流形式。我认为很多公司都会在这些不同的部分一起合作,问题本身过于广泛,所以没有一家公司是能单独解决的,所以我们需要开发一系列不同开发者共享的产品来开发一个开放的生态系统。其中一部分组件可能是商业化软件,另外的一些则不是、而是开源软件,不过组合在一起的整个系统对所有提供给的人来说是开放的。我们需要好好想想在确保它变成utopia而不是dystopia中,我们能扮演怎么样的角色。
图4.49
对未来我做了很多推测性的预测,我来总结一下。当这次革命结束的时候,在公用虚拟现实情景中,你可以在任何一个时候跟世界上的任何一个人出去闲逛,并感受到非常强烈的真实感;你所有的表情都会通过internet被忠实地复制进来;所有参与到内容创作中来的产业会结合起来;当你与建筑学模型互动时,它们会变为真实存在的空间,迈凯伦McLaren汽车的驾驶室模型会成为可驾驶的虚拟汽车;所有在在现实世界中存在的物品,都会在虚拟世界中再现;最重要的是,所有在这个新世界中的人都是创造者,而在这个房间里的各位,将会驱动这一次革命,这很让人兴奋,也很高兴我能成为其中的一员。
感谢大家的倾听!
(观众掌声)
5. STEAM 业务 101 - 市场营销功能与工具入门
By Tom Giardino (Valve)
嘿大家好,我叫Tom,我在Valve的Steam业务团队工作。今天我将要讲的是Steam 101,也就是你在Steam发售游戏时所需做的市场营销和商业决定的入门。
这次的内容是针对一些将发行游戏的新人,可能你将要发行你的第一或者第二款游戏,而我将要讲的就是你需要考虑的事情。这次演讲的很多内容的重点都会在一些特定的Steamworks工具和特性上,不过我希望你们最后能获取到得的,可以适用于无论你会在哪里、哪个商店、哪个平台销售你们的游戏。
促成我们这次讨论的其中一个原因是,我们看到在过去几年中很多人在Steam发行游戏,我就当你们都领会了DJ的关于独立游戏爆发式增长的演讲(也就是第二个),有许多人都是第一次将游戏带上Steam,也没有考虑过市场营销和商业选择,而我们也看到了很多有意思游戏仅仅是因为它们错过了一些非常简单的将信息传达给消费者、或是更有趣地呈现游戏的机会而很不顺利。所以我们会尽量指出一些误区,然后再检验一下能让你们用来解决这些问题的工具和特性。
图5.1
需要解释的是,这一段演讲绝不是:1. 一系列的介绍——所以你们获得的不应该是比如,这五件事情是成功的必要,事情不是这样的;2. 可以取代做好游戏的替代品——事实上,你们就算在商业和营销方面都做好了,如果你们的游戏不能让用户在游玩的时候产生共鸣、也不能取悦他们,你们也没做好最重要的事情;3. 这不是让你们某种程度上获得成功的广告技术探讨或是一些市场营销技巧,更多的是你如何要思考你有什么问题。
图5.2
这次演讲是:1. 对简单的商业和营销方面的Steamworks工具的基本介绍;2. 对容易实现的目标的指导,一些不需要化太长时间精力、但可以带来很大的影响的简单改变;3. 帮助你找到提出正确问题的建议,以及最后都需要回归的主题就是,你对你的游戏以及你的顾客是否提出了正确的问题,将影响到你能否做出更明智的选择。
图5.3
这些就是我们将要讲的内容的大纲。我们会先讲讲确定目标;然后是在Steamworks中你的游戏的构架、如何将所有组件区块一起运作和生成;我们也会看一些具体的商店页面内容,也就是市场营销的输出端,比如预告片trailer、截图;我们会谈一谈Steam Key,如何获取并明智的使用它们;了解Steamwork提供的各种特性,如何对此提出好问题;了解一些Steamworks上可获取的自助资源;最后再简单谈一些关于上线时间的建议。这些就是接下来我们要谈的内容。
图5.4
在你考虑将你的游戏放到Steam上之前,你最先应该考虑的事情是确定清晰的目标。很奇怪的是,有相当多的人——尤其是在他们着手的第一、二个游戏的时候——基本上都跳过了这个步骤。你想要跟用户分享确实是已经让人兴奋的事情,而你也立刻潜心开始做,但有时候花点时间更仔细地想想你的产品是很有用的。
图5.5
比如,你可能会想问和想设立的目标是:
成功到底是怎么样的?你的工作室中的所有人都知道意味着什么吗?如果你的工作室只有你一个人,那么你知道这意味着什么吗?成功会是怎么样的?你做好准备了吗?以及类似的,如果你没有立刻成功,你的团队会是怎么样的回应?你等待的周期可以有多长,以及你如何能更接近成功?
另一个问题是关于优先级。经典的例子就是,一个大概有四到五个人的团队在做一个很有趣的多人游戏,他们都在深入挖掘一些平衡人物、创建更好的地图、优化网络代码上面的具体细节,而现在需要发售游戏了,你才发现没人对于如何向顾客说明这个游戏、如何让游戏看起来有趣并展示给玩家建立一个社区上面有过深思。Valve并不会为你们提供答案,我们不是来告诉你们应该做什么样的游戏,也不是来告诉你们如何最好地服务顾客,我们做的是提醒你们,嘿,如果你们真的想要进步的话,你们该提出这些问题、为业务设立计划了。
图5.6
下一个我们要讲的是在Steamworks上,你的游戏的architecture,这是个很迷惑的容易让人多次迷失的话题。我们看到了很多开发者对他们产品如何呈现到Steam上而感到困惑,又或是做出些奇怪的决定,仅仅是因为他们对基础结构的原理产生了误解。所以我们会定义一些名词,并且来看看他们在Steamworks中是如何协同工作的。
图5.7
我们将用这张程序的发布页面作为例子,这个例子是一个真实的Steam游戏Worlds Adrift,在即将推出(Coming Soon)阶段,由Bossa Studio开发。非常感谢Ricardo让我们使用了他们的程序发布页面,在这里有所有的元素——你在Steam上的游戏、商店package、所有关联的App ID、编辑商店页面并设定各种特性、市场营销可视化(marketing visibility)工具、甚至是跳转向财务数据页面的按钮,这样你可以看到销量数据和报表。所有这些都在这里,我们也不会一条条的去看,但了解他们在Steamworks中位于什么位置是非常重要的。这张图就是用来了解每个元素的。
图5.8
每个在Steam上的游戏都有它的基础App ID,这个基本上就包含了所有,也代表了你的游戏。在App ID正下方就是内容坞content depots,也就是Steam通过服务器推送、让消费者下载游玩你们的游戏的内容区块。在这个例子里面这个游戏有为Mac、Windows和Linux的depots,如果你有非常庞大的本地化文件,在必要情况下也会有按照语言区分的depots,而将所有这些App ID和depots包括起来的,就是package。Package是消费者们从Steam商店购买或是从Steam key获取的东西。所以无论是我买了个游戏、或是激活了一个key,我往库里添加的是一个package,一旦package被添加了之后,我可以获得里面所有的App ID和depots。所有补充的App Id差不多就在你的基础App ID的侧面,比如说DLC;demo,如果你选择做一个;工具App ID,如果你独立出一个关卡编辑器,你可以用这个App ID。差不多就是这样的。
图5.9
有一个好消息就是,我们在Steam中有这些工具,让你能自己创建设定。如果你需要给你的多人游戏一个专用的服务器App ID,你可以自己做一个;如果你想要加入DLC,或者生成一个商店捆绑包bundle来将你的产品跟你发行的其他产品一起售卖,你也可以做到。
我们要附加说明的是,我们信任你为自己的产品做出的决定,我们也不会规定你能加入多少个DLC,又或是将你的游戏跟soundtrack、DLC、另一个游戏、续作等等放到一个捆绑包里,这些都由你决定;但是就像蜘蛛侠说的那样,『能力越大,责任越大』,所以有时候我们看到开发者会犯错误,我们也想提醒你们,在商店页面提供很复杂的报价,并不意味着提供了有价值的报价图5.10;而你们要问自己的问题就是,你能如何快速的告诉人们如何购买你的游戏。如果你要在商店页面用两段话来跟别人解释所有不同的购买选项和方式,那就已经是利大于弊的复杂度了。再说一次,你要慎重考虑如何运用这些工具来获得最大的好处。
图5.10
图5.11
接下来要我们要挖掘的是商店页面内容,这部分内容非常丰富。这部分也是你要生成和传达的具体营销输出,以及帮助消费者在Steam上发现你们的游戏的东西。
图5.12
这些都在商店页面编辑管理里面。同样的,还是Worlds Adrift App ID在Steamworks里的样子,你们当中应该有很多人已经了解。你有一堆标签页用来明确比如系统需求这样的内容,这里是你们进入游戏介绍的地方(第二个标签页)。关于商店页面我们可以谈很多,而今天我们会关注三个特定的标签页:Early Access标签、Graphical Assets标签、Trailers标签。如果所有这些信息看起来有点多的话,其实我们有发布了一个很棒的新手指南视频,来依次指导你如何创建商店页面并做一些权衡,而现在我们会将重点放在这三个最大的区块。
图5.13
第一个是Early Access。我们能很轻易地就Early Access做一个一小时的presentation,而实际上也是,如果明天你过来的话,这个房间里会有个已经体验过的开发者的见面会,他们会跟你分享他们的经验教训、起伏、Early Access的好处以及什么是富有挑战性的。很重要的一点是,有时候人们对Early Access的反应就像膝跳反射一样,觉得Early Access游戏就是一些特定的方式画大饼,但是我们发现事实上对开发销售游戏来说是非常一种非常成功的途径。如果你们关注了任意几个礼拜或者是大型周期性促销期间的Steam销量榜,你们会在里面看到很多Early Access游戏。这并不是说Early Access可以让一个游戏销量更好,而仅仅是说明如果应用得当的话,这是一个让你慢慢开发出一个不断变好、并让社区也参与其中的游戏的好方法。对你的团队和工作室来说,是否要参与Early Access是一个非常严肃的问题,我们也不会帮你做决定,决定权在你手里。跟很多别的特性一样,开关由你来控制,你只需要勾选一个选框,然后你的游戏就会处于Early Access了。Early Access中间过程就跟我们谈到过的那样,你们需要提出一系列的问题,然后在此阶段得到合适自己的关键性答案。如果你在商店页面加入了这个标签,但仍然很难就之前的问题得到准确信服的答案,那么就可能意味着要么你的游戏不适合Early Access,要么你需要回到企划阶段对主题再进行一些考虑——这是另一个我们觉得你应该考虑的问题。我们见到的一些开发者常见的误区和错误是他们迫不及待的想要推出游戏,将它呈现到消费者面前,发售48小时后,当他们听取到反馈、看到媒体评测,他们会想『噢,其实这个游戏有很多需要打磨的做得很粗糙的地方,也有些我们团队还想做的内容,或许我们应该把它放到Early Access阶段。』如果你在按下发布按钮之前有过仔细的考虑,或许你就可以拯救自己,让你的顾客没有那样的困惑与失落。这并不是说你非要以Early Access形式发布,也不是说你也不能用Early Access,而是意味着别的,你需要考虑自己的顾客、自己的产品以及目标,然后专注于这上面。
图5.14
接下来这部分就是在商店管理页面的下一个标签,Graphical Assets,这个是顾客能看到的贯穿整个商店的图片。它们是主要的营销资源,可能比起任何你制作的别的东西被看的次数还要多,所以准确无误的了解非常重要。虽然你可能会觉得,类似于『我们需要雇佣一个广告团队』,有或者是『雇佣五个设计师来设计出完美的capsules』这样的想法很诱人,但是实际上并不是这样的,你可以是低精度的low-fi,优秀的capsule art也可以被小团队做出。你只需要考虑几个基本的东西,比如最明显的就是想一想这些capsule被看到的场景是怎么样的。
图5.15
这是一些在Steam上处于Coming Soon列表下的游戏,这是一张截图,用来展示他们在队列中看起来是怎么样的。这些就是我们所说的『small caps』,他们是最小的capsule尺寸。重点在于,当你们看到它们的时候,我不是很了解你们在下面能看的多清楚,其中有一些立刻就脱颖而出了,你们也可以清晰容易地读出游戏的名字,而其他一些可能游戏非常好,但是很难分辨名字,尤其是在这样的环境下。我们要做的建议并不是说像Bossa这样做一个红底白字的capsule,而是让你们考虑一下可辨认性、你们游戏的名字是否是能立刻辨认并读出来的、以及是不是一致的——比如在你的游戏在你的网页上、Facebook等社交媒体上以及零售版本的封面画都是怎么样的——确保每个地方你的品牌都在某种程度上是一致的,而这才是capsule art最重要的地方。最容易的方法就是,当你准备提交capsule art的时候,或者就在现在想一想你的游戏,问问自己『我的capsule是这样的吗?』、『当有人在手机上或者很小的笔记本电脑屏幕上看到你的capsule art的时候,他们能否在最小尺寸上也能读出名字?』、然后再想想『它和我在线上和线下展示的样子一致吗?跟我的社交媒体、网页等等匹配吗?』
图5.16
我们来看看一些具体的例子。左边的capsule来自于Flashman和Bongfish开发的Calibre 10 (Racing),他们允许了我们拿这个作为一个例子。当他们第一次提交了这个capsule art的时候,我们立刻给了他们反馈:『基本看不清你们游戏的名字,很难阅读其他所有的额外的文字信息、我们也完全无法感觉到这个游戏是个啥』。只要你提前发现了这些问题,其实修复起来很容易。右边的capsule来自于Chuckfish开发的星际边界(Starbound),他们做了很多很简单,但又很有效的内容。首先就是logo,这个用一个太阳来表示字母O的Starbound logo,在他们的市场营销中随处可见,这就很容易认出他们的品牌;而且即使在最小的尺寸或是最小的分辨率下,你也可以立刻认出这个游戏叫做Starbound。如果有人只听说了一次你的游戏的名字,或是听朋友谈到了这个,又或是在半年前在YouTube视频里看到而现在终于发售了,你会马上想要他们将之和你的游戏联系起来,干净、可读、和品牌保持一致。
图5.17
下一个话题是Trailer,同样的这次也是在下一个标签页中。对于营销输出来说,他也非常的值得你考虑的,而且工具也非常的简单。在这里你可以很简单的将视频拖入,给它取个名字,我们会在工具上告诉你要上传的文件的分辨率、文件类型,你可以重新编辑,你也可以加入字母和本地化文件。这是一个非常简单的工具,而我觉得它跟Steam上很多别的东西一样,由于实在是太简单了,人们用它的时候可能不会想得太深入。Capsule art也差不多。你需要对哪里能看到trailer以及它的内容上有过深思熟虑。
图5.18
让我们看看现实中Steam上的trailers是怎么样的。在很多情况下,你的trailers会在处在这样一个背景下:有些人通过点击探索队列discovery queue,然后他们就有这样一个小的绿金色按钮,可以用来进入到下一款游戏来看看有些什么评价如何。用户的注意力持续时间相比较以前更短——这已经不是秘密了——尤其是在线的时候,所以你可能只有不到10秒的时间用来给你的顾客留下印象、吸引并保持他们的注意力。你肯定不会想浪费这次自我推销的机会吸引一些人。所以你们就可以问问自己,对照一下你们上传到YouTube或是Steam页面上的trailer,如果用户只看开头的五秒,他们会知道任何关于这个游戏有趣的地方吗?另一个问题就是,如果他们在静音状态下看你们的trailer又会是怎么样的?他们还能了解你的游戏吗?因为很多视频就是在静音状态下播放的。接下来几张幻灯片,我会展示一些视频例子。第一个我要展示的是一个很好的例子,这是个很好的游戏,如果你看了整个trailer,可以看出它是精心制作的:有很棒的音乐、很有氛围,但是大量的消费者永远也不会看到这些。Trailer来自于死亡效应2 Dead Effect 2,获取了开发商Badfly Interactive的允许。
截取的Trailer略,其实很短没啥内容。
图5.19
我们不可能放整段的Trailer,你们可能注意到了我在里面加了一个『19 seconds』图5.19,19秒,是我在了解除了开头一些片头以外任意内容所要花的时间,在很多情况下这段时间太长了,这是个非常棒的游戏,在这个trailer里面也讲了一个很棒的故事,而大部分有价值的内容都会被大量消费者错过。同样的,这也是一个你们不需要雇佣市场营销团队,或是有25个人花3个月时间在电影技术上,实际上通过移除这些小碎片,而专注于考虑你要呈现给别人的内容,你可能明天就能做出更好的trailer。相对的,下一个trailer在一些我们还没讨论到底地方做的非常好,它迅速的吸引了你的注意力、马上就向消费者讲一个故事。这个trailer来自于Renowned Explorers,开发商是Abbey Games。
图5.20
Trailer及语音内容略。
同样的我们不会看完整的trailer,有一件Abbey Games做的非常好的是,他们立刻明明白白的告诉我们这个游戏是个啥,以及玩起来是怎么样的。及时你没开声音,也能立刻看到菜单、交互、以及在这个游戏里要做什么的感觉。另一个我觉得他们做的非常好但是容易错过的是,他们在开头的15秒里就放下了一个小的narrative hook(不知道用中文怎么表达,类似伏笔这样?就是吸引人注意力的叙事):先将游戏介绍给了你,你准备在这个岛屿的新区域探索,但是紧接着『等等,让我们先转到下一个话题』。这样就有了一个可以之后再回头介绍的hook,给了消费者一个继续看trailer的理由。
我们已经看了这两个trailers了,之前我们提到的问题值得我们记住:1.如果一个人看了我的trailer中的5到10秒,他们能知道任何关于这个游戏有意思的东西吗?他们会想了解更多,甚至是自己尝试吗?2.如果他们在无声条件下看了trailer,他们还能知道发生了什么、以及为什么这很有意思吗?
接下来我们要讲的是市场营销marketing和可视化visibility。这是你的应用登录页的另外一部分。如果商店页面更多的是关于呈现到消费者面前的内容,那么市场营销和可视化部分更多的是从系统中获取数据。
图5.21
在应用上线页面这是一个专门的部分,对你们而言是非常有价值的数据,而且你们也可以在这里找到一个很棒的工具,叫做Update Visibility Rounds。我们首先要看的是从这部分能获得的流量分类traffic break down数据,之后我们会再看看Update Visibility Rounds。接下来几个幻灯片中的数据来源于Valve游戏传送门2 Portal 2,这个功能推出还没多久,所以除了我们自己以外没有别的数据。
图5.22
Traffic break down就是像这样的一个图,这个工具非常棒,它们不仅仅展示了原始数据,而且你能按照时间进行追溯,将它们氛围不同的部分,让你能知道有多少是来自于搜索——从搜索你的游戏的人那里——;商店页面浏览量的多少是来自于首页,或者是你在促销时的特殊区域之类的。这是,(观众打喷嚏),bless you,这是一个非常好用的视角,来看你的游戏随着时间变化的曝光度是怎么样的。在这张图里没有显示出来的是,在时间轴里你可以输入以想要的日期,这样你就可以看这3个月或者6个月里的数据和变化了。
图5.23
在这张幻灯片里,对数字和比例进行了更深入的挖掘。你们不需要为看不清楚这些数字而担心,重点是如果你们想要进行一些实验,试图量化某个因素,这一块非常有用。比如说,你为市场营销花了钱,而你想要知道多少钱转化成了浏览页面量,你可以在这里轻松的跟踪到。再比如有一个YouTuber谈到了你的游戏,或者是你去了一个会议、然后台上的人告诉你可以做更好的capsule art、而你也改了它,这些东西都有意义吗?你有没有因此从这些地方获得更多的Steam点击量?
接下来这一部分是Update Visibility Rounds。
图5.24
在交流一些特定的内容更新的时候,这个工具非常的有用。你的游戏在发售了一段时间之后,你想要推送重大的补丁patches,这个非常容易用。你需要在你的社区中心发一个通知,来详细介绍更新中的主要内容,然后你到这个界面,点击『Start Visibility Round』,这样你就可以将你刚刚做的更新与你在Steam商店里的内容作出可视化的配对。
图5.25
这就是在Steam里实际的样子,这三个是非常好的例子,Intrude发布了新的关卡编辑器,Spacejacked加入了故事模式和简单模式,Stardew Valley发布了1.1版本、加入了一系列特性。这就是我们觉得非常值得告诉消费者们的内容、让他们兴奋。新进开发者们共同的误区和有时候会犯的错误是,他们会发布补丁说明,然后就觉得够了。并不是说发布补丁说明不好,它们可以很好,你的专用社区可能会很喜欢这个,涌入进来看你做出的更改,但是补丁说明不会是一个非常吸引人的表达方式,它们没有讲一个故事,也没有标题。它们不是一个故事。所以你们需要问问自己,如果有人完全不懂你的游戏,之前也没有听说过,看到了这次的更新,他们能理解为什么这很棒很有用吗?会给他们一个理由参与到你的游戏里吗?类似地,如果我将更新发到媒体上,想要新布局,它们的标题会是什么?他们能在这基础上做出更诱人的东西吗?如果你在更新中构建了一点故事,将它们一起打包到一个重大补丁中,这才是非常特别的。
图5.26
接下来要谈论的是Steam Keys。我们在市场营销方面已经谈论了很多细节内容,而是一个非常有用的工具,用于考虑如何在你的游戏发售前授权提前访问,以及如何在别的地方售卖你的游戏。Steam Keys非常简单但是容易引起误解,所以我们想要为各位澄清的是,Steam Keys是免费的,Valve不会在你请求keys的时候收取任何费用,我们也不会在key被最终用户激活的时候收取专营费用。它们是完全免费的Steamworks功能,你可以利用它们来帮助运作你的业务、帮助你找到你的顾客。
图5.27
这是Steam获取keys时的实际界面。你会有packages的列表,你能对你做出的请求加上tag,然后你就可以输入你想要的keys的数目。顺带一提,packages,你可能还记得它们来自于几张幻灯片前,就像你递给顾客的容器一样,让他们能获取到你的App ID和depots。
在这个例子里,上面的这个黄/金色的package是一个发布后将会撤销的package,这是一个专门用来给提取发售前授权版本keys的,来满足提供给QA测试者、媒体拷贝、Youtuber等等这一类情况。这一类通常你会请求获取一个非常少数目的keys,并谨慎的分发出去。
第二个package是普通的商店package,也是你用来比如,附带一个Steam Keys的盒装零售、在自己的网页或者其他商店卖Steam Keys,所获取的keys。
一个很重要的教训是,你要记得给你的keys加上tag,这个例子中,我不确定我能不能很好的传达给你们,我从下拉菜单中选择了YouTubers这个tag。我在获取keys之前给它们加上tag的原因是这可以帮助我追踪它们在未来的情况。Steam内置了key激活情况的追踪系统,所以你可以根据tag和国家来看你的tag都在哪里被激活的,而这个功能就在产品的财务页面直接可见。这个工具对追踪你们的库存非常有用。
图5.28
这就是它的实际的样子。这是你能在产品数据页面中能看到的一部分,它显示了你所选择的tag,以及这些keys在什么地方被激活。如果你运营部分业务在零售或者是别的商店,这是一个经典的例子。加上你有一个在日本的零售合作商,而你提供了1000个Steam Keys放入到将要在东京货架上售卖的盒装版中,你请求获取了这些keys,给他们加上了tag,将它们发出去,然后你就可以在产品端跟踪它们的激活情况了。如果你发现你把这1000个keys都发到了日本,但是却都在南北美激活了,你就知道这中间出了差错。它给了你是数据让你回过头去说,『这些keys是怎么在运输过程中丢失的?』又或者是『为什么它们最终都到了计划外的地方?』这给了你一些关于你的keys都去了哪里的说明和数据。如果你要求了一大批的keys,然后分发给不同的零售商,那么就没有办法跟踪哪些keys是在哪里激活的了,对你而言会很难受。
图5.29
我们再谈一谈在别的地方售卖游戏。Valve从来不认为你只能在Steam售卖游戏,你应该在消费者会买你的游戏的所有地方售卖。不要限制你的消费者的选择,也不要限制你的商业机会。如果你想要在其他地方通过Steam Key售卖你的游戏,对于它们为你的业务做出贡献实在是太棒了;如果你不想用Steam Keys,那也没关系。
图5.30
有一些经验我们想交给你的是,实际上这是一个双关,5 key lessons(5个关于Key的经验/5个关键的经验)。
图5.31
第一个就是,虽然keys是免费的,但是它们仍然有价值。如果因为你能不花钱就获得keys而觉得它们没有成本,那么你就大错特错了。如果你不深入考虑如何分发你的keys的话,实际上长期情况下他们会对你的业务产生危害。一个很简单的首当其冲的问题就是,对每个人来说这些keys值多少刀?如果我以10刀售卖我的keys,然后我获取了1万个Steam Keys,那就是10万刀的库存价值。好好想想那些美刀、欧元、英镑、或者随便什么单位,这会促使你考虑,这对你的业务到底意味着什么。
图5.32
第二个就是,只请求获取那些你需要的keys。你需要对你请求获取的keys的数量保持明智,如果你在其他商店或是自己的网页售卖keys,你可以先想想如下问题:在这个商店一个月内合理的预期是多少?我可能会用掉多少keys?一个月我应该请求多少个keys?这样你就可以明白你的业务是怎么样的,如果你需要更多的keys,你可以随时轻松快捷地免费获取。对需要的keys的数量保持明智,这样你就可以保护自己的业务,将风险降到最低。
图5.33
你也要对下游开销进行考量,尤其是在你游戏发售前分发一些发售后失效的keys。你需要问自己,这些keys最终会在哪里?我能知道是什么人得到了我的游戏key,然后下一步又会去哪里?在未经我的允许下,它会是怎样被再售卖和使用的呢?你需要在给出keys之前仔细想想。而在这个地方,有很多工具可供你使用,特别是针对媒体拷贝和发售前测试keys,事实上你可以做到判断是谁收到了你的keys。
图5.34
我身后的这个工具,Dodistribute.com,由Vlambeer制作,他们本身也是个游戏工作室。这是一个非常简单的途径,来确认你提交的keys最终到了认证过的媒体那里。类似的工具还有很多,你不是非要用这个,这个不是Valve做的,不过可以帮你解决这个问题。
这部分的问题就是,我是不是已经确定过对话那一头的人是谁?我知道接受这个key的人是谁吗?我有没有办法追踪它最后的位置?
图5.35
最后一个就是要记得在获取到Steam Keys之前问这些问题,而不是之后。有时候合作伙伴会在分发Steam Keys的时候碰到有很多让人沮丧的、费时的问题,而你最好将这些时间和经历在你的顾客身上、做一个好游戏、想想如何发展你的业务,而不是去解决在一开始就很容易避免的问题。所以在你获取keys之前就问这些问题,而不是分发出去之后。
图5.36
下一个话题。我们来谈谈游戏特性——这个谈论起来很有意思。我们要讲的不是技术上一步步教你如何整合Steam特性,而是给你们一些建议。Steam 201,这个房间里的下一个演讲,会有一些来自于有经验的开发者的有趣的内容和建议;而且SDD还有很多关于这类的其他演讲,比如Steam手柄、Steam库存服务。所以只要你想,你就可以详细了解。
为了讲这一部分,我想要回到开头的位置,想一想你们定下的目标。你们想要完成什么?成功是怎么样的?再问问你自己,在现有的资源、团队规模、想要发布的时间情况下,什么是可行的,我能做些什么,而最有价值的又是什么。
图5.37
想象一下你的游戏,你可以从很多特性中受益,有一些特性非常基础,而另外一些稍微复杂一点。有些新进开发者容易犯的错误是他们觉得这是一个算术问题,你可以从他们问的问题里发现,开发者们想知道多少百分比的游戏使用了Steam创意工房,『哇哦,那是不是意味着我的游戏也要创意工坊?』『如果我加入了steam交易卡牌,我能多卖出多少份?』等等一系列的问题,『如果我加入了这个特性,Valve会在复活节促销的时候feature我这个游戏吗?』这实在不是我们平台考虑的方式,也很有可能对你们来说也不是一系列高效的考虑内容。举个例子,我们会会看到很多不同的游戏,以及它们应用的不同的特性。这并不是,呃,并没有特定的甲乙丙特性进行神奇组合之后能让你的游戏更成功,你要考虑的是你的游戏和商业上的目标是什么。让我们来看一些游戏。(黄色的应该是代表加入的feature)
图5.38
这个是Osiris: New Dawn,在不久前刚刚以Early Access形式发售的一款游戏。这是一个多人在线游戏,而且现在也处在Early Access阶段,所以不管怎么样他们都有很多工作要做。他们几乎没有加入Steam特性,也没有很多的修饰,他们目前在为消费者尽力做核心游戏体验。它并没有特别多的东西,不过这也并不意味着所有游戏都应该是这样的。
图5.39
Cluster Truck也是一款最近推出的游戏,这个游戏更依赖于排行榜、让每个人做自己的关卡,所以他们选择加入的特性对他们的游戏来说就显得非常有价值。
图5.40
另一个例子是Hover Junkers,这是一个在Steam上获得巨大成功的VR游戏。同样的,它们也有跟别的游戏完全不同的一系列需求,所以他们选择的特性也是完全不一样的。
图5.41
还有一个很有趣的例子是Unturned——一个Steam上非常成功的f2p游戏,这个游戏中加入了很多特性。他们加入了库存服务、交易卡、仍处于Early Access阶段、光卡编辑器、Steam云存档等等,他们从所有这些特性中受益,但是在他们刚刚发布这个游戏的时候,这些特性并不是都有的,而是随着时间慢慢加入的。
你需要问自己的问题实际上是,『哪些特性对我的目标和消费者来说最有价值?』
图5.42
可喜的是Steam刚刚好就是为这个设计的,让低成本、低风险的迭代成为可能。你们无需雇佣一个30人的团队来完成这个目的,在很多情况下,Steamworks已经免费提供给你们了。你可以尝试并了解这些内容,虽然并不是所有的这些都会成功,但这也没关系。我们想让你们这样的游戏开发者能够快速地有创造性地迭代产品,而不用冒太大的风险。
图5.43
到这里,我们提到的信息量已经很大了,这已经关系到商业选择和Steamworks工具的宽度和广度了。如果你开始觉得有些让人望而却步,完全没关系,还有很多你可以在现在以及发售游戏的未来都能依赖的良好的自助资源,随时得到指导。
图5.44
其中最有价值的是一个文档资料documentation。这个下拉菜单在每个Steamworks页面都可见,如果你被难住、需要帮助的话,你可以在这里获取这个文档、或者是联系Steam发行——一群像我这样的人。这些特性中有一点非常有趣的是,我们使它足够简单,让一个单人团队也能控制利用,但是它们同时也要强大到世界上最大型的多人在线游戏也能使用并受益。所以这样一来,我们就尽量构建出了足够的文档和资源来帮助人们解决问题。
图5.45
我们也有一系列的教学视频,之前我提到了它们中的一个,他们在这一页底部的URL地址上可以获取,或者你也可以Google搜索『Steamworks developer tutorials』,我确定你们可以找到它们的,他们全都是是公开的。他们讲了很多种类的东西,比如第一次加入DLC,发售后如何添加别的平台支持比如加入Mac、Linux支持,创建你的商店页面等等一系列基础的东西。这些视频非常棒,2014年的SDD也有很多视频,而这次会议的所有演讲我们也进行了录像,大概在几周内,所有的演讲也会上线了。所以如果你们本来想了解的是Steam手柄,但是你来到了这里,没关系,你还是可以看到那次演讲的。
图5.46
Valve也会在Steamworks主页定期地发布一些公告,我们会将大新闻自动发送email给所有的Steamworks伙伴,在Steamworks主页的右边也有近期Steamworks公告的流水账。这就是我们交流的方式。如果有预计的工具暂停时间、大型促销活动的到来、其它的一些改变比如我们要加入新货币支持,而你需要提交定价,我们会用这个地方来交流所有信息。在你们每次登入到Steamworks的时候看一看,能让你们对将要发生什么保持到最新。
图5.47
还有一个很好的彼此联系的方法是通过Steam开发者论坛。那里有很多我们需要的资源,他们可能已经解决了你们正在纠结的问题,又或是克服了上周搞得你很沮丧的问题。我认为在这里一直到在开发者论坛中的问题是双重的。第一个就是,你是要重新发明轮子吗?这是不是别的游戏使用了类似或者稍微有些区别的工具已经解决了的问题?这样你就可以借鉴他们的知识和专业技能了。另一个是这个反馈对我的顾客和游戏来说,有多大的关联性?每个游戏都是不同的,所以你会想将你从别的开发者那里得到的信息和建议,用你们自己的产品进行过滤。开发者论坛也是一个可以用来联系Valve的途径。根据话题的不同,会有不同的雇员审核不同的论坛,在出现的时候帮助你们解决问题。
图5.48
我们要深入讲的最后一个话题是关于发行日期的一些简短的建议。对所有开发者来说,这是一个压力非常大、也非常让人兴奋的日子。而你需要记住的是,这是起点,而不是终点。
图5.49
如果你在周五下午发布你的游戏,你可能会度过一个漫长的周末,因为你在发布游戏的那天会被很多未预料到底问题、正面的刺激、紧张的瞬间所包围。如果你是认真地为你的顾客做一款优秀的产品的话,你们你们在发售日发布的游戏肯定不会是你能做到的最好的程度,对吧?你会不断发布补丁,让它变得更好,随着时间不断加入更多的特性和内容。所以请记住发售只是起点,你需要准备好接受可能接下几天来就需要做的工作量。
图5.50
最后一点建议是,保持冷静,更新你的游戏。当我们发布东西的时候,不管它们是什么,比如开一次会议、进行一次优惠、或者是发布一款游戏,很容易就会忘记这个建议。每个人都会这样,不管这是你的第一还是第十款游戏,你需要积极地成为过程的一部分,无论你是一个单人团队、一个20人工作室、又或是一个大型发行商,你需要仔细考虑你试图完成的是什么,以及前面所说的行动是不是让你更接近你的目标了,抑或是反而更远了。很多时候在发售日,人们会手忙脚乱、变得如此紧张,以至于他们会做一些反生产的事情。在很多情况下,倾听你的顾客、观众、媒体、或者别的什么,对你的产品做出迭代改变,会比其他的方法更高产。
图5.51
最后一点,用来留下一个乐观的氛围,是牢记在任何一个平台做一个游戏开发者都是一段很棒的时光,同样成为一个PC游戏开发者的时光也很棒。如果你看过这里之前幻灯片,你应该已经看到了一些关于Steam发展到有多快的图表,不仅仅是游戏的数量,也有消费者花费的时间和金钱。这是一个成为游戏开发者非常给力的时候。科技进步的越来越快,有很多新的平台和尚在开发中的领域——无论你做的是VR游戏还是传统游戏。这是一个你们能进入并利用的巨大的开放市场。勿忘初心,我们作为Valve人员热爱游戏,我们确信我们的顾客也热爱游戏——从他们的各种行为中能看出来——,我们也确信你们热爱游戏——不然你们也不会在这里了。当你致力于你的产品的时候,请记住这些,记住成为PC游戏开发者的时光多么美好。
谢谢大家来到这次会议,来到这次演讲,我希望它值得你们付出的时间和有价值。如果你对这次演讲或者是整个活动有反馈和问题,我会阅读所有发送到地址steamdevdays@valvesoftware.com的电子邮件,我很期待收到你们的来信。如果你在接下来的会议中看到我跑来跑去,请追上我,跟我问个好,然后问我问题。再次感谢参与,保重!
(观众掌声)
6. Steam控制器
By Lars A. Doucet (Level Up Labs) and Jeff Bellinghausen (Valve)
这次没有掌声
(Jeff部分)
我叫Jeff Bellinghausen,在Valve的Steam手柄团队工作。今天,Lars和我会讨论将Steamworks手柄API集成到游戏的好处,以及如何利用它简化输入代码。我先做一个简短的业务概况开始,然后讲一些技术集成的注意事项,之后的部分我会交给Lars详细的讲一讲API。最好如果我们还有时间,我们会做一点Q&A,如果没时间的话,你们也可以在外面找我们聊,向我们随意提问。
图6.1
当我们设计Steam手柄的时候,促使我们选择触摸板的一个原因是,它可以通过软件实现完全的虚拟化,来模拟DPAD、Joystick和鼠标。自从我们发售手柄以来已经过去了整整一年,这段时间里我们在Steam推送了72次加入了特定手柄功能的更新。其中一个重大更新我们称之为『activators』,这个更新使得玩家能将行动与松开按钮——而不是按下按钮——,或是与长按按钮的操作相结合。
另一个更新中我们加入了行动集action set功能,你可以定义多个手柄上的配置并且玩转它们。比如你在GTAV里,你可以有一个用来走路的配置、一个用来飞行的配置、和一个在系统菜单中使用的配置。
我们马上将会发布添加非Steam手柄支持的更新,第一个是PS4手柄,人们不需要通过驱动或是第三方软件就可以直接拿它跟PC配对,并可以使用所有的Steam手柄的配置选项,包括摇杆和触摸板。
这是一小段的demo视频。(视频略)
图6.2
这是用Steam手柄玩Doom,你能看到他在用摇杆控制瞄准——在FPS游戏中非常流行。
图6.3
之后我们切换到使用PS4手柄,你们可以看到UI介绍了正确的输入和输出。所有你朋友在创意工坊里分享的配置选项也都是可用的。
我们会在之后也持续更新手柄。
我们非常开心的看到Steam手柄为广大的消费者所接受,在Steam上有81%的好评率,在Amazon上有4.2/5星,发售后登上了Steam手柄(应该是口误了)畅销排行榜,玩家也在向创意工坊上传了超过120万个游戏内配置。
图6.4
6月的时候我们宣布了Steam手柄销量到达了50万,而这发售一年来我们也快销售了100万台,Steam手柄也积极参与了很多促销活动,比如Steam特卖和几周前的特定手柄特卖(指的是上图右边那种捆绑游戏)。很有趣的是,我们在这些特卖中发现它与软件的销量反应非常相似,我们在发售硬件的时候并不知道具体会是怎么样的。
现在已经有了良好的装机量,接下来我们会专注于让支持手柄的游戏更容易被发现。比如我们会将一个现在玩的最多的Steam手柄游戏列表放到Steam上,这样所有已有的以及将来的手柄用户知道买哪些游戏。我们会为手柄体验优秀的游戏提供更好的曝光度,我们也会做周期性的针对手柄的特卖,强调和打包售卖手柄支持良好的游戏。
图6.5
自从发售以来,Steam手柄和Steam Link的销售被局限在美国、欧盟和加拿大,不过我们会**到东欧、东南亚、拉美和大洋洲,其中一些已经上线了,剩下的也会在未来几个月内上线。
图6.6
接下来我要探讨的是Steamworks手柄API以及,这对你们开发者来说意味着什么。
为什么你们需要使用Steam手柄API?
图6.7
其中一个原因是我们有这个Steam手柄配置UI可供你们在游戏内使用,而不需要你们自行编写UI。这意味着玩家能以自己的风格完全自定义他们的手柄,而你会发现他们会做出一些你们之前完全没有预料到的事情,比如我们看到人们做出(上古卷轴5)天际线的单手配置来方便使用。我们会继续加入新手柄的支持,甚至为不同的手柄提供游戏内提示的材质,这样加入所有主流手柄就会变得很简单。当你集成之后,你也会从所有未来的更新中受益。比如我们加入了新的触摸板模式、特性、滑块等调整,你不需要碰你的游戏代码就可以免费获得。同样地,未来加入的新手柄也是这样的。
希望在今天的以及之后Lars的演讲中,你们会非常兴奋的要加入这个API集成。不过要是你不能的话,我有一些可以指导原则,来让你甚至在不用这个API的情况下也能让手柄操作更好。
图6.8
很多常见的Steam手柄配置,比如Doom使用的那个,使用手柄来走路、射击和装填,但使用鼠标来控制镜头,所以你的游戏能同时支持手柄和鼠标输入非常重要,这就意味着你不能在一个运作的时候锁住另一个——这时有发生——;同时你要确保游戏内针对上一次输入的提示不会来会闪烁。一旦引擎运转良好,你需要做的就是到Steamworks合作伙伴网站,输入你们的信息,确保你明确了游戏的默认配置。你可以选择已有的样板,比如标准游戏手柄——如果适合你的游戏的话——,但更好的是你进入到游戏中做一个配置,然后保存下Steam创意工坊文件ID,将它放进这个网页,然后玩家就能在打开游戏的时候自动获取到你的配置。这些就是我的开头部分,之后就交给Lars,他会就API详细的进行探讨。
(观众掌声)
图6.9
( Lars部分)
图6.10
好的那么,我是谁?以及为什么你们需要关心这个?我的名字是Lars Doucet,跟Jeff不一样,我不是Valve员工,而跟你们中的许多人一样是一个独立游戏开发者。我的公司叫做Level Up Labs,我们做了一个叫Defender’s Quest的小游戏,我也为一些开源项目做了些贡献。我做的最多的有:编程语言Haxe、跨媒体库OpenFL、以及常见的2D开源游戏框架HaxeFlixel。我也在Gamasutra写了一些文章,可能你们之前也读过。这就是我。
我要做一个简短的航班安全须知短片(吐槽自己练了无数遍这样),大概30秒的时间就好。我患有杜尔雷斯综合征Tourette Syndrome和narcolepsy(嗜睡症),结合我现在不得不做一个公众演讲的情况来看,这是一个很有趣的组合。以下just FYI(For You Information,仅供你参考):如果我像条死鱼一样倒下了,我的哥们儿Jeff会照看我的,你们也不需要叫救护车,我实际上没事;如果我有了面部的抽搐,或者是做了什么奇怪的行动,又或是突然的有了奇怪的超人格爆发,其实我不是一个可怕的人,我只是脑子有一个奇奇怪怪的病。无论如何,让我们开始吧。
图6.11
谈到Gamasutra文章,有个叫做Zach Burke的人写过一篇叫做输入的五条黄金准则的文章。如果Zach在这里,你真棒;如果你不在这里,你还是好棒棒。Zach,为Zach鼓掌!(观众掌声)我没有足够的时间来讨论这篇文章,不过我会告诉你们这五条黄金准则是啥,而这五条也确实能让输入系统不那么糟糕。
首先,你的游戏内提示图标要跟你的设备匹配,如果它说『按下A开始游戏』,最好在你的设备上有个A,而且最好跟设备上的长得一样。如果我有个PS手柄,我不想看到『按下A』,我想看到的是『按下X』,等等等等。对于键盘、游戏手柄等等都是这样的,不管我手里或者我的手指对着的什么,屏幕上就应该是那样的。
其次,光标应该跟设备匹配。如果我使用的是鼠标,而且也需要我点击什么东西,最好屏幕上有个光标,因为我没有心灵感应什么的。
我应该在合理范围内随时能使用任何设备。不应该让我在菜单中到处找修改的地方,我也应该能——万一这个设备不工作了——我想要告诉菜单它不好使了,我好气啊。
以及,所有的基础菜单都应该能用三种方式浏览:DPAD、摇杆和鼠标。如果它是『按下A开始游戏』,我应该还可以点击它;如果它有三样东西,我应该能用摇杆上上上三下,或者说是模拟摇杆下下下三下,然后点击我要的东西。
在我玩Shadow of the Colossus(旺达与巨像)终幕的时候,如果我的游戏手柄断开了连接,或者我的小侄子往上面撒了酸奶,游戏应该要暂停,然后说『嘿伙计,在BOSS杀了你之前,我给你五秒钟时间解决这个问题。』
这就是输入端的五个黄金准则,而我想要从我们要实现的更高层次的目标开始。得益于Zach,现在你们知道我们接下来要去哪里了。我们来谈谈我们看到的一些游戏中常见的输入手段。我们会从做的不好的开始。
图6.12
这个例子就就是每个人的第一个GameMaker游戏,输入是这样的。我这么做过,你也这么做过,所有人都这么做过。这是硬编码物理输入,这些像意大利面一样的代码不断循环,『如果是W,如果是S,如果是A,如果是D,那么做这个』这些输入显然是不能重组的,当然如果你看到有一些游戏手柄的支持,它也会设定一种特定类型的设备甚至是某一个设备、以及特定的按钮。这会带来很多的问题。如果屏幕上的图标是完全固定的,支持的设备是开发者们硬编码的一种非常特定的设备,这样非常的糟糕。虽然都能工作,但绝不是值得推荐的方式。不过好歹也是起步了。我们再看看一些更好的。
图6.13
一个更好的途径是使用提取出的输入。这个非常的直接,你可以获取到所有的复杂度和配置,然后打包到后端。不是『如果A被按下了,那么就跳』,而是『如果跳了』,不管跳是哪个按钮,『那么就跳』。比如,游戏手柄的输入可以不用『如果Xbox 360手柄slot 0.a button.pushed』,而是『如果任何手柄.a.pushed』,『那么就做某件事』。这里的『任何手柄』指的是控制中的任何一个设备,比如可能有好几个手柄,同时也指的是任何一种设备。如果我有了一个PS4手柄,那么X就应该就是A按钮的意思,如果是一个Xbox360手柄,那么就是A按钮——你懂的,我指的是底层按钮。这种提取让处理多个设备更简单,而输入代码也更简洁。复杂内容都被转移到后台,而不是在输入循环中,这样输入循环就非常干净整洁,就像上面完全去掉意大利面的盘子一样。很棒。
图6.14
下一个有争议的是,使用外部的输入转换,比如Joy2key。最有名的例子是Binding of Isaac的原始版本。Edmund,如果你在观众席里,不要杀我,我不是想要批评你,我理解你的痛苦,因为这个游戏开始是在Flash上编写的,具体的说是非常成熟的ActionScript 2,它没有本地的游戏手柄支持。所以玩家需要依赖外部的程序,比如Joy2Key,来获取游戏手柄支持。而Joy2Key做的是在操作系统层面监听手柄输入,然后动态地转换成操作系统层面的键盘输入。游戏还是等着比如空格键的输入,而当你按下了手柄上的A时,过程就像『嘿,空格键被按下了,干活,游戏。』而游戏对中间的过程一无所知。一个明显的缺点就是会有些非常明显的输入延迟,另一个是你需要配置一个外部的程序,而这样的体验非常不好。在迫不得已的情况下再这么做,或许你也不用那么做,现在我们有很多工具。我不想批评任何一个被迫使用这个过这个方法的人,我只是想同情一下他们和他们的痛苦,警醒其他人提前做考虑而不至于被逼到角落。
接下来让我们讨论一下不管是哪种方法都比较常见的输入问题。
图6.15
PC上有个比较痛苦的问题——我称之为『按键海现象』。它指的是当你有一大片的按键作为输入。你们见过有多少个像这样输入风格的游戏?游戏中几乎所有的操作都有单独的按键,所有新的行动比如缩放、倾斜、下蹲都有一个新的按键,一直到你有——当然是开个玩笑——特定的按键来冲厕所、进化Pokemon,以及停下、合作、倾听(stop, collaborate and listen,梗来自于Vanilla Ice的Ice Ice Baby图6.X)。(观众笑声)
图6.X 自己找的图,不是内容。
所以这是一个以键盘为中心的设计理念,这意味着你可以将自己死死的逼到角落痛苦无比,因为将这样的设计移到手柄上是非常困难的。这也支撑了一些懒惰设计,除非你的游戏名字是NetHack(一款早期roguelike游戏)——这是唯一的方法。第一个典型的明确的解决方式是,context buttons情景按钮,打包、stop、collaborate and listen(又来这个梗)到一个情景有关的按钮中,包括冲厕所、进化Pokemon(又来=. =),都会在当前的情景下做出回应。
图6.16
这里面也有个问题,我称之为『太多情景』。这是一个Penny Arcade漫画(自己搜去吧),这个人说『我要上去跟这个科学家对话,但是绝对不要让他着火』、『嘿伙计,发生了什么?oops我把你点着了』因为情景按钮当然是是取决于情景的,但是情景不总是很明显的。比如游戏里会根据你的枪是否对准NPC而改变情景,如果正好对着,你按了X,然后boom,你对着市长开了枪。所以情景也不总是明显的解决方法。
图6.17
我还需要指出的是,手柄游戏也可以能会出现『按键海现象』。这张图也是开个玩笑,同样来自于Penny Arcade,但是你懂的,有类似(为了看懂请看图)按住(应该是口误了,应为『按下』):暂停、按住:超级暂停、检查蓝色箱子、打开超级菜单。这虽然是个笑话,但我讲到过这样塞满了输入的游戏。而在键盘上,你好歹有一堆的按键,但是在手柄上你没有,所以你就要把这些不同情形下的切换全都塞进来,因为每一个游戏内的行动都是独占的、所有都要塞入到一个输入设备中,但是空间已经不够了。
图6.18
总结一下,在我们这个高水平的输入世界快速浏览过程中,我们看到的问题有:我们没有重捆绑、没有定制的游戏内图形、我们有输入的延迟、有太多或者不够多的情景、以及我还想快速谈一谈的多个手柄输入不稳定的问题——输入循环是如何工作的;第二个手柄的拔出在插入会发生什么,是会有null exception error,还是会返回没有输入;玩家是否有方便快捷的修复方法。这些都是输入端目前做的不是特别好的地方。
讲完了这些,我们再来谈谈行动,以及为什么我觉得它们有些臃肿。
图6.19
在行动世界里,你不关心A被按下了,你关心的是Mario跳了。(点到了下一张幻灯片)让我确定一下,嗯(又切了回来),这是我之后要将的东西。后端完全负责跟你的输入设备之间的交流,做正确的事,而你的游戏完全不在乎原始输入,这就是Steam手柄API的关键,也是一项革命性的工作。对于开发者来说最让他们抱头苦恼的事情是『我如何激活摇杆』、『如何将物理上的操作与游戏操作对应』,你们会想要只考虑和设计游戏内的行动,而不是输入端内容。Steam手柄API就显得非常重要了,因为你将再也不会见到输入,你见到的是行动。而行动有两种类型:数字和模拟。
图6.20
在这个手柄上我已经将数字输入用黄色高亮,这些产生数字行动;红色的产生模拟行动。触摸板、摇杆、正面的按钮、背部按钮、肩按钮、模拟扳机以及内部的陀螺仪传感器——你看不到,但是它在设备里面。大部分模拟输入端也是有数字输出模式的。你可以将这两个触摸板中的任意一个变成美化了的DPAD,然后它就会输出数字信息了;手柄也是这样。就像GameCube手柄一样,在模拟操作的最后都有数字化点击。
图6.21
所以老生常谈,我会在这次演讲中多次提到这些:在使用Steam手柄API的时候你不会获得直接的输入,你只会得到行动。在游戏和手柄之间,你不会看到A按键被按下了,你看到的是Steam手柄将A按键事件发送到Steam API,然后Steam API将跳这个行动发送到游戏——如果你是设置成这样的话。玩家在决定什么输入有什么行动上,有近乎完全的控制权,这是在玩家手里的权力。而你作为开发者有两种方式来控制:你决定这些行动是什么,将它们集合到行动集里,这是第一点;第二点,你提供一个官方的配置。比如说,在我准备这次演讲的时候,有些人说,『我要怎么激活摇杆?』而你没做到,有个人能将这个摇杆关联到瞄准上,那么你就可以获得这个瞄准的指令,你会去定义瞄准是个行动、以及模拟输入。
还有一点我想说清楚的是,模拟vs数字的区别。数字只有是和否,是现在激活的状态;模拟有是和否——是否激活——,x浮点数据、y浮点数据——或者只有其中一个如果这是一个触发装置的话。是否开启轴反转、加速、轨迹球方式等等一些小细节,这些控制权都在玩家手里,而不是你手里。你可以对模拟输入进行一些后加工,但是你要知道的所有的细节都由玩家掌控,而我们也相信这是件好事。
图6.22
接下来简单讲一讲行动集,前面Jeff也提到了,行动集是一群紧密相连的行动的。还记得我之前那张幻灯片里把所有指令塞进一个手柄里的笑话吗?行动集就是用来解决这个问题的——如何将按键海移植到没什么按键的手柄。Steam手柄有许多输入手段,但还是稀少的因为这是一个游戏手柄。
如图是Defender’s Quest中传统的鼠标和键盘的控制界面,你们也能看到有非常多的按键——当时是基于热键的理念做的——,而下面这个是它对Steam手柄支持的设置页面,我做的是,我把所有代表所有能在游戏里做的事情分到了三个单独的行动集里。因为,你知道吗,你的菜单不需要战斗操作、你的大地图也不需要战斗操作、战斗中你也不需要大地图操作。所以这三个应该被分离到不同的行动集里面,这样更简洁、更简单、更稳健、更容易让开发者考虑,也更容易让玩家考虑。作为开发者你要做的是,在你的游戏中的特定位置,『嘿,我们在大地图里了,激活大地图行动集』、『嘿,我们在战斗中了,激活战斗行动集』,而玩家不需要做任何别的事情,他们不需要按一个按钮来切换模式手柄就已经在那个行动模式下了。他们也可以在这些行动集中对什么按钮干什么进行配置。同理对于驾驶、行走、游泳也是这样的,这取决于哪个更适合你的游戏。
图6.23
我想要提的一点是,行动集并不仅仅是你用来全局设置,而且也可以被分别互不关联地单独给每一个手柄设置。所以你可以发出指令如『嘿,各位,我们在大地图模式下了』又或者是给一个手柄发送——如果它是一个单人游戏,但是你可以给每一个手柄设置单独激活的行动集。比如说,你有个团队射击游戏——如果你有听说过这类游戏的话——里面有不同的职业,需要不同的输入配置,你可以发出指令,例如玩家一是个侦查员之类的,而且侦查员有独特的命令,那么就只对手柄一激活侦查员的行动集;对手柄而,激活重装指令集——如果他们不同的话。所以你可以在每个手柄的水平上发生指令集、你也可以只给一次同样的指令集。在API里,你作为开发者有能力发送它们,而游戏会立刻做出更新来发送这些行动。大概就是这样的。
图6.24
Steam有一个你们可以为游戏获得的徽章,叫做『完全支持控制器』。这个东西,我猜,未来会有人将其作为推出特卖专题之类的,『能用Steam手柄游玩的游戏』什么的。我不是Valve的发言人,不过我预测『完全支持控制器』将会对游戏来说非常重要。要获得这个徽章,他们要求你在游戏提示中显示Steam手柄标志。比如『按下A来完成这个行动』,你需要显示正确的用户设置关联的按键的图像,以及与在Steam手柄上的物理位置。比如『猛击触控板的左边』——如果你是怎么设置的话。
你的设置页面应该是围绕行为,而不是输入,你不能像,比如街霸Street Fighter,我知道那个游戏将需要一连串的输入指令,但是在设置界面显示的应该是『重击』,而不是『B按键』,然后玩家就可以将随意一个键关联到重击上。
你需要公布一个官方的配置。
你应该允许完全的自定义。
你要使用Steam软键盘来输入文字,因为我拿着手柄的时候,我通常都不会想去拖我的键盘来回答『如何命名你的英雄?』。你应该能弹出那个已经内置到Steam手柄节目的软键盘布局,然后你就可以输入『我的名字是Fart』。
理想情况下,你不应该有启动器之类的挡在中间,而是能直接启动,进入大屏幕模式,然后开玩。
以上这些就是你如何获得『完全支持控制器』徽章所要做的事情。
Zach可能会乐于见到的是,这里面有很多覆盖到五条黄金准则的地方。看起来英雄所见略同啊。
接下来讲讲Steam手柄输入。我在这里告诉你们关于手柄API的内容、我们也知道这都是关于行为而不是单独的物理输入——游戏看不到左摇杆的晃动——,但是即便是这样,你也应该知道Steam手柄有怎么样的实物特性、哪些输入对你是可用的。让我们来做一个快速的概览。
图6.25
首先是在左边和右边两块触摸板,虽然左边触摸榜上有刻上一点DPAD的样子,但是它跟右边的是一模一样的,除了样子——那只是一点物理上的功能可视性physical affordance。他们有完全相同的功能,但是能提供单独的输入。他们有,我自己做了一些图标——这些和官方的Steam图标匹配,有不同的合集,我做了这些知识想要有中性的色调——:首先,你可以获取数字DPAD行为,上下左右,两个触摸板都可以;其次你也可以有『swipe』动作,是一个模拟行动,可能有些人会误以为只有左右方向,实际上它给你x轴和y轴数据,它意味着玩家将手指覆盖在上面,而矢量是朝那个方向的;那个白色的点意思是你点击进入了;而我用指纹表示的——别人可能会用一个圈表示——的意思是你跟它有了接触,你在触摸它。触摸和点击的区别,我相信你可以得到的两种不同的输入。所以这些是你能在触摸板上做的。
图6.26
摇杆和按钮。这里的摇杆可以获取单纯的模拟摇杆动作,也可以转换成数字化DPAD,发送出四种基本的方向;像其他任何一个现代模拟摇杆一样,它可以被按下。接下来是正面的按键,遵循Xbox 360标准的X、Y、A、B按键,前进键、后退键——我觉得他们应该叫选择键和开始键,也没什么理由,就因为我爱这么叫他们。
图6.27
然后我们再来看看背面的东西。首先是左右肩按键,是纯数字的,有时候人们又叫它们『bumpers』;然后是左右的模拟扳机,这两个有模拟和数字模式——我不知道图标这样画是不是最好的,不过我想不出更好的了;然后是,这是另一个Steam手柄创新的地方,在背部有左paddles(桨?)。你们礼品袋里都有一个,如果你们拿出来看,你们会在背面六个手指放的位置发现这两个paddles。这是另外的一种你们可以用的模拟输入方式。(回头看幻灯片发现之前少说了一个词,赶紧补上)他们被叫做grips,呃,左右grip paddles(握把桨?)。
图6.28
然后是外部看不出来的,手柄内部有一个内置陀螺仪,在所有的轴上、它的定位、偏移、翻滚——有些学过航空航天学的人可能会更正我刚刚做的动作——,但是它能感知到在所有三个轴上的运动。陀螺仪就好象Steam手柄的无名英雄一样,像PS4有个陀螺仪一样,Steam手柄也有,很多人——尤其是在Doom里——在用它进行瞄准,而他们会感觉『哇,这个功能实在是太棒了』你绝对应该试试陀螺仪。
图6.29
接下来要讲的就是我之前承诺过一些细节问题。我们将讨论手柄API:如何使用它、它是如何运作的、为什么它这么重要、为什么它将使你的生活变得精彩。最难做出改变的是,要学会跟Steam手柄进行间接交流。正如我之前说过的——我会一直老生常谈——,你永远不会看到左摇杆被扭动了、你永远不会看到右边的触摸板被点击了、你也永远不会看到A按键被按下了,你得到的是行为。对我来说,这要求我,(不小心点到了下一张)oops,等一下,回去。这要求我稍微重新设计一下输入,来启用手柄支持;但是它也构建了一个干净了很多的系统,未来当我要将Defender’s Valley放上主机平台时也会给我很大的帮助,因为我可以将那些意大利面一样的代码分离到内部。
另一件事情要提到的是,这是完全基于C++语言的API。我提到这个的原因是,特别对于一些使用非C++语言的——比如C#、比如我在用的Haxe、你可能会用一些别的——独立游戏开发者,你可能需要一些API桥接bridge来使用Steam API。我敢说的是,Steam API自身是非常高效的,但是你的API bridge可能不是,所以你要注意一下从API bridge抽象化,确保它是好用的。我用Haxe编写自己的Steam手柄扩展,这不难,你也可以自己做,记住你可以用除了C++以外的语言就行了,只不过要确保bridge是好的。API是基于围绕手柄行动、行动集等所有的integer handle(整数指针?)。对你们当中的C++爱好者来说,这也没什么奇怪的;对你们当中那些对此有些陌生、之前可能觉得可以直接使用strings的人来说,它的工作原理不是这样的。
最后,API鼓励你不断地拉取。你不是设置一个回应,然后等着活动的发生;而是每一帧都能获取一切状态。这是非常重要的。API的说明文档也让我确信,『嘿,这没什么代价,这么做非常安全,它不会引起泄露,也不会导致你的风扇到两亿度。所以你应该每一帧都这么做。』但是如我之前所说,如果你使用API bridge,确保它在上面不会加上坏的天花板。
图6.30
所有东西的开头,比如对于大部分游戏来说,是一个很大的文本文件。这是一个VDF定义文件,用来让你说明什么是行为、以及他们用来干什么。只要你读过说明文档,这是非常直观的。这个VDF文件是Valve的类似于json的东西,但不是那种格式。这个文件我记得是官方的Portal 2行动定义文件,你能看到的是,(用激光笔点)这是FPS控制、这是菜单控制,这是一个行动组、这是另外一个。你只需将它分成数字和模拟,而你也可以加入一些特性。你可以设置特性、定义行动、行动组、本地化标签——比如我的跳这个行动,我可能会给个代码名字叫『jump』,那么我就可以给个英文名字叫『jump』,同时也给个挪威语名字『hoppe』、又或者是法语名字whatever我并不知道笑。你会在这个文件里处理所有这些内容。我想要提到的是,你的行动的名字需要是独一无二的,因为每次你要拉取出来的时候,你是直接用行动名字拉取的,而不是从一个行动集中拉取,它无法辨别两个不同集合中的同一个行动。所以你需要有『菜单向上』和『战斗向上』,而不是『向上』『向上』,当然你仍然可以同时在不同语言下叫他们『战斗』,但是句柄需要是独一无二的。行动集同理。
呃(让我看看还有啥aaaaaaaaaaaaand, yeah, oh),输入模式,我猜我们现在要讨论一下了。
图6.31
模拟特性,我已经圈出来了,这些是手柄中可以输出模拟行动的部分。数字化的部分,你在开发者这边没有太多可以设置的,比如一个数字行动,它存在、属于一个集、有个名字,就这些,你能得到的是玩家在这一帧有没有按下。而模拟特性下,你可以运用更多的控制。你可以说这是一个Joystick的模拟活动、或者说是一个鼠标活动,这中间的区别就是,对于Joystick来说你考虑的是从一个固定的中心向外的矢量,而对于鼠标来说,鼠标没有中心锚点,你需要的是鼠标被移动时所在的位置开始到现在移开的像素数的绝对值。当你,呃,这不是玩家控制的东西,这发生在你对这个模拟行动的基本定义中。你需要说明这是joystick型的还是鼠标型的,而取决于这个,你会得到不同结构的x、y值。你要在这上面进行尝试,看看哪个对于你的行动是合适的。当你定义模拟行动是选择absolute_mouse的时候,可以设置一个flag。如果你设置的是os_mouse,这意味着在说『别只发送鼠标型的信息给游戏,同时把这个位置发送给操作系统,让它把鼠标放到那里』,这就像直通到底直接控制鼠标一样,在某些特定游戏的特定情况下非常有用——取决于你的设置。
我前面也提过,你不能决定它是不是像轨迹球一样、有没有加速度、y轴有没有反转,所有这类的东西,所有这些都是取决于玩家。当然,你在你的官方配置里,我想强调的是你作为开发者有权力来说类似『这个是推荐配置,但是你也可以做个糟糕配置,随你便,但是我真的非常推荐你用这个。』如果这个还不错,玩家们们就很有可能会用它,否则的话玩家就做个更好的给你看看。(观众笑声)多棒。
图6.32
接下来讲讲手柄句柄controller handles。我说过我们会就句柄讲很多内容的。句柄贯穿Steam手柄API全程,句柄实际上是一个巨大的整数,如此巨大,事实上它是一个不区正负号的64位整数uint64。它看上去是另一个类型,使得手柄的句柄和行动句柄不一样,但他们底层都是uint64类型定义,至少现在是这样的。
当你打开你的游戏时,你需要做的第一件事情是,『GetConnectedControl()』,它会返回所有手柄的所有句柄。如果你用了API bridge,你就得明白如何处理uint64,如果它们不能很好的通过这个障碍,你得解决它。我在我的Haxe扩展程序里面就不得不这么做。如果你用的是C++,那么就没什么问题了。你需要永久地储存这些句柄——因为有可能会断开连接——调取句柄数据,用句柄来随后请求做与手柄0有关的事情。不是就单单说手柄0做某件事,而是手柄,不管我为手柄0获得的是什么句柄,做什么事情。所以你需要拉取、存储、牢记、再次拉取,无论状态在什么时候会发生改变。你可以做一个特殊的所有手柄的句柄——我想可以是oxFFFF…..直到填满为止(毕竟64位),这样你就有了个常数,而不需要去记下这个数——这样你就可以向每一个手柄发送同样的命令。比如当你换了行动集,你就可以『嘿,手柄0,行动变成了XXXX』或者是『嘿,所有手柄,行动集,所有东西,现在你们都该我改了』。
图6.33
行动和行动集句柄。行动集有句柄,行动也有句柄,它们都有自己的独特的类型定义,底层还是uint64。总的来说你要做的是,你知道——你是游戏的开发者——按名字区分你的行动集和行动都是什么,你知道『我有我的菜单行动集、战斗行动集』,所以你会拉取如『嘿,Steam手柄API,给我『battle』——字符串应该是这样的——的行动集的句柄』,然后它就会说『你要的句柄是这个』,然后你就可以每一帧传递一个整数,而不是一个很大的ol’(应该是ordered list)字符串。很好很强大。数字动作和模拟动作也是这样的,数字动作和模拟动作有分开的获取句柄的请求。记住,你只是基于行动名字拉取,这就是为什么名字需要是独一无二的,因为如果你在两个不同行动集里有两个『向上』,它不能在这两者中辨别,它会给你其中一个或者是另一个。
图6.34
下一步就是你需要不断地激活它。记住,比如你在GTAV里,你走出了车,你就有了行走的动作;你进入了车,你就有了驾驶的动作,你需要激活这些动作集。Steam手柄API特别地推荐你在状态改变的时候不要只进行一次激活,你需要不断的做。这样不管什么时候你的游戏,比如,可能存储了一些现在所处状态的数据,然后基于这个,在你的更新循环里,你进行比如『驾驶控制』、『驾驶控制』、『驾驶控制』、『驾驶控制』。他们是这么写的,所以这没什么风险,你可以安全地不停这么做。相比起间歇性的绑定,不断地绑定下你会有更少机会遇到bug。
接下来我们将已经你获得的实际数据。
图6.35
这部分是你获知正在发生什么的方法,是真实输入的实质:GetDigitalActionData()和GetAnalogActionData()。同时,你们也需要去读一读Steam手柄的文档,因为我不能帮你们过一遍,这次只是让它变得人性化一点。不论如何,这些是你们用来请求得到实际信息的功能,如果是个数字行动,那么它会告诉你『嘿哥们,那个行动集是激活的,它的状态是0——或者1。』这里的『bActive』,我点的这个,在行动集未激活状态下会变成false状态。如果你在菜单模式下请求战斗指令,这个变量永远会是flase。你会在行动集未激活情况下得到false。但是如果它是激活状态,你会得到true或者false的结果——不是说刚刚按下了,或是刚刚松开了,那是指,这一帧被按下了,就是这个按钮物理上被按下了——我在之后会讲一讲这个为什么有关。在模拟里,你会得一样得到它是不是激活的,不过你会再得到x和y数据。如果是一个单轴的行动,比如用一根消防水管的时候,如果绑定的是模拟扳机,那么你得到的只有x,而y一直会是0。这是两个浮点数据,它可以在-1和0之间,也可以是1,又或是0和1之间,取决于它本身是怎么样的。这就是你得到输入的方式,而你显然也要在每一帧下命令。
图6.36
接下来这个跟Steam手柄API本身没有什么关系,但是我非常推荐用来获得良好的输入的。我之前提到过,我是一个开源软件HaxeFlixel游戏框架的贡献者,在这个里面有一个我非常非常喜欢的功能——缺少更好的名字所以我就叫它输入状态跟踪器input state tracker。而你要做的是,你要获取原始输入,然后不断跟踪输入状态。我看到一些人的第一个Game Maker游戏,他们会这样『按A射击,但是等等,我要检查一下能不能射击,因为我不想要你射出七百万子弹。我需要你按下按钮,然后松开,然后在你松开的时候再进行这个动作』。归根到底就是,在刚刚按下A的时候,射击。你的代码需要变成这样,而这个功能就使它变得可能。你不仅仅有『刚刚按下』或者『刚刚松开』,你有『按下』、『刚刚按下』、『松开』和『刚刚松开』,之后你能怎么样?取决于你的代码,你可以在动作上创建一个非常薄的覆盖,而你看到的就是状态是如何的,以及跟上一帧相比是怎么样的。『按下』——第一帧下按键是松开的——所以『按下』是false,『刚刚按下』是false,『松开』是true,『刚刚松开』是false。好,那么在下一帧,我们按下了按键,所以『按下』是true,『刚刚按下』是true——因为『按下』在上一帧不是true——,它不是『松开』也不是『刚刚松开』。第三帧,我们继续按住了按键,它就在也不是『刚刚按下』。在下一帧我们松开了按键,那么根据之前一帧的状态,它同时是『松开』和『刚刚松开』的。这很容易搭建,让你的输入端代码非常非常的干净。我非常推荐你们这么做。大概只要花2分钟,去做吧。
图6.37
然后我们来谈谈图形glyphs或者说来源origins,看你们使用谁的术语。虽然在开发者代码这边,我们跟实际物理上进行互动的设备的输入没有什么关联,我们还是要获取glyphs,或者是Steam所说的origins:GetDigitalActionOrigins()和GetAnalogActionOrigins(),是我们能做出要求的手柄层面上的功能,『嘿,手柄句柄,这个行动,给我它的origins』,而在被返回的是一个enum类型的数组,意思就是这是一个枚举数据类型,最后归结于一个整数,与这些别致的小glyphs相对应——你可以将它们放到屏幕上,告诉人们按下A来打猴子什么的,按下start来合作。所以这个功能是这样的。让这些glyphs显示到你的游戏并不需要使用什么神奇的方法,你只需要把它们放到你的资源文件中,让你的用户界面库能够展示它们。当你在找比如说『好吧,我有一个列表的图标准备要显示,我需要知道显示哪一个』,你发出这个功能的请求,然后通过它你就可以『好吧,所以这些是跟它相绑定的』,然后你只需要告诉你的GUI,『将那个A按键放那里』。
Steam有他们自己的官方glyph库,它们长成这样,看起来非常专业,非常好看。我推荐你们使用它们,它们是免费使用的——他们会有些特定的条款,不过我觉得他们是很慷慨的,你可以随便做什么。我甚至觉得他们应该提供了矢量图,因为他们就是那么优秀的人(拍马屁)。
我自己也做了一组,原因有两个:1.我想一个中性的色调,2.这里有人在OpenGameArt用『Zelu』这个名字发表了些什么吗?我猜没有,好吧,他写道,他给每一个手柄做了一组非常棒的输入glyph,然后发布到了OpenGameArt上,做了一个公共的域名,他是一个非常nice的人。所以我在继续将这些Steam手柄glyphs加入了进去,同时跟他的风格相匹配,因为我也在Xbox360和PS4上使用这一套,这就是另一个原因。
不管怎么说,我已经在OpenGameArt发布了,你可以免费获取Valve做的和我做的。Valve说过他们不在乎你们用哪一套。如果你想自己做一套给garlic rubber chicken(大蒜味尖叫鸡)之类的,你最好试试,确保获取完全手柄支持。Anyway,哦,有一点非常重要的,Steam手柄API提到你要不断地拉取。不过我只跟你和墙说,这里不断地拉取可能不如行动集里每一帧拉取那么重要。这里你需要不断拉取的原因是,玩家可能在任何时候改变输入手段,他们可能刚刚退出覆盖层、改变了输入,而你不能指望他们会用跟打开游戏的时候一样的输入手段。这种情况下,也许你每秒拉取一次就可能差不多够了,重点是你需要不断地拉取——并不是非要每一帧,但是需要不时地拉取,比如,举个更糟的例子,就在当他们退出覆盖层一秒后,啪,新的输入手段。
图6.38
Haptic pulses,我们来谈谈这个触觉脉冲。有些人问过关于rumble震动的事情,Steam手柄没有传统的震动,但是它有实验性的类似于震动的触觉脉冲。这个功能被整合到玩家可以配置的触觉脉冲中,反馈你是不是在如DPAD的上下左右之类的。作为开发者,你有非常实验性也非常低水平的控制能力,来使它用奇怪的方式震动。说『低水平』,我的意思是,我们说的是给出X微秒的脉冲,可能有些人对这个前缀不是很清楚,微妙的意思是一秒的以百万分之一,所以对它们来说的整数值就类似0.03秒这样。很明显,它就像,(舌头大了先捋一捋),它就跟一个声音API类似,你可以直接跟信号波和方波互动,来构造出一个男高音假声——我也不是很懂这个,只是觉得说一些声乐名词显得很高端。说到底就是,你可以用这个来写一些API,在超低水平基础下做一些疯狂的事情——而且有人已经在做了,我看到有人发布了一个视频,他们让这个东西唱起了歌,就在这些奇奇怪怪的面板上放音乐。(观众笑声)这不像传统的震动,但是你可以让它震动和做奇怪的事情,放手去做吧。
图6.39
现在我们来讲overlay布局(内置界面在游戏上直接覆盖这样)。使用覆盖层非常重要。你们有一个可用的API命令,叫做ShowBindingPanel()——详细内容去看说明文档,我在这里不会说——,它的作用是类似于打开配置菜单,所以你并不需要写你自己的蹩脚的配置菜单。如果你想写一个好的,那么就去写一个,不过你可以就用Steam API的配置菜单,而你(口误),而玩家可以改变所有内容,而不需要你自己写一个。同样特别地,如果你的游戏在沙发模式或者是大屏幕模式下,在检测到玩家使用手柄的情况下,你可以用ShowGamepadTextInput(),这样他们就不需要插入键盘来输入文本了。还有一点,我不觉得现在这个特性有,我不觉得里面有韩语、日语、中文的输入法编辑器,不过我已经给他们反馈了。如果他们添加了,那么这将会是变得非常完美,因为语言输入加入日语、韩语的输入法编辑器对你们自己来说是非常痛苦的,所以我希望最终能内置进去。不过再说一次,我不替Valve工作,他们才是,他们决定他们会不会这么做。
图6.40
一个大的特性,也是让我非常兴奋的一点,是对其他手柄的支持,以这个PS4手柄为例。现在,你们觉得是『好吧,Steam手柄,很酷。但是我很关心Steam手柄到底有多少人拥有?哦,我们销量马上要100万,数字还挺大的。』但是,Steam现在在添加对其他手柄的支持,而你们就可以跟这个家伙像和Steam手柄API一样互动。如果你对Steam手柄有本地支持,那么这家伙也免费地可以运行。还会有很多这样的手柄支持。
图6.41
为什么第一个是PS4手柄?第一,是因为它是一个优秀的设备,一个可爱的小设备。第二,它有非常标准的手柄控制,人们熟悉并且也喜欢。很多主机游戏或者是已有主机版本的游戏基本上都是根据这个设备设计的。它有一个陀螺仪,一个触摸板,跟Steam手柄一样有这样两个Steam手柄API也能支持的特殊特性。最关键的是,现有的本地支持非常的糟糕,屎一样、很烂。我尝试在PC上使用PS4手柄,感觉并不是很好,而这填补了一个空缺。这就是为什么它在别的设备之前首先被支持,而别的设备在PC上运行的还挺好的,这个填补了空白,满足了需求。Steam现在还没有准备好公布别的设备、日期之类的,但我已经听说他们在别的手柄上工作,到时候知道会那些是啥会是挺棒的一件事,(观众笑声)因为我到时候肯定会搞一个尖叫鸡上去的。(观众笑声)
图6.42
这就是它的样子的一个例子。你之前已经见过了,这里你可以捆绑,这个是特别地为Doom设计的。它会显示任何一个设备的(行动和按键)绑定,对于每个设备都有自己的输入。所以在尖叫鸡里面的小橡胶球,也会出现在这里,或者别的随便什么——如果Valve允许第三方人来讨论的话。(观众笑声)不过你可以看到,这个东西是你们已经预期到的,不过你这里你有的是PS**格的glyphs,所以当你请求获取行动origins(=glyphs)的时候,你得到的是这些,所以你也要有它们的资源库和独一无二的枚举。这就是为什么基于行动而不是输入很重要,因为在之前,你可能会有Xbox 360的特殊代码、Steam手柄的特殊代码、PS4手柄的特殊代码、尖叫鸡的、所有你在游戏里支持的东西的代码,而现在你只需要关心行动。只要行动上被一种有意义的方式定义、有正确的属性集、有一个好的默认配置,你就不用再关心了,你有了干净的输入代码,而玩家有了非常好的配置系统界面来输入它确切是什么,而不是依赖于你在第一时间就把它弄好。
图6.43
所以,哦,我刚刚已经讲过了大部分这些好处。Anyway我再讲一遍。首先,你可以免费地获得可以重绑定的输入,如果你使用Steam手柄API,非常棒。你可以获得更干净、简单的输入代码,而不是为每一个你支持的设备都有庞大的、绕来绕去的、乱糟糟的代码,这就意味着,如果你跟我一样,你会做的很糟,因为没人有时间干这个。你不需要Joy2Key、不需要专门为输入做的启动器。你可以免费获得多手柄的支持,今后新的手柄只要支持这个,它就能工作。也让人非常容易的遵循Zach先生的五条黄金准则——原它们永生,保佑我们的输入干净又棒又优秀。
我还想讲一些别的东西。这些有点超过仅仅使用Steam手柄API。我要说的不是『嘿,使用Steam手柄API,因为它很棒』,我在这里要传播的福音是行动和行动集的概念,因为我觉得这才是输入的正确提取。如果你使用行动和行动集式的提取,会有一些别的好处。比如,当我在搞HaxeFlixel、搞它的手柄API的时候,我其实创建了整个行动和行动集的后台提取。所以不仅仅是Steam手柄API,它在Steam外与传统的输入相工作,我差不多给所有不连接Steam的HaxeFilxel游戏传统输入做了一样的事情。
这允许你,比如让你拥有非常好的回放模式,当你记录一个特定的游戏时——比如Meat Boy(Super Meat Boy)你死的时候所有meat boy的跳跃之类的动作,或者你想要在赛车游戏之类的展示ghosts——不同于在低水平输入端记录比如模拟手柄的向上、或者说按下空格,你可以记录实际的行动,而你的游戏在乎的就是这个,然后以行动的方式回放,你的游戏准备好接受行动就可以了。
第二点,如果你有一个玩家角色,或者别的什么,跟一个行动API挂钩,那么就很容易创建一个有一些AI 的模块,可以发出一些行动,boom,你就有了一个AI控制的玩家或者bots,或者随便什么你需要的。
然后,当然,我想反复重申的是,加入一层输入状态跟踪薄层非常好用——可以跟踪刚刚按下、刚刚松开状态。做这个非常有用,如果你没做你应该做一个。所有这些是为了遵循五条输入的黄金准则,因为我们非常需要一个高质量的用户输入体验。现在就像是你作为开发者,在和这些设备作斗争,要做很多内容——这个按键被按下了,那么要发生什么,我需要写一个配置系统但是我又不想做,所以我就只做了WASD和Xbox的,也不能绑定什么,都给我走开(你们这些该死的手柄)。(观众笑)而这个就让情况好多了。
图6.44
总结:考虑行动这个名词,而不是输入这个名词;你需要授权用户以他们想要的方式进行配置输入,这不仅仅是因为自由是好的——虽然它确实很好——而是因为你不能给玩家假定东西,比如你假设玩家有两只手,那如果玩家出生就只有一只手,而在这里(指着手肘)有个小瘤怎么办,就像我一个大学的朋友用这个来用模拟手柄一样,他可以公平地玩格斗游戏,但是他不能碰到另一边的肩按钮,超过了这一边按钮范围之类的。如果你允许玩家重新配置所有东西,他可以将之重新绑定到他能碰到的按键上,这就让人们能做各种你没想到的疯狂的事情。更好的是——我非常喜欢这一点——这个API在未来是有保证的,如果Steam回应了我的bluff(口胡),发布了一个能用来控制游戏的数字尖叫鸡会是怎么样?API已经支持它了,所以不需要额外的工作。如果他们在一次固件更新中给Steam手柄加入了新的东西,给了玩家新的输入方式会怎么样?它还是会有用。对于PS4或者别的已经支持的设备也一样,它也是有用的。它是未来有保障的,因为我们考虑的是行动,都是服务于提供良好的用户体验,而我们也不要被这些工具束缚太多,这些都是让游戏更易玩、易写的工具。我现在在说话因为我喜欢说话,没了!
(观众笑、掌声)
7. STEAM 业务 201 - 成功开发者的建议
By Nathaniel Blue (Valve)
(观众掌声)
嗨各位,非常荣幸来到SDD 2016在这里进行演讲。这里非常的棒,有这么多的开发者,数千个来自世界各地的开发者,致力于游戏内容、视频内容、也有创新性软件、VR体验,所有类型的东西都在一个屋檐下。
在我被要求在SDD上进行一次演讲的时候,他们建议我做些从Steam开发者那里获取建议的工作,来找到成功的方法。几个月前,我在准备这次演讲时发现的一件事是,很明显的,我很可能不是来给出这个建议的合适的人。我不得不绞尽脑汁,『好吧,什么是我能给开发者的最好的建议呢?让他们能带走然后抱着希望做些动作。』所以我做的就是,我决定跟一群成功的Steam开发者接触,然后请求他们『嘿,给我条我能在活动中给其他开发者的建议』。就这样我联系了17个成功的PC游戏开发者。
图7.1
我问了他们两个问题,我问他们,『如果你可以对将要来的PC游戏开发者分享一个非常重要的tip,它会是什么?』我也问了他们,『以你现在所知道的东西,如果你可以为你过去发行的游戏做出一个改变,你会改什么?』之后反馈就不断向我的收件箱涌来,很显然这些开发者都对自己做的东西都非常有激情,而且也非常想给你们一些tips和建议,来帮助你们同样获得成功。
他们中有些人给了一个建议,然后这个建议就关于一点不断地写啊写啊(and on×7),大段大段的问题;而其他一些人会给我五六个不同tips。所以我就有了这么一个工作,就像解密一样将所有这些放到一起,『这一大个表格里所有人的建议,到底应该怎么搞』有趣的是,最后总结归纳出了7点,他们都在一定程度上同意这7点。之后我会从他们的回答中截取一些引用内容,虽然不是非常事无巨细的,但我会尽量传达准确的。
图7.2
在这之前,我想讲一个我觉得非常重要的事情,不要认为所有人都知道他们在讲什么,包括我在内。我说这个的意思是,你的游戏是独一无二的,你的社区是独一无二的,你也根本性地知道对你的游戏来说最好的是什么,没有万金油,而我今天讲的建议也不可能让你的游戏在一瞬间爆红。不过我建议你倾听、辩证地想、再决定其中是否有一些tips对你的游戏或是你要创建的体验有效。在今天结束的时候,你应该去做对你的社区和你的公司最有利的事情。
图7.3
根据我所交流的开发者们所说的第一条建议就是,『诚实地对待你的工作』。他们用很多种方式来形容,不过这实际上是他们提到的最大的一个建议。有些人形容游戏设计就像艺术一样;而另一些人——谈论到对工作诚实时——他们说的是,做你自己最严厉的批评家,确保你确信自己的游戏是值得人们花时间和钱的。
图7.4
这些人中最有发言权的一个人是Edmund McMillen,他说,『游戏设计是一次和玩家之间关于你找到的有趣的东西的对话』。他讲的差不多就是——嘿,这是一次对话,你应该通过你设计的游戏跟人们对话。另一个他说的是,『有激情的开发者会给他们的社区形成长期持续性的影响』。当他说到这一点的时候,他说的内容类似是——嘿你知道么,我的目标其实是尽我所能地对社区产生最大的影响;当我设计一个游戏的时候,我想让它有一个长期的持续性效应,然后不断的持续、持续。这实际上翻译过来就是游戏带来的兴奋感。他也——当他谈到这个的时候,他是说游戏设计像艺术中的人中的一个——他说,当你对游戏有激情,也非常喜欢你在构建创造的东西的时候,实际上这会将游戏从成为一件生意那里推离,而更多推向艺术。而且也能以艺术的角度来看待。他也说,『抛开你的工作的缺点,还有什么需要做的、以及那里还可以提升』。基本上就是,成为你自己最严厉的批评家,确保你在辩证地看待你的游戏以及它所处的状态——如果已经准备好发售的话。PC游戏玩家是聪明的,他们会知道你是否将自己投入到了游戏中,这一点不一定会转换成大量的销量,但是它会在你是否对你的游戏设计诚实这一点上留下最重要的影响。
图7.5
Garry Newman说,『为自己做游戏。我见到人们做的最大的错误就是,把并不是受众一部分、也不懂的人当作目标——仅仅是因为那里有着大众流行。』他有一个很强的论点,他说不要因为所有人都在那里,就去做游戏;不是非要追随潮流;做你真正想做的游戏。当我问他,是否有关于第二个问题的东西,就是『你有没有后悔过什么,或者说你学到的你的游戏没做好的东西?』他说没有后悔——这听起来很Garry。问问你自己,下一步要做什么样的游戏。作为Steam团队,我们一直会被询问类似于『如果我做一个恐怖游戏,标价19.95刀,我能预期卖出3万份吗?』或者他们会问比如『下一步我们该做哪种类型的游戏?』、『现在Steam上最流行的游戏类型是什么?』我们从来不会回答这些问题,这些问题其实不可能有答案,而且回答起来也很危险,因为事实上,没有任何正确答案。如果你在做的是你喜欢的游戏,那么好处很大;如果你要做一个恐怖游戏,仅仅是因为它是现在的热门类型,它只是会出现在你的游戏里。
图7.6
来自于ARK团队的Jeremy说,『作为一个小的游戏开发者,你无力承担所有部分都做到最好。找出你能在哪里能比其他任何人做得更好,然后在这上面进行打磨。』他这句话的意思是,搞清楚对你和你的团队来说什么是表现最好的,搞清楚你们的长处在哪里,然后在这方面努力。当我跟也在ARK工作的Jesse讨论,他说,当一个团队刚刚组建,要准备在做什么样的游戏上做决定的时候,他们需要在一起做一些自我反省,他们发现很快——他说的——做一个单人的故事型游戏不是他们的强项,也不是他们觉得能做成功的东西。在游戏创建之前他们就自己的团队非常诚实。但是他们知道他们非常喜欢生存游戏,他们想,『嘿我们觉得我们可以做一个非常棒的生存游戏,可能会比别的任何一个还好。现在问题就是,我们想做什么样的生存游戏?』所以他们就去挖掘需要什么样可以启迪他们的体验和东西。然后他们就在讨论中提出的80年代的秀,比如Dino Riders,成为了灵感;90年代的游戏,比如Turok: Dinosaur Hunter——这个游戏正好已经上Steam了,刚刚再发行了——;90年代的书比如Dinotopia也提出来了。他们在讨论的时候就有了这些共同的东西,『哦,我们整个团队都非常喜欢恐龙,有过许多关于恐龙的体验,而我们要做一个生存游戏。非常清楚了,现在就开始做一个恐龙生存游戏。』我觉得他们对此的激情贯穿在他们的游戏设计当中。
图7.7
另一个我觉得他们非常喜欢他们做的东西、做的游戏的例子是Stardew Valley。这是一个很有趣的故事,我跟Eric Barone谈论了他的游戏,他是本地人(应该是西雅图),他现在在SDD的某个地方,他说,当他去Tacoma的University of Washington的时候得到一个CS学位,结束了学业的时候,他试图在游戏行业内获得一个工作,而他想的是『嘿我马上就要投身进来了』。但是并不是那么简单的,获得一个工作其实比他预期中还难了很多,所以他就决定『我要找个工作』,他就在距离这大概两个街区的Paramount Theatre的街上做了个引座员,来支付自己的账单。然后在晚上和周末,他决定『我要开始制作一个游戏』——我猜的——他说这对他来说只是一次设计练习,用来提升自己的写代码技能、游戏工作内容,然后当他考虑这一点的时候,他说『好吧,什么游戏曾经启发过我呢?我用什么喜欢的游戏当起点呢?』然后Harvest Moon浮现了出来,他想『哦对啊,我非常喜欢Harvest Moon,我会做一个像那样的游戏,将这个作为一个有趣有激情的项目做起来。』这一个项目持续了四年,他不断地开发啊开发,直到它变得比我觉得他最开始预想的项目还要大。而现在它已经成功了,甚至是这个游戏的媒体评测也说,这是一个激情驱动项目,或者是他们可以看到它对于这个类型的热爱。这类东西甚至在媒体谈论的时候也贯穿全文。结果就是他卖出了超过100万份游戏,而游戏有好评如潮的评测好评率。
图7.8
他给你们的建议是,『相信自己,对你的游戏有完全的信心。不要让负面想法挡住实现的道路。特别对于单人开发者来说,这是一次战斗。』
图7.9
下一点从所有开发者建议里面提取出来的是,『注意你发售时间的把握』。这是非常简单的一点,但是你会惊讶于有多少人会找我们然后告诉我们,『哦我们准备在冬季促销当中发售我们的游戏』,这个时候我们会淡化商店页面,可能对发售你的游戏来说不是最好的时间。所以定下发售游戏的时间是非常重要的。
图7.10
有些他们说过的话。在Vermintide工作的Martin说过,『你不仅仅是在为获得人们的钱在比赛,而且也在为获得时间在比赛』。非常有趣,他实际上指出了这不仅仅是钱,还有时间,如果你想到了这方面,那么你就会想在接下来6个月里要发售的重要的游戏、重要的东西会是什么,你会和什么竞争人们的时间。有一些很重要的游戏每年都会出,很有统治力,大量的人都会玩这些游戏,所有人都去玩了然后你的发售时间正好在那个游戏的时候,这样可不明智。
图7.11
在Daedalic工作的Tom说,『使用Steam的即将推出列表,以及其他的网站,来看在你的游戏附近有什么准备发售的。』非常简单的建议,我们确实有越来越多的开发者在用即将推出列表了,你们可以看接下来3到6个月有哪些游戏准备发售,什么会出现。其他的网站也会展示给你这些有零售价之类的大型游戏会在这一年的什么时候发布。你可以很快地连到一起制作成一个发售日历。事实上,你可以将游戏发售日期定在一个非标准日,比如非零售日或者是你知道要出现的重要游戏发售日,这些看上去遵循一定规律并且非常容易摸透。
他说的另一个我觉得很有趣的是,『预购会稀释你的首周影响。这就是为什么我们不会为我们的游戏提供预购活动』这是从Daedalic那里获知的非常有趣的一点,因为他们过去常常做非常复杂的预购报价、一个有所有商品的报价、预购时间也是非常久,这些年,随着他们看到更多的数字化销量,他们学到了,用我的话来说就是,『我们不但在分散我们对即将上市游戏的市场营销,也在分散我们的顾客,他们会随着时间分散开。而我们需要在发售日附近有最大的影响。』在人们有较大概率购买的时候获得关注非常重要。我们看到的一个趋势是,即便是大型游戏、那些比大部分大型电影有更多市场营销预算的游戏,这些游戏会在一年内推广6个月,甚至是8个月,会有长达6个月的预购,但是当我们看那些游戏的数字版销量的时候,实际上基本上取决于最后的两三周,这个时候消费者们更有买游戏的意愿。在最后之前做的什么其实并不重要,人们更倾向于在离发售日更近的时候买。所以我理解Tom的意思是,『嘿你知道吗?去掉我们的预购,把它转移到首周,这样就只需要专注于在顾客们最有可能买游戏和投入时间的时候吸引他们了。』
图7.12
Tyrone在他的观点里表达地更透彻。他说,『我们避免在大型现实活动比如GDC、PAX或是E3附近发布游戏,我们也会在离季节性促销至少四周的时间制定发售计划。前一个情况下,你是在跟前后两周时间内活动影响力和新闻作斗争。而促销活动时,你是在强迫消费者在你的全价游戏和别的愿望单里(打折)游戏之间做出选择。』我不是暗示你们完全遵循他的建议或者是做完全一样的事情,也不是说两周这个说法也是准确的,不过我认为重点就是,看看将要有什么大型活动,考虑一下哪些时候媒体会因此而没空,然后避免这些时间段。
图7.13
下一点是『成为你的社区的一部分』。他们用很多种方式谈到了这个,而我觉得最重要的点是在到他们所在的地方跟他们接触,处在社区中,听取社区意见——有很多种方式可以做到这个,我会在接下来展示几个不同的例子。
图7.14
参与开发过Wasteland的Brian Fargo说,『获取你的社区的信任,致力于对你的游戏提供长期支持』Brain提到了信任可以用更新游戏、支持游戏、展示给社区你在致力其中并想越做越好的方式来获得,有时候与你的社区最有效率的沟通方式就是简简单单的进行一次大更新。当然你也可以考虑在大更新的时候进行促销,吸引新的顾客来购买游戏,如果时间合适的话。因为你在这个时候会有最多数量的玩家回来玩这个游戏,而这也是带来新顾客的好时机。社区可以是一个非常棒的引导,用来说明新加入游戏的特性或是你做出的调整。
图7.15
Kerbal Space Program组的Adrian说,『社区是你最有价值的指导,但最后的世界是你的。你永远不可能取悦所有人,所以别折磨你自己试图做到了』。我们都有过考虑『嘿,整个社区都非常沮丧,我不知道我该做什么』,他的观点就是『别折磨自己。你不能让他们所有人都开心,不过这也是最有价值的指导』——他也指出了这一点。所以听取社区意见也是非常重要的,社区中有非常丰富的知识,而他们也想将关于你的游戏以及现状如何告诉给你。
图7.16
在SDD 2014上,Valve的Robin Walker做了一个演讲,『游戏即服务中的社区和交流』。如果你没有看过这个视频,我推荐你们看一看,在YouTube搜SDD就有。他就Valve如何跟社区交流说了几点,其中一点就是,『从顾客那里获得的最好的反馈就是,在他们觉得我们不在的时候,他们互相之间说的内容』。他实际上说的是,参与到健康的游戏平衡、未来的新特性争论当中,说类似『嘿,我们作为游戏开发者,我们选择站某一边』,或者是『你们应该这么做』,这是非常有害的,因为这会破坏平衡而是你无法得到良好的数据。
图7.17
Meridith参与制作过Warframe,她说,『创建一个对你的游戏有意义的社区。你的粉丝是你最大的拥护者,而他们口中的赞美可能是你拥有的最有价值的东西。你的社区越强大,他们就越会越你的游戏进行战斗、守护。如何构建这样的社区?保持足够的透明度从而在你和你的玩家基础中构建坦率的关系,在线上出现于尽可能多的地方,比如社交媒体、Reddit、官方论坛、直播、in-person活动(怎么翻?就那种大家喝喝茶讨论的活动比如TED)。』我认为,她的重点是在,在他们在的地方和他们接触。如果他们在Reddit上,去那里,倾听。如果他们在Steam社区中心,去那里,去倾听,去成为社区的一部分,看看正在发生什么。找出他们聚集的地方,然后倾听。而这不意味着需要一个社区经理,给他们分工去跟社区交流、社区灰心的时候让他们去修复。跟社区交流需要是一件集体的事情,需要鼓励开发者们、美术们等等搜有人都能积极去倾听社区——他们对游戏的谈论和想法。有技巧的交流者虽然很好,他们写的很棒,可以帮你写一些很棒的内容,但是最后还是需要一个群体都成为社区的一部分。
图7.18
开发了Unturned的Nelson说,『时常更新你的游戏,这会跟社区表达出你在倾听。』Nelson有一个很有趣的故事,他致力于Steam上一个叫做Unturned的F2P游戏。在15岁时他开始开发这个游戏,之前是Roblox平台上的游戏,后来在高中的时候他将它带到了青睐之光上,所以他每天从高中回来之后就会上青睐之光看看有没有被青睐。最后他通过了青睐之光——实际上是相当快的速度——,而现在这是Steam上一个非常成功的F2P游戏,第四个玩过的人最多的F2P游戏。他是一个单人团队,但是他已经找到了融入他的社区的方法,这显示了,如果你回过头看一看,看看他在2014年发的内容:
图7.19
在这些更新公告的底部——本来可以是非常干巴巴的,只有一些补丁内容和更新——但是他在下方写到『今天的社区推荐』,然后放上了一个YouTube视频,里面是他的社区展示一些游戏里能飞汽车。他也,如果你注意到到上面一行,他说『不过明天没有更新,因为我要17岁了』。看起来很棒。之后他在游戏中加入了创意工坊功能,拥抱他的社区,甚至说『其实你们在做内容方面非常棒,不如来为游戏做点内容吧?』现在创意工坊上有25种不同的可以在游戏里实现的载具——UFO也可以加入到游戏了——,而他说他最近跟创意工坊的几个顶尖贡献者接触了,问他们『你们想一起做点什么吗?你们愿意做一个地图吗?我们一起来做一张地图吧。』,然后他们的反应就是『好啊我们一起做起来吧。』所以作为一个团队——他现在有一个团队了,作为个人开发者,有一整个团队的开发者想与他合作——然后他们做出了游戏最大的扩展,就是新出的俄罗斯地图。这个故事非常棒。
图7.20
他也追踪他的社区。有些YouTube播主在做一个这个游戏的真人秀,叫做GangZ,他们在一起扮演不同的角色,非常的超现实,就像你在游戏里看电影一样,非常有趣。他说他也追了这个,也加入更新来支持他们。最近一次在俄罗斯地图的NPC的更新中,他加入了这个YouTube系列中的一个角色,他将一个叫P. Riso的超级推销员带入了游戏。这就是社区中的用来玩乐的东西,在游戏中成为了现实。
图7.21
下一个是,『努力不要成为时间表的奴隶』。这不是意味这不要有计划、时间表之类的东西,我觉得他们的重点更在质量方面,质量应该比时间表更重要。
图7.22
参与开发了Chivalry的Steve说,『永远不要发售一个『足够好的』游戏』、『质量和打磨可以指数型地报答你』,他谈到的冲突存在于时间表和质量之间,有时候它们是矛盾的,而你需要决定是对于游戏来说时间表更重要,还是质量更重要。他的观点是,质量和打磨是最重要的。『游戏设计是一次耐力跑,你需要在发售前将游戏质量做得尽量远』。PC消费者是明智的,把一个做到一半的游戏卖出去作为一种赚钱的手段并不是一个很好的计划,人们会看穿,会知道游戏没有做完,你很快就会得到反馈。
图7.23
有几条实用的方法用于测试你的游戏、帮助提供一个你的游戏是否准备好的晴雨表、以及是否在计划时间表中合适。你需要测试你的游戏和市场营销,将游戏摆到能给你真诚反馈的人们面前、给你需要的有建设性的批评。很多方法可用于测试市场营销,比如即便是放上一个即将发售页面,你也可以看到有多少人加了愿望单,比如改变capsules、改变游戏介绍,是否可以看到加愿望单数量的改变,这是可以收集的有意义的数据。向各种人测试你的预告片,问他们『从开头的30秒中获知了什么』——就这一点Tom已经谈论了一些——、『看了这个之后你现在是否想玩这个游戏』。你也可以使用使用发售后失效的Early Access阶段的keys,那个启动Steam后黄色的keys,然后让几百不同的个人尝试这个游戏,看看他们的想法。实际上我跟这里的不少人都谈过,他们说他们来SDD的真实目的是,『我们想认识几百个开发者,而我们的目标是获取一个电子邮件列表的反馈,给他们EA阶段的keys,这样他们就能尝试我们的即将到来的新游戏了。』
图7.24
参与开发Divinity Original Sin的Swen说,『你没有第二次机会来给人留下游戏娱乐价值的第一印象,所以你需要它立刻就是对的,甚至是在EA阶段。当人们理解在游戏早期版本会有bug时,他们需要的是乐趣,如果你的游戏不能提供这个,不要发售,EA阶段也不要,继续迭代。』他也说,『我发觉资金是粗糙的,尤其是在一开始的时候,但是如果你发售了一个一点意思也没有的游戏,你将永远也不会达到收支平衡。』我觉得他指出了一个事实,『根本上有趣是最重要的事情,不要变成时间表的奴隶。』
图7.25
接下来一点是『做一个你承受范围内的游戏』。这一点,人们用了很多形式来表达,不过中心就是『我们想做的核心游戏是什么?我们认为我们需要什么样的特性来达到目的、将我们的设计传达给用户?』
图7.26
来自Mojang的Mans说,『限制最初的范围,制定小游戏的计划,然后在加料』。他的意思是,『我们尽量让游戏是小的,这样每件事就可以花更多的时间』在我们跟游戏开发者的讨论的时候,有一个很明显的普遍问题就是他们的规模、为游戏制定的计划过于庞大。坐下来跟他们交谈后,我们会说比如,『你真的需要多人游戏吗?』或者是『你需要在发售时就加入所有这些特性来让游戏有趣吗?』因为那些特性也需要成本。『哪些元素是让你游戏有趣所必须的?』
图7.27
来自Mojang的Henrick也说,『加入额外的特性相当于给马拉松中10米』,我觉得这个很有趣。他谈到了游戏设计就像马拉松,非常大,如Steve所说,是一场耐力赛。这是一场长途旅行,推进非常艰难,发售前每一步都步履维艰,而当你决定『我想把这一堆特性加入进去』就像在半途中告诉一个精疲力尽几乎无法完成的马拉松选手,『嘿,我们额外加10米』然后又是10米、10米,哦再加10米;在某些时候你必须考虑成本,决定这么做是不是对的。
图7.28
Swen说,『专注于你的目标平台和语言。限制范围会帮助你专注于把游戏做得有趣』。我的意思并不是,要做独占游戏、或者Steam必须是你的目标平台,也有可能你的游戏更适合主机。取决于你的团队和规模,你需要决定『我们的目标平台是什么?我们的目标语言是什么?我们规模有多大?我们都有哪些资源?发售时做完哪些内容是比较实际的?』他也说了,『如果你没发疯、加入将所有的语言和平台,而游戏也没有超级成功,那么你也不需要在发售前加入这个额外的负担。』非常有趣的是,本地化非常重要,所以我并没有说不要将你的游戏本地化或是只专注于英语,我的意思是,专注于你觉得对游戏有利的和必须要有的部分。
一些关于本地化的有趣的数据。我们统计了Steam用户数据,发现超过一半的Steam用户并不是以英语作为母语的,在Steam中。实际上Steam用户中有58%的人并不是一定会说英语,所以以他们为目标是很好的用来增加影响范围的方法。另一件我们注意到的事情是在日本,日本销量前十都有日语本地化,这个数字在前200中大约是59%,所以本地化在开拓用户网、将游戏呈现给最多的人中非常重要。但是这可能也不是你在发售时就应该做的,我会给你们The Long Dark的例子,看看他们是怎么做本地化的:
图7.29
他们在发售时只有英语,然后来自Hinterland的Raphael说,『之后我们分析了数据,看了Steam统计,哪里的人在买我们的游戏,我们就以那个作为加入什么语言的准绳。』他们很快就发现11%的销量来自于俄罗斯,6%来自于德国,所以他们就决定这两个作为接下来要做的首批本地化语言,而这也是他们获益。现在俄罗斯玩家占了21%的游戏时间,而德国玩家占了8.5%,所以在他们加入本地化之后是出现了增长。他们也知道他们这样一个小团队没有能力本地化所有他们希望加的语言,所以他们做的就是使用了创意工坊来实现本地化。他们将官方的英文文本放到了创意工坊中,而他们表示『我们只需要等,看看社区是如何开始本地化这个游戏的——这是兴趣点之一。我们也可以看看这些不同语言订阅人数的数据,它们会在订阅数中排名靠前,然后就可以在最终润色之后用于官方的本地化了』。所以他们现在有了12种官方本地化语言,以及另外18种社区创意工坊支持的语言,总共30种语言,而游戏还在EA阶段。这让尽可能多的人都能接触到这款游戏,也同时让Hinterland团队在能承受的范围内开发了游戏。
图7.30
另一个例子是Action Henk。RageSquid,在EA阶段刚发售时,我记得我带着儿子在2014年的PAX上遇到了这个团队,我们玩了游戏,非常好玩,我们也玩得很尽兴。他们做的就是他们找出了让游戏好玩的必备特性,随着时间再慢慢成长。他们当时显然不能承担现在已有的所有特性,所以在2014年游戏看起来是这样的:
图7.31
它有单人游戏、Steam排行榜——基于速度挑战的排行榜让游戏变得有意义——、以及完全控制器支持——因为在客厅里玩这个游戏非常有趣,而用手柄玩是非常好的方式。到2016年,他们加入了所有这些蓝色的特性,也登上了8个不同的平台,他们基于社区反馈不断地加入特性,而现在游戏里甚至有了关卡编辑器。他们也发现了开发游戏的方法,做一个能承受的游戏,然后随着时间加入特性和平台。
图7.32
另一个开发者们让我给你们的建议是,『让你的游戏明显地有趣』。他们用了很多形式来解释,其中有一些是说找到如何形容你的游戏之类的方法。
图7.33
Steve说,『挖掘你为何制作这个游戏的核心』,搞清楚比如『我们为何开始制作这个游戏?我们想做的是什么?』,搞清楚『我能不能有效的传达?我们能不能将游戏传达给别人?他们能不能get?』让你的游戏独一无二的是什么?搞清楚你能挖掘的这些内容,然后告诉别人『这我们游戏不同的地方』。他也说了,『专注于你的游戏的核心、独特的方面,然后提升它们』、『用一个短句形容你的游戏』。这在开发游戏的时候非常有用,如果你能弄清楚『能用来形容我们游戏的短句是什么』,那么它将帮助你设计特性,能帮你弄清游戏的范围,『什么主题、物品、特性能帮助我们让游戏有趣?』我挑选了一些我觉得还挺不粗的短句的例子:
图7.34
Clustertruck的是,『在糟糕的司机驾驶的高速卡车上跳出你自己的路,在这个『遍地岩浆』的游戏中通过疯狂的关卡』(妈的定语真多),甚至是他们的capsule你也能看到是『骚乱』的形容词,他非常的疯狂,到处都有火,山谷里有岩浆流淌(只有少数关卡有,明显他搞错了the floor is lava的意思,意思应该是不能碰到地面),我觉得『遍地岩浆』是一个非常容易想象的,就像『地面是岩浆,我需要远离它,我要如何you know(我不know啊)』你已经抓住了游戏机制,而不在控制范围内的卡车就像『好吧,他们会是疯狂的』,他形容得非常好。
图7.35
Subnautica的形容是,『下潜到充满了奇迹和危险的外星水下世界深处。制造装备、驾驶潜水艇、与野生动物斗智斗勇,来探索茂盛的珊瑚礁、火山、洞穴和更多——同时设法生存下来。』这是它的形容。当我进入游戏,我获得了跟我预期完全一样的体验,在大约10分钟里,我知道了『这完全就是我期待中游戏里会发生的东西。』我在水中听到了外星人,我想到深渊、制造潜水艇、生存。这些在将游戏形容给别人中都很有用。
图7.36
Gang Beasts的形容是,『Gang Beasts是一款蠢蠢的本地多人派对游戏,它有暴躁的凝胶人物、暴力的近战格斗招式和不知道为什么非常危险的环境。』在这个介绍里,我得到的是『这是一个跟朋友玩的派对游戏,会是暴力的、搞笑的——他们的美术也很好地抓住了这一点。』而这样的形容,在早期也可以弄明白『我们要怎么做这个游戏』,也准确地反映出了我们在讲的内容。
图7.37
最后一点开发者给我的是,『整体等于部分的和』。他们讲到这个,有意思的是,这也是一些个人开发者们说的。你会想『这是怎么做到的?在那种情况下是如何工作的?』
图7.38
Tyrone说,『将你业务的每个部分都看作过程中最重要的部分:编程、设计、配乐、市场营销和顾客支持』。他的意思是你需要一个有各种人的强力队伍,可以相应各种工作来实现同一个目标,而任何一部分都不应该被忽略。这就类似『我们队伍内要有平衡,让我们假装市场营销是最重要的,也假装编程是最重要的』,这样你就不会有什么东西拖后腿了。
图7.39
Brian Frago说,『内部征求反馈,没有人能单独考虑到所有东西』。他谈论了很多关于团队思考,考虑如何跟社区交流之类的东西。采取谦卑的态度来交流和设计游戏,说『我们最好作为一个团队』。开发者应该成为社区交流的一部分,而那些设计、开发游戏的开发者们也应进行团队思考,他们之间也要互相交流。很多成功的单人团队也有类似的帮助,在Eric Barone和他的Stardew Valley中,他有Chuckleshifh站在他身边直到开发结束,帮助他、支持他、帮他营销。他说这对他来说是非常大的帮助,让他能发售游戏,而他也知道这不是他的力量。Antichamber的开发者Alexader Bruce说他从Indie Fund的人那里获取了很棒的反馈,他们也提供了营销建议,在知道他在成功需要的方面并不擅长的情况下手把手帮他发售了游戏。
图7.40
Mojang的Henrik说『太多(开发者)认为他们可以忽略其他行业里的已知销售和营销规则』。我觉得这就是,非常有趣,他是这么说的,而我也见过,我见过很多已经和将要上Steam的游戏说,『噢我们甚至没想过怎么交流这个游戏或者是怎么给游戏做营销。我们只是专注于开发游戏,我们从来没想过发售日或者说即将发售周』。如果你们缺少这样的角色,那么考虑接触一下别人。在SDD这里是一个很好的例子,你周围有很多开发者,他们中有些人非常擅长市场营销和销售,会很乐意给你建议和帮助。房间里有很棒的艺术工作者、很棒的开发者、这些人都不能再乐意地帮助你,行业里人们如此的开放和有意愿实际上非常让我惊讶。实际上有些人他们在开发的游戏会彼此形成竞争,但是他们也非常愿意提供建议和帮助。你可能知道有人,甚至是你家庭里的人可以帮助营销、预算、设计之类的。
图7.41
Jesse也谈到了这一点,她说,『成功的游戏开发者有三个核心竞争力:创造力、技术和商业。无论大小,确保你的团队拥有专业性和能力在持续的紧迫感下推动这三个方面。如果缺少其中一个,你永远也不能挖掘出完全的潜力。』结尾非常重要,完全的潜力,你的游戏如何达到完全的潜力?你要做什么?当你向顾客要钱的时候,你需要什么资源来发布游戏并确保是有趣的?
图7.42
总结起来,我想说是,需要『对工作诚实』、『创建你喜欢的体验』——创建你想玩并长期提供支持的游戏。在这一旅途上你不是一个人,这不是不可控的一团。我记得当我学着滑雪的时候,有人告诉我的最重要的一条建议是,『不要乘坐你的滑板,驱使它们』,而这在我搞明白如何一起使用滑雪杆从山上滑下中也非常有价值的。你可以驱使你的游戏,你有培养体验、培养选择创建的社区的机会。
图7.43
感谢所有这些开发者所付出的时间,以及他们如此慷慨地分享建议。他们中有许多人在今天的SDD,如果你碰到了他们,感谢他们为Steam 201做的事情,他们是给你们建议的人。非常荣幸我们可以在这个包容的游戏行业中,我也鼓励你们走出去,在这里和别人分享你们的经验和人脉。我要留给你们的是这个:
图7.44
『对你自己诚实,在一个适合你的团队和时间表下开发一个你想玩的游戏。』
谢谢!
(观众掌声)
图7.45 标准结局 散客游。
8. STEAM 库存服务
By Jon Pile (Valve)
(观众掌声)
在这之前,我想说说我今天的目标。我要讨论的是关于Steam库存服务——我们开发的用来方便你集成入游戏加入Steam经济的服务。我的目标是,首先,让你们考虑在游戏中添加这个经济、或者说小型交易系统。不过我怀疑可能在座的所有人至少都已经考虑过,所以我实际上想告诉大家的是,这个并不难,是可以加到游戏里的。
图8.1 agenda
我要讨论的内容:首先,我会花一点时间大致讨论经济系统的好处。我们之前有涵盖到这部分,之后会稍微讲一讲。然后会讲随之而来的成本和风险,这些都已经被做了这个的合作伙伴所确认,并给了我们反馈。我们会谈谈如何使用Steam库存服务——这是本次演讲的标题——,不过我们会根据提议给我们的几个途径来讲。当我准备这次演讲的时候,我接触了一些已经用过这个服务一段时间的合作伙伴。我问了他们在这当中学习到了什么、想要给其他要开始做的伙伴们传递什么。
上一次的SDD,Kyle Davis进行了一次关于游戏内经济的演讲(in-Game Economies in Team Fortress 2 and Dota 2 ),包括了案例学习——我们早期在Valve经济中学到的东西,非常的详细,有很多数据;也包括了非常重要的原则——我们认为是这些系统基础事实;也有供你使用的可操性建议和设计理念。
图8.2
总结起来重点就是,经济系统和小型交易系统是你可以提供给玩家的让游戏更好的工具(你为什么不看图说话!)。给你们看看我们的推荐是什么,这五件点是基于我们当时已知的内容,乐于分享给考虑使用这个系统的伙伴们的:
图8.3
最重要的是第一点,形成持续性顾客的价值。我们从没想过从一个不开心的消费者那里赚钱,我们希望用这些系统来让一切变得更好。
自从我们上次的这个演讲,市场已经以很多形式参与其中了,它变得先进了,但是很多东西还是原样,有些也没有改变太多,而这五条理念或者说是推荐可以给你非常有用的过滤来检验你所看到的市场系统。
我想我们都知道pay to win的危害,这就是一个很好的负面外部效应的例子——有的人用小型交易,但是变得更糟了;我们看到了一些例子,呃,我们在我们所称的『渗透型小型交易系统』——我们不喜欢这些系统,我们觉得非常蹩脚——中看到,他们试图通过让玩家沮丧来让他们花钱。
当然,这里面也有积极的例子。我认为现在最好的一个,如果你们去过公共场合比如餐厅之类的话,遇到有人买了Pokemon Go里的诱饵,你可以看到那种兴奋感就像波纹一样传播出去,人们拿出手机,所有人都很开心。这就是一个积极的外部效应,超赞,他们使用了小型交易系统,让附近的所有人更愉快。现在别做这个,我刚刚开玩笑的(吐槽怕所有人去抓小精灵)。
『交易』排在列表最后,它可能是最重要的,因为它影响了所有其他的东西。我觉得交易最重要的部分是在于它变成了游戏之间的桥梁,我在之后马上会谈到它。
图8.4
如之前所说,经济系统已经可以被你们集成入游戏,这意味着什么?我们为那些早期游戏——应该说是早期游戏内经济游戏——开发的交易、市场、小型交易系统。不同于在游戏中单独开发这些内容,他们是用Steam开发的,然后我们将这些相同的工具供给合作伙伴。
那么如何集成呢?在那个演讲里说的是,来问我们怎么做。而步骤是这样的:
你构建一个持续性的资源服务器asset server,这个资源服务器由你运行,包含了所有的玩家库存、你的游戏中的所有玩家的所有物品。你可以按照你喜欢的方式代表他们,每个物品需要用较少的数据还是较多的数据。你可以决定何时创建物品,将之分发给玩家们,只要扔到他们的背包里就行了;如果你想要的是随机掉落,那就创建随机掉落,如果你想要基于游戏时间,你就创建基于游戏时间的。如果你想做物品消耗,如果现在游戏内做可消耗的物品,你就可以创建消耗的代码。同时在你这么做时,你也用使用了这个资源API。这个资源API首先非常的奇怪。对不起(讲错了)。你使用到的资源API会给Steam经济服务一个途径来发送请求到你的服务来移动物品,这就是我们如何运作交易和市场交易系统,也是我们用来获取用户库存内容的方式,这样我们就能在游戏客户端和网页显示他们的背包。
图8.5
这太刺激了,合作伙伴们参与了这个实验,他们整合了这部分,也有了开发Steam共享经济、Steam全局经济的想法,而这个让人非常兴奋。因为交易使得每个物品、每个玩家都相对于其他该系统中的玩家来说增加了这个系统的价值。虽然有点奇怪,但事实确实是这样的。它将价值的分歧转化为力量,交换物品的两个玩家都能从这次交易中满意而归。同时我们之前也说过,我们开始在游戏之间看到了桥梁:在这个游戏中我可以赚取一顶帽子,从中获取价值,然后用这个在另一个我感兴趣的游戏中买一个锤子。
前面提到过,我们现在已经有可用的供合作伙伴的整合系统,当我们公布这个的时候,我们已经有了少量几个在用这个的游戏,所以自此以后也不仅仅只有Valve游戏而已。在第二年我们有了更多的游戏参与进来,而其中有部分在这上面现在已经非常成功,我们看到了一些除Valve游戏外的非常大的游戏经济体。这非常棒,因为越多的游戏参与进来,对于玩家来说这个系统就越强大。
图8.6
可能你会以为我会放一些幻灯片,来讲讲已有过几十亿次交易或物品之类的,事实上我没有追踪这些数字,我发现它们并不会影响我们的发展决策,我们获得的是其他会产生影响的反馈。我们从合作伙伴听到的是——就是在上次SDD会议上——他们说,『这非常让人兴奋,很高兴你们要着手做这个,但是对我们不适用这一点太糟了』。这警醒了我们,我们以为这对于几乎所有人来说都是有用的工具,但是很多合作伙伴都觉得它不是给他们用的、不适应他们的需要,也就是说这中间有我们没预料到的风险和成本,而他们使我们能够获知。
图8.7
首先就是,当我们讨论到它的时候,这些原则听起来只适用于非常大的已有经济体或者是已有庞大玩家基础的游戏。我们说过,你应该搞一个实验,控制很多的小变量来看返回的数据。当你已经有数以百万计的玩家交易物品的时候,这将变得非常简单。在顾客感知方面是有风险的,当你在游戏里提供这些服务的时候,他们会如何接受到是不清楚的。这对于起步的人来说意味着什么?如果你是小型工作室或者是一个个人开发者,感觉上完全不适用于你的状况。哦,我刚刚按到了一个糟糕的按钮(好像是按到了关闭,然后切了回来)这就对了,修复了,呼。这真是个危险的设计。(观众笑)
图8.8
我们也听到了关于成本的反馈。我要往回退一页因为我不小心跳过了这页。从永久资源服务器开始,它有自身的风险。关于规模你需要担心多少?第一天的流量会有多少?你需要多少预算用于这个系统的带宽?会有多少交易?这很难提前知道。对游戏开发者来说,这是一个非常为人熟知想法,可能比在软件行业的任何一个其他部分都有名:你能想象到曾经在发售日的服务器变成一堆融化的铝和铁。它们的成本首先是,你可能不知道,但是它确实是长期责任。我们讲的是用了很长时间开发的长期游戏。你知道现在很多人开始将游戏称作为服务,但是并不是所有人都想要这样操作。可能他们想要完成什么东西之后继续别的东西。这个成本感觉上是永久性的,而有些团队,事实上是大部分团队,都完全不想要运作什么服务器。
图8.9
还有一个问题就是,这些成本是伴随着时间的。在你可以让你的玩家尝试到原型之前,你就需要花费所有开发成本、构建服务器、进行测试、集成到Steam经济。我们说过,收集数据,然后根据数据来行动,但是在你需要提前花费所有时间和精力的情况下,这非常难做到,而且也会花费掉你更应该用在游戏上的开发时间。
图8.10
再说一次,我们认为对几乎所有人来说这都是一个非常好的工具,但是我们提到的这些合作伙伴却认为不适合他们。所以我们就吸取了建议,修改了我们的渠道,目标当然是为了让任何一个开发团队都能获取。如果你不想要运行服务器,那也没关系。它应该是易于开发原型、与玩家进行小型实验的,开发试验系统,随着之间进行迭代,加入复杂性。加入复杂性这个概念,也适用于服务本身。你可以问一些奇怪的问题,比如『我们可以让它易用到很多很多的开发者会试用这个系统吗?这样我们可以看到很多的原型,而其中有一些会变为产品的系统』,以及『我们可以让非常小的工作室、非常小型的工作室有能力为非常大的玩家群体经营经济系统吗?比如说,不多于两个人的开发者管理数百万的玩家』。
图8.11
猜对了也没有奖励,因为这就是这次演讲的标题,也是我们创建Steam库存系统的原因。所有你需要整合入Steam全局经济的内容都是后台实施,在Steam上免费提供,你不需要担心基础设备的成本。所有你需要对接的Steam API都在Steamworks SDK中——可能你已经用它来开发游戏了——可以找到。最初有交易和市场特性,而在下一年我们也集成入了其他东西,所以现在也有了Steam商店页面、创意工坊。
图8.12
我们将Steam库存服务看作是一样为开发者解决问题的东西。当我在准备这次演讲的时候,我也提到过,我问了合作伙伴有什么建议,而这些建议我将它们分为了五个主题,现在我就来讲一讲。首当其冲的当然是,你如和将这些库存服务加入到你的游戏中,这样就能弄清楚它们有没有用、能不能对游戏机制产生有趣的影响。
图8.13
图8.14
图8.15
这里我要举一个例子,Armello图8.13是一个残酷的童话故事RPG桌游,它在几种情景下使用了库存服务,今天我想谈的一个是骰子。骰子是游戏的关键之一,很有趣的是在多人游戏的时候使用它们是有的学问的。这是两个买了骰子的玩家图8.14,我会放大这样你们马上可以看到,你选择带的骰子对你可能有些微妙的表达,而最酷的是它们会有所有人都能看到的有趣的视觉特效图8.15。当你玩游戏的时候,Steam会追踪游戏时间,而在一次公开的多人游戏比赛的总结页面,你有一次获得随机掉落的机会,这个掉落可能是骰子的新皮肤:
图8.16
还有一些别的东西,我之后马上会谈到。当你获得这个骰子的时候,它会属于一个稀有级别图62,你也能想到,从普通一直到传奇的等级。图中的这个是一个稀有的限时额外周年皮肤,用户非常高兴能得到它——我们知道他们很高兴,因为他们截了图、花时间上传到了Steam社区,这样别的人就能看到、评论点赞。市场会反映不同皮肤的稀有等级,正如你所能想到的,在Steam社区市场中稀有的骰子的价格更高。
图8.17
这是一个非常快的回顾,不过基本上贯穿了整个经济系统。新玩家可以追求各种目标,也可以用不同的方式达成目标。这不但驱动了他们的游戏内行为——他们是否会去收集新皮肤——,同时也驱动了他们游戏外的行为。我们看到在Steam讨论和其他的社交网络里,他们互相寻找、创建一些交易的临时讨论,来获得稀有和限时物品。从交易、市场行为和游戏内行为中,也能提供足够的数据来激发新的实验。你可以看到稀有等级,物品和稀有物品的估值随着时间定型,你可能会想『如果我们加入一个新的稀有等级会说怎么样的呢?这会对数据产生什么影响?』
这里我要展示个东西,当然这是通过多次迭代、大量用户反馈和游戏测试后调整和细化过的,但我觉得非常有趣的是,开发类似的系统只需要少量几个实现技术:
图8.18
让我们来谈谈这些步骤。你需要启用库存服务,这里你需要定义对你的游戏有意义的物品类型,然后调取一些客户端API来掌握掉落机制和库存管理。再说一次,这也是我非常喜欢的一点,这个例子能在完全的客户端方面的调取下完成。
图8.19
首先,让我们来启用游戏的库存服务。所有你关心的设置都在Steamworks合作伙伴页面上。你需要创建一个API密钥,用它来启动库存服务,然后打勾。当我看到这个的时候,我就想看看在启用和首次编写下创建测试物品的测试之间需要多少步,结果是大概7-8次鼠标点击就可完成所有后台支持,这非常棒,但是我觉得如果我是一个开发者,除非它说『点击这里获取糖果——虚拟糖果』,否则我都不会满意。
图8.20
现在你知道这是一个技术轨道,因为有固定的字体用于显示配置。源代码也可被接受,如图就是一个终端的截图。如何将游戏中会有的物品信息告诉给库存服务?我们要求你上传一个含有每个物品定义的json文件,我们可以调取这些内容,非常简单,而概要也基本是我们能做到的最小的。你可以随时加入新的物品、上传物品。
所以什么是『物品』?这是一个很好的问题。这是任意一个能出现在玩家背包里的东西,显然可以是皮肤、武器、一些装饰物,也可以是在多人游戏中可用的嘲讽、表情,还可以是消耗性物品,比如游戏内货币完全可以是一种物品类型,再比如虚拟公寓中的家具。你来决定它们是永久的还是消耗性的,你也可以决定它是装饰用还是在游戏内有游戏体验的影响,比如数值提升。最后你来告诉Steam这个物品是不是可交易的,以及玩家是否被允许在Steam社区市场上售卖。你需要告诉我们一些信息,关于如何在网页、玩家背包和Steam客户端上展示它们。你需要提供所有Steam支持的语言本地化。
图8.21
同时也有一些特殊的物品,而不仅仅是简单的物品。特殊物品允许你做出一些非常有趣的行为,他们也使用同样的jason概要配置,通常只需要额外添加一两行代码来变为特殊物品类型。这部分我要讲的所有的逻辑都是在Steam库存服务上安全运行的,在服务器层面运行,所以你不需要担心玩家会在客户端层面修改定义,从而改变制作配方或是掉落速度。
首先是游戏时间,通常也是大家会在做系统原型时先尝试做的几个之一,因为这个是最容易设置的。你只需要配置特定的物品类型,来让物品根据游戏时间自动掉落。你也可以配置冷却时间和掉落限制。冷却时间就是,你可能只需要1小时的游戏时间来获得这个物品,但是在一周之内只能获取一次;而掉落限制就是允许玩家获得特定物品类型的次数,如果你设置了只能掉落一次,那么在整个游戏体验中只能获得一次,当然也可以设置成3、10等等,任何数字都可以。你可以随时上传新的配置文件到合作网站上以更改这些要求,这样你就不需要改变你的游戏客户端,也不用改变控制掉落速率的源代码。
我非常想分享这么一条建议,因为我特别喜欢。可能会花上1分钟,我也没写在幻灯片里。有一位使用了这个系统挺久的合作伙伴建议说,『保持保守』。他说,『从你认为保守的数字开始,然后减半、减到三分之一,这个有可能是正确的数字。』我觉得这挺棒的。
图8.22
生成器是一个实现随机性的简单方法。你需要用文本语言提供给我们一组可能的物品类型,以及每个类型的概率。当玩家获得一个生成**品时,我们实施逻辑执行、在服务器端进行掷骰操作、选择物品——那个要掉落的物品。这就是稀有度机制的核心,你可以细化出任何你想要的稀有度,比如在10,000次里有1次会掉落传奇物品。
图8.23
捆绑包也十分简单,它就是会展开成一系列的物品。不过捆绑包和生成器可以以有趣的方式结合起来,这就是你实现如下逻辑的方法:比如我们需要选择一个稀有等级,而如果它在传奇这一列中,我们需要在那些里找一个,又或者是并不单单只给你一个物品,我们会给你这些里面的一个,加上那些里面的三个。
图8.24
最后一种特殊物品类型,或者说特殊物品规则是关于合成,将一种物品类型变为另一种。在Armello中,你可以对五个指定类型的骰子进行转换,通过一个被称为『变形』(transmogrification) 的过程,变为一个随机的下一个稀有度的骰子。如果你仔细想一想,你就会发现这个方法在经济体系中提供了一个水槽,给玩家们提供了除将不想要的物品放到Steam社区市场以外的另一条方法。之前我说在Armello中游玩的时候会掉落骰子皮肤,其实我有些过分简化了,事实上你获得的大部分时候是一个箱子或者钥匙。这个机制我相信很多人都熟悉,而现在也发生了变化,掉落箱子、购买钥匙,很久以来一直都是这样的,但是Armello选择同时将箱子和钥匙作为随机掉落。而这两者之间有特定的概率分布。我们也看到了有些游戏只掉落箱子,你可以直接打开或者选择交易。
图8.25
箱子和钥匙通过合成配方结合在一起,创建一个生成器。这个例子中,我们假设生成器是根据稀有等级在一系列生成器中选择的一种,比如说我们选了罕见,然后在罕见这个稀有度中,我们在三种骰子之间等概率选择。同样地,也是简单的规则的叠加。你可以修改规则、生成器规则、捆绑包,所有这些内容,同样也只需要上传新的物品类型。这意味着你可以限时更改来测试些内容,也意味着当你检测到问题时、或者想更改有点不对劲的东西之类的事情的时候,你可以在不修改客户端代码的情况下做到,而不需要发布新的客户端,也很可能不需要去碰源代码。
图8.26
最后一块是客户端行为。这部分均在Steamworks SDK中,有一个叫做IsteamInventory的类class,我觉得我们应该花5分钟一起读一遍——开个玩笑。(观众笑)如果你使用的是Unity,Steamworks.net也包括了这部分内容。三个功能——你只需要三个功能来完成我们刚刚讲过的Armello的例子。在游戏开始的时候你需要获取库存;在每次多人游戏前,或者是你觉得有可能因为某些原因掉落物品的时候,你要检查一下游戏时间掉落,如果玩家已经有足够的游戏时间,那么触发它掉落到他们的背包里——有这么一个请求;最后在合成,或者说是『变形』的时候将它们换成更稀有的骰子。你可以在p2p游戏和单纯的单人游戏体验中都使用所有这些功能。如果你想要消耗性的物品,显然这里也有一些我没讨论到的其他方法。消耗性物品、堆叠物品、分割物品,这些功能都是在客户端被支持的。这个功能有详细的记录,而且在Steamworks SDK中也有一个示范应用SpaceWar,拥有能运行的代码——你们可能都见过也玩过了。
以上差不多就是你们能在原型中实施的内容了,你可以创建物品,给玩家掉落物品,观察玩家会拿它们干什么。
图8.27
我们从多个伙伴那里听到他们想要使用不同的掉落机制,之前我谈到的都是根据游戏时间掉落,而除了这个,如果你想要在游戏内奖励特定物品——对不起,是游戏内特定机制、特定行为——怎么办?又或者,你想到了一种机制,但是又不适合我们之前谈到的按照时间计算的掉落机制。
图8.28
我们来讨论稍微一下Gremlins Inc.。这是一个回合制桌游,你扮演一个腐败的资本主义地精——可能这可以作为一个游戏类型。这个团队想要随机掉落,不过他们想要对掉落的内容和时间有直接的控制。在这个游戏中,掉落的概率跟你玩的卡牌的组合有关,而不仅仅是在客户端内的时间。当你获得掉落的时候,你会得到一个箱子,不需要钥匙就能打开,而箱子可能会给你一个游戏内可以使用的表情、头像、嘲讽之类的。在他们开发这个系统的同时他们也开发了自己的分析系统来看每个月会掉落多少的物品,然后他们发现他们需要为这个经济设计一个水槽——这个概念非常重要。在这个例子中,他们将物品限制了使用次数,所以当你得到这些表情的时候——我觉得这个玩家有的是怀疑和无辜的表情——它有你能使用的有限次充能,而这个会在库存服务这边跟踪。一旦数字变成了0,那么这个物品会从背包里消失。你也可以跟踪随着时间变化,掉落了什么物品、哪些是人们持有的、哪些是他们立刻使用的、哪些是进入到了市场中的。
图8.29
沿着这条路走下去需要一点更多的服务器基础设备。你是在直接控制物品的生成。而途径是通过网页API——这需要一个API密钥——与库存服务沟通。这个API密钥有许多针对游戏的特权,所以很重要的一点是千万不要把它放到分发给人们的客户端中。如果你把API密钥放到了游戏客户端,我们来给它个时间单位,我觉得是以分钟数计算,每个人都会有传说级别帽子了,到时候我们都会很沮丧的。
这是一个高级功能,因为他需要一个你运行的游戏服务器。不过这样提供给你达成其他想法的途径,比如对做出有趣行为的玩家给予奖励。如果你为多人游戏的结束页面烦恼,在多人比赛结束加入积分是一个不错的主义。你可以奖励特殊内容的物品,或许获胜和失败下有不同的物品几率,又或者你可以通过游戏过程中使用一个特殊物品来增加稀有物品掉落率。同时你也有可以——这个我们现在见到的还不多,不过至少有一例——在玩家不在游戏客户端时掉落物品,点亮Steam客户端内的绿色信封(就是通知里的那个),告诉他们有一个新的物品在等着他们。
图8.30
我们相信小型交易是你可以使用的,来让游戏对所有人都变得更好的工具。这里有些非常简单的例子可以引导你们:可能你们在给喜欢以固定价格买固定物品的玩家提供服务,而不是那些喜欢随机概率获得特定物品的玩家;可能你们在尝试加入新的物品类型的时候觉得这相对于随机掉落来说是个不同的方式;或者你们在尝试在即将发售的新游戏内容中加入配件。
图8.31
当我们谈到物品的出售,我们想首先谈谈将要面临的风险。顾客接受度是最大的一个风险。你的用户会评判你的设计,而如果他们觉得这个设计没有遵循让每个人都更好的原则,他们会给你明确的反馈。定价其实是其中的一个子部分,而定价本身也是一门科学,如果发生了不匹配顾客期望的错误,那么同样地,会导致市场的拒绝。
我们想让这部分的危险性更小,我们认为你随时都应该在真实数据的基础上做决定,我们也不建议你在第一次库存服务中必然地加入可以出售的物品,这做起来很难。我们认为你应该尝试小型试验,根据之前迭代中学到的东西来调整,到处收集你的用户的数据。另一件可以做的事情是从伙伴获取建议。这个房间里的人,有人已经经历过这些战斗了,他们现在有伤疤或是帽子中有羽毛(象征成功),证明他们曾经做过,而这部分也非常有用。
之前你们可以有两种途径来出售游戏内物品。一种是伴随DLC,你可以将物品的掉落关联起来,自动掉落给拥有特定DLC的玩家。这里需要一些额外工作,首先DLC需要额外的时间来建立,其次它也象征着会有一些游戏内容,所以会倾向于指定一个较高的价格,而这样就会导致你想要打包更多的内容,这就与我们最初想要小型迭代的愿望相差越来越远。另一种途径就是小型交易API,对于前面我说的这个系统来说也非常有效。不过它也需要一点更多的设置,要求有些你需要考虑到的服务器的基础设备,而且也只在游戏客户端内可见。所以当有人看到你的游戏商店页面的时候,他们看不到有提供小型交易的物品。
图8.32
而这就是为什么我们要创建物品商店。物品商店是一个特殊的库存服务附加,它加入到了Steam商店页面中,所以当你看商店页面的时候,你可以看到游戏内可以购买的物品。这是Unturned的商店页面,如果你没听说过Unturned,那你可能是那部分少数人。这是一个F2P的合作生存游戏,有一个非常大而且活跃的社区。它在很早期就加入了库存服务,他们也花费了很长时间在这上面。在这里能看到最近最流行的物品,我会放大这样你们就可以看清楚商店页面里的可见内容了。当移动鼠标到上面的时候,它会显示『购买可用物品』,如果你点击了它,那么它会带我们到物品商店。
图8.33
物品商店提供给顾客在网页上、Steam客户端上和游戏中一样的体验,所以如果你想要集成这个,我们推荐的方法是在Steam overlay上唤出物品商店,几乎不需要些代码。你可以给销售的物品加上标签和分类,你可以按照类型、类别、与游戏的哪一部分相关进行分类。你可以结帐,顾客们可以使用Steam钱包结帐。物品商店里的物品是可退款的,顾客有一小段时间——通常是48小时。如果物品跟他们预期不符,只要他们没有消耗掉或者是修改过物品,那么它就是可以退款的。
图8.34
那么我们要如何设置呢?首先是标记要出售的物品。我们只需要在物品配置中将价格和物品关联起来,也就是在那个json格式中加入定义。如果你认为有些物品需要放在一起,比如一系列的皮肤,你同样也可以给捆绑包定价。你甚至可以在这里设置限时的促销价格。你可以设置任意多种货币,不过一条基准线就足够了,而我认为最不需要维护的方法就是使用VLV货币代码。VLV是我们维护的一个货币转换表,在VLV中,100被指定是0.99美元,然后对应到每个Steam支持的货币单位。当我们加入新的货币单位时,我们也会自动更新这个表格。我们管理转换汇率、随着货币变动而改变,但是相对于小幅度的涨跌,我们提供的是较稳定的价格,因为我们认为这样可以在市场中提供更好的用户体验。
图8.35
第二步就是配置商店本身。一旦你给一个物品分配了价格——一个物品就够了,不要觉得你需要一开始就推出五六十个物品——一旦你给一个物品分配了价格,你可以给物品商店进行配置和风格设置。同样我们回到合作伙伴页面,你提供商店的名字、背景插图和颜色,你也可以提供物品的目录格式图8.35。在你向公众发布之前,你也有一个链接供你预览用户将会看到的样子图8.36。
图8.36
图8.37
之前我重点提到了定价在特殊情况下是风险,所以我现在再稍微讲一讲。再说一次,我们推荐你们在尽可能多的地方收集数据。先掉落物品可能是最好的方案,你可以构建好稀有等级,然后就可以看看社区市场和别的地方这些稀有等级对应的价格是什么。这时候你的用户已经对物品应有的价值有了一定的心理价位了,这时候获取任何关于他们心理价位的信息,都可以让你进行相应的尝试和定价。
我们也推荐你们考虑允许玩家交易在物品商店内销售的物品,这让你的用户有机会部分回本。如果他们之后决定想要买别的物品,他们可以先卖了这个物品,取回一部分资金,然后在Steam别的地方使用。
很多合作伙伴选择销售的东西和他们在游戏内提供的掉落不一样,实际上我们觉得如果你尝试售卖之前免费赠送的物品是一个很大的风险,这样会导致用户预期的失衡,而趋向于做出不愉快的反应。顺便,如果你打算售卖的物品完全不一样,比如你之前只是掉落装饰品,而你考虑售卖状态加成的物品,那么你也进入了一个相当危险的方向,因为你完全没有这方面用户预期的数据、不知道定价点位应该在什么地方,所以我非常不建议这样的尝试。
图8.38
这里我要讲定价的另一个注意事项。今年的早些时候——我记得应该是八月——,他们在Unturned里发布了俄罗斯地图,是之前所有游戏已有地图的四倍大小。这是一次免费更新,但同时他们也宣布会有新箱子在物品商店里直接售卖。这就是在地图发布的同时包含了可选内容,而反响也非常正面。我认为这突出了一个非常低风险(售卖物品)的方法:你可以在伴随其他游戏内容中加入付费的可选内容。
图8.39
接下来我们稍微谈谈用户生成内容UGC。我们非常喜欢UGC,我们认为这是让用户竞争、创造出提供给游戏的最好的补充的好方法。我想特定地谈谈curated workshop(创意工坊精选?),以及它和Steam库存服务互动的方式。
图8.40
你的社区中的创造者为你的游戏提交内容,你的玩家谈论和投票,他们可能反对也可能同意,选择他们最想看到在游戏内加入的内容。作为开发者,接下来你可以接受以你的标准接受物品,可以进行投票来看看受欢迎程度,或者就是实行直接的精选、选择你最喜欢的东西。我认为它最好的地方在于,在你开发完成任何内容或是加入到游戏内之前,你就已经可以从用户那里获取反馈。我要给你们展示最近两个人们用Steam库存和创意工坊进行的不同的尝试:
图8.41
Payday 2是一个四人合作射击游戏,也是一个早期的库存服务采用者。他们已经在一个主题保险箱中发布了14种不同的物品收集品,(不是箱子而是)保险箱是因为这是一个抢劫游戏。当他们宣布支持Steam创意工坊的时候,他们也同时宣布了社区保险箱。社区保险箱只包含来源于社区的皮肤。他们挑战了这个有创造力的社区中的玩家,而且还定下了期限,表示『这就是提交的期限,而我们会将这些打包进人们将会在游戏中获得的保险箱中』。
这个物品是普通的游戏内掉落物,它不需要钥匙也没有单独出售。如果你在游戏内收到了它,你可以打开然后得到其中一个皮肤,或者你可以选择交易或是在社区市场出售。因为开发者们不卖这个保险箱,他们就没有用来奖励提供这些内容的艺术家的方式,所以他们选择对每一个收到的皮肤,那个艺术家可以获得一整套加入到社区保险箱中的皮肤,包括传奇皮肤。他们可以选择保留皮肤、在游戏中使用,或者出售它。
第一个社区保险箱的反馈,我觉得在社区中是非常正面的。他们也在做第二个社区保险箱——现在正在开放提交——的时候做出了一些改动。
图8.42
Unturned选择了一个稍有不同的方向。我觉得他们也非常能感受到这个痛点,开发团队非常小,而社区明确表现出对于新物品的渴望。如果我们来看这个游戏的物品商店,在今年年初的时候,甚至是六个月前,我们都会看到里面只有一个物品,而仅靠着一个物品的售卖也非常的成功。而现在已经有超过70个物品,而除了那一个一直以来都有的物品以外,剩余的全部来源于社区。当你将一个物品接受到游戏中时,你对它创建一个库存服务的物品定义,然后使用创意工坊ID将它再链接回创意工坊的提交那里。
Steam在一开始就可以追踪创建这个物品的艺术家,当你卖出这些物品时,在Steam方面我们会适用付款规则、掌握收入分配,然后直接付给这个艺术家,因为我们非常相信需要给予创作者报酬。而在捆绑包物品的例子中,如果你想要卖一个箱子,比如我之前提到的俄罗斯神秘盒子,这些都是社区物品,你需要将捆绑包内物品的价值进行划分,而我们会进行计算和支出。
图8.43
最后我想讲的是,使用这个系统的游戏所使用的通过发布新物品、特殊活动等来为玩家提供长期价值的方法。你可以认为它是对一个经济体的维护。可能有些词你们已经想到了,比如用户黏性retention和参与度engagement,我认为它们是指标,是长期快乐玩家的指标,它们自身并不是目标。
图8.44
这是Depth的即将发布内容的页面。Depth是一个异步鲨鱼vs潜水者的多人游戏——这也应该归类为一个游戏类型。(观众笑)他们是众多告知我们将发布和收集作为重要策略的合作伙伴之一。我们推荐你们将物品以对你游戏来说有意义、主题上相关的方式进行分类和发布。在Payday 2里,我们就提到了保险箱;在Armello,每个骰子的收集都有一个主题箱子和配套的钥匙;你也能看到这组Depth即将发布的皮肤里也有相关的主题元素。
你可以宣布会有新物品的发布,这样可以给你的社区一个产生轰动和兴奋的机会。如果你不知道要讲些什么,这就是能谈论的内容。游戏告诉我,对不起,说错了,合作伙伴们告诉我,在新物品发布之后会有玩家声音(应该指的是参与度之类的)的上升,那些已经玩过一阵子的人可能之前在做别的事情,他们会回来看新的物品都是干什么用的。
顺便地,当你这么做的时候,花点时间给你的物品加上他们属于那一次发布的标签,这样的话,当玩家们在Steam社区市场或者自己的背包中看到物品的时候,他们就会在时间上对物品有一个系统的认识。
当你加入新内容的时候,你可以选择加入之前已有的收集品,你可以将新物品加入到掉落列表中、保持其他的掉落率不变,或者是降低之前的收集品的掉落率,甚至是让它们完全不再掉落。这就要提到类似保护较老物品的真实价值了。这些再也不能通过随机掉落获取的物品,在之后只会变得更稀有,而玩家们会非常珍惜它们。如果收集者们决定集齐一组,那么你会让他们非常的努力。
图8.45
我们从合作伙伴那里听到的一些别的策略是在这同一个方面(特殊活动)。
我收到的回复中,有一条我非常喜欢也很想分享的就是,更改掉率是万恶之源一次活动的起因。如果你想要,比如短时间内增加稀有物品的掉率;或者你想做一个更容易维护的版本:使用相同的概率但是唤出生成器两次,在特殊周末活动的时候给玩家们两倍的物品;这是一次让很多玩家一起上线的机会。这通常会提升游戏匹配,也有可能变为一次所有玩家都在的特殊活动,变得有纪念意义。
我们看到的其他策略也有在短时间内提供稀有限定物品的掉落。我相信大家都熟悉周期性发布的想法,比如常常与节日有关。你可以选择将它作为随机掉落,让人们在那段时间有几率获得;也可以是自动获取,只需要少量游戏时间和加上掉落限制就可以。
另一个想法是使用DLC。之前我说过你们可以让玩家自动获取特定DLC中的物品。你可以创建免费的DLC包,关联上物品,然后分发这个DLC包的Steam key。我们见到的这种方式是用这些物品在Steam外奖励玩家,然后应用到游戏上。比如一个例子就是会议的参与者,或者是你发现在别的社交媒体上活跃的人。
图8.46
我想再绕回来,评价一下我们在这些目标的相关方面以及之前一直在解决的问题上做得如何。
图8.47
或许我应该提醒一下大家我们的目标是什么。有这么几个主要的问题,我们能否让很小的开发团队来管理一个提供给数百万人的虚拟经济体;我们能否能让很多团队都觉得足够易于使用而想要做一个原型、和他们的用户进行尝试。
图8.48
第一个方法就是,从整体上看看有多少个游戏已经在使用这个经济了。这张图只是显示了已经出产的游戏,所以没有开发中的或是测试程序之类的,我也移除了Valve游戏,所以这里面只有在使用Steam经济的合作伙伴游戏。你可以看到,当我们发布Steam经济的时候,已经有了一些合作伙伴在做早期集成,而在最初这段时间你也可以一些增长,而我也说过,这时候加入的一些游戏在后来成为了非常庞大、有活力的玩家经济。你也可以看出我们是什么时候引入Steam库存服务的。我认为这个曲线的形状给我了信心,证明了我们正在正确的道路上,让它变得容易获取和使用。在今年,使用这个经济的游戏的数量已经达到了两倍多,我认为这是一个非常好的消息。不过这些数字相比Steam上的游戏数量来说仍然还是很小的一个比例,所以显然工作还没有做完。
图8.49
第二个方法,也是我发现的第二块有趣的数字是,每个游戏中定义的物品类型数量。这张图只显示了库存服务游戏,你也可能注意到了数字加起来比上一张图里数字要多,这是因为包括了开发中的内容,还没有将经济集成公开。有很多不同的使用模式,而且所有的都是有效和切实可行的。他们中的每一个都有产品化的游戏在跟玩家们使用这些服务。开发中的游戏,那些仍在尝试中、开发原型的游戏大部分都属于左边两条中,而超过17款游戏有超过100个物品定义。我问过的另一个问题是允许非常小的团队和非常大的经济体,所以我们看最右边这一条,那些游戏已经使用了这项服务很久了,他们在前一张图中属于早期部分,也在这张图中处于右边。三个游戏有超过2000个物品,实际上有一个游戏有超过3000个被定义的物品,而这个游戏只有一个单人的开发团队,就是Unturned。他们也有社区在创造内容,而这部分最终只是我们在过去六个月内看到的,所以它再一次给了我信心,我们在正确的道路上,我们不但可以增加易用度,也可以增加你在小型开发团队下就能实现的复杂度。不过工作仍然还没有结束。
图8.50
这是一项服务,而我认为我们想要,不,不是我认为,是我知道我们想要随着时间提炼、适应、改进它。它从玩家的反馈,不,是合作伙伴的反馈中产生。我们重新说一遍。它从合作伙伴的反馈中产生,而我也想在合作伙伴的反馈中改进。如果你觉得我们能让这个变得更好,我们非常乐意倾听你的意见。讨论组是最好的用于起步的地方,如果有新的特性、文档有所改变、有些东西看起来不怎么对劲、有需要测试的想法或者成形中的东西,这会是我第一个发布这些内容的地方。说明文档有我今天所说的所有内容,如果我今天谈到或是声明是正确的东西,这个说明文档里没有给我背书,那么这会是我非常想知道的问题。最后,你也可以直接跟我联系,如果你对服务和这次演讲有反馈,如果你对它如何应用到你的游戏上有疑问,或者你觉得它不适合你的游戏。
现在,虽然我觉得Q&A环节非常有用,因为可能你有疑问,或者我说了什么无厘头或矛盾的内容——这不会是我一生中第一次犯这种错误。但是我觉得我更应该让大家早点出去休息,我知道今天后面还有一节。今天剩下的时间我都会在这里,明天一整天我也会在这里,如果你有问题,请找我。我也有些同事志愿做这个,所以如果我们需要扩大规模,我们也可以这么做。我非常想要听到你们的反馈和问题。非常感谢。
(观众掌声)
阿撒托斯要吃糖 1年前
发布