Cocos王哲:区块链游戏,其实也没什么神秘的|葡萄区块链

来自 COCOS 2018-03-27
深度

[ 转载自 COCOS ]

Cocos王哲:区块链游戏,其实也没什么神秘的|葡萄区块链

本文为Cocos引擎创始人王哲在Cocos区块链游戏开发者大会上的演讲,首发于公众号“COCOS”,游戏葡萄已获转载授权。

在周六的 Cocos 区块链游戏开发者大会上,我和 INB 资本的合伙人尹健辉一起演讲和演示了基于 Cocos 引擎开发的区块链游戏的编译、发布、运行在 Cocos 公链上的整个过程,以及游戏道具脱离游戏后在链上存储、交易、然后从链上回到游戏里,把武器挂件装备上去、以及把炸弹消耗掉的整个过程。

由于这部分演讲是用对话形式开展的,速记稿也比较凌乱,毕竟太多技术干货了,所以我打算直接用这篇长文,完整阐释我们做了什么、计划做什么、以及为什么要做这些事情的整个思路逻辑。这篇文章真的很长,请耐心看完。

一、为什么我们要着手区块链游戏的研究

在和健辉一起演示区块链之前,我的个人演讲的部分,解释了为什么 Cocos 要在今天开始着手研究区块链游戏的方向。我自己讲了大概 30~40 分钟,其实核心是围绕这张图来展开的:

q1.jpg

目前手机原生游戏领域的多数从业者,都是 2012~2014 年才进入这个领域的。但是我们 2010 年就开始做 Cocos2d-x 了,在 2010 年 12 月 1 日发布了第一个版本 Cocos2d-x 0.7.0。当时我周围的人都很不理解,为什么不做端游呢?为什么不做页游呢?当时国内的市场环境,手游上就App Store可以达到每月 50 万的最高月流水,还不够端游月流水的一个零头;安卓上则完全没有任何游戏变现模式,没有内购计费没有广告变现,那么你们在瞎折腾啥呢?

后来的历史,大家也都一起经历过了。这是 3 月 12 日上周一我做区块链游戏大会的 PPT 时,截取的几个国家游戏畅销榜排名,Cocos 游戏仍然占据了大多数。Cocos 引擎被喷了这么多年,事实证明,在中国市场上,仍然是市场占有率最高的手游引擎。网易的几款 3D 游戏,我们内部称为「Cocos+」,就是在 Cocos 的基础上,网易自研构造了整个 3D 引擎叠加上去。我半开玩笑地和网易的朋友说,你们大概用了 20% 的 Cocos 吧,那么就调成 20% 透明度?于是就有了下面这张图。网易的技术路线,也说明了 Cocos 在 3D 的潜力,只要我们假以时日和研发投入,希望 Cocos 引擎也能做到像《楚留香》那样级别的 3D 能力,而且不是属于某家游戏公司的,而是属于全行业的。

q2.jpg

但是原生手游领域,在 2017 年开始就已经进入我称为「生态稳定」的状态了。「生态稳定」是中性词,说难听点是「生态凋零」,大厂占据了绝对优势地位,这个领域即使越来越赚钱,也和大多数中小 CP 和创业者没有任何关系,基金和风险投资也不再愿意投资 CP 了。在 2017 年大家看不到太多机会之后,很多人离开了游戏行业,改行去做 O2O、直播、大数据、人工智能等新兴领域了。但还是有很多和我一样,就是热爱游戏行业,一辈子只认做游戏的朋友仍在坚守。

直到 2017 年 12 月 28 日微信发布小游戏,2018 年 3 月 15 日 Facebook 宣布开放 Instant Games 平台,都把 HTML5 小游戏推向了风口浪尖,大家才看到新的机会。之前有提前做 HTML5 技术布局的游戏公司,都从中获得了很大的增益。Cocos 引擎也在微信和 Facebook 首发小游戏里得到了新一轮的爆发,占据了绝对优势的市场份额。

q3.jpg

q4.jpg

微信小游戏在上周已经可以注册和调试了,并要求大家准备各种资质材料,相信距离完全开放、可自由发布已经不远了。Facebook Instant Games 则在发布的当天就立刻完全开放,而在平台开放后仅仅过了 7 小时,就有一家国内游戏公司用 Cocos 引擎发布上去 8 款游戏。

所以,现在回头来看,我们在 2012 年开始布局和探索 HTML5 游戏开发技术,和大家介绍用 JavaScript 语言开发游戏,是完全正确的。

今天对于 Cocos 开始探索区块链游戏的各种技术,社区论坛里有不少质疑和嘲笑的声音。但是回顾前面几年的历史,我在 2012 年开始介绍用 JavaScript 来开发原生游戏,用 JSB (JavaScript Bindings)技术打包到原生平台、而且还可以发布到 HTML5 环境的时候,当时有多少人反对、嘲笑、觉得我们不务正业呢?甚至到我们在 2016 年 3 月推出 Cocos Creator,以 JavaScript 为第一优先的开发语言时,仍然有至少 50%~60% 的开发者跳出来骂。当时很多人喷的是,Cocos 团队不务正业,我只关心我的 C++ 和 Lua,我不需要 JavaScript。今天小游戏的机会来了,你还能那么确信 Cocos 团队在几年前投入 HTML5 技术研发是不务正业吗?

我们每次在一个技术爆发、未到成熟的时候,就立刻提前布局一些新技术的研发投入,其实就是为了在老技术老平台「生态稳定」的时候,可以给诸位开发者提供「多一些选择」。回到第一张图,原生手游领域我们 2010 年开始研究,2012 年爆发;这时候我们不等原生手游发展到生态稳定的阶段,就立刻投入 HTML5 技术的研发,即使被人喷、被人认为不务正业;6 年后 HTML5 小游戏爆发证明了我们的技术前瞻性,同时我们也不会等到 HTML5 进入生态稳定,现在就需要立刻布局新的技术平台了。从目前的情况来看,区块链游戏的确是一种很有潜力的新技术,值得我们去研究。

很多开发者看到这里就会问了,OK,你说服我了,我也支持 Cocos 研究新技术,但是已有的原生和 H5 引擎是否会受影响?我在这里统一答复:不受影响。因为我甚至不太想把区块链研发团队建在厦门,和引擎团队放在一起。主要原因是厦门基本就没有区块链技术高手。目前可演示的 Cocos 区块链项目几个研发人员在成都,我最终会在北京和成都中间做出一个选择,毕竟这两个城市人才比较多,目前暂时倾向于成都。但同时,厦门的 Cocos Creator / Cocos2d-x 引擎团队在春节后也大举招人。这里顺便打个广告,对自己的引擎开发技术有自信,希望一起做一个全球一流引擎、一起做一家伟大公司的朋友,可以在微信上、或者通过微信公众号联系我,我们招2D/3D/编辑器技术高手,工作地点厦门。

在周六的会上,我也展示了 Cocos Creator 2.0 的性能飙升,我们只是用了在 3D 研发上得到的部分成果,一个 2D/3D 通用的渲染器,把 Cocos 原来的底层换掉,然后就得到了这样的性能提高。Creator 2.0 目前已经出到 Alpha-5 版本了,而且这次拉了腾讯互娱的大神们进来趟坑。填完坑之后,应该在 4~5 月份,就可以发至少 beta 甚至 RC 版给大家用了。

q5.jpg

会上我也演示了 Cocos 3D 目前的工作流,以及一款可以部分客户端 2D、部分客户端 3D 的麻将游戏。我们希望通过这种技术方案,让开发者们可以平滑过渡到 3D 方案上,甚至因为是 H5/热更新的缘故,可以做灰度发布和 A/B test。具体演示过程大家可以去看这周稍后放出的会议录像。

q6.jpg

好了,讲完了我们为什么要进入区块链游戏领域的逻辑,以及让大家放心我们对原生/H5的投入,和 Creator 2.0 版本即将带给大家性能上质的飞跃。

下面进入区块链的内容了。

二、区块链黑话翻译

几个月前,我刚开始看区块链相关资料的时候,也是极度懵逼的。后来发现,链圈自己发明了很多行业术语,或者说「黑话」,其实和手游圈一样的。外行人看手游圈,我们也是一堆黑话比如:SDK、API、次留、七留、人均阿普(ARPU)、付费阿普(ARPPU)、LTV、CPA、CPI、CPC、填充率、CPM 和 eCPM 还讲的是完全不同的东西……。类似地,搞清楚链圈的这些术语之后就容易理解多了。

所以在我和健辉一起完成演讲之前,我坚持要求把很多链圈的行业术语「翻译」成了游戏圈的术语,当然还有一些无法翻译的,我只能在这里简单科普一下,链圈的极客们就不用看了,主要给游戏圈的 Cocos 开发者们看的:

  • 游戏运行在区块链环境上 —— 目前阶段,一般指的是游戏接入了区块链 SDK,在金币内购和道具生成/交易/兑换的时候通过区块链 SDK 调用任一区块链节点提供的API。最理想状态是游戏绝大多数逻辑、甚至全部逻辑都由智能合约构成,完全在智能合约虚拟机中执行。

  • 区块链虚拟机、智能合约虚拟机 —— 区块链 SDK 上绑了 JavaScript 、 Lua 脚本或 Solidity 脚本的执行环境。JSVM、Lua VM 的确是翻译成虚拟机没错。比较有意思的是,现在的区块链系统中,通常是数个节点共同执行并见证一份智能合约。

  • 区块链浏览器 —— 这个模糊的命名是被我吐槽最久的。其实它不是一个架设在区块链上的网页浏览器,而只是网站上登录后,类似「我的账户」里面可以看到「我的交易记录」以及每次交易记录区块描述的这么一堆网页。这应该是直译 Block Chain Expoloer 的锅。区块链浏览器通常还带有合约浏览、共识过程监督、出块记录、理事会等功能,这就看具体的设计了。

  • Token —— Token 是一种权益证明,并不是区块链特有,例如Q币也算是一种 token,在中心化系统中也可以发行和流通。从技术上来说,区块链和 token 是可以完全分开的。区块链系统中的权益证明,能通过加密算法和分布式账本标明资产的唯一性、确定真伪、并通过共识算法进行流通。一般 token 会被通俗理解为数字币。比特币、以太币、以及在以太坊上用各种智能合约生成的数字币都叫 TToken。实际上 token 也可以用来证明你拥有某种游戏道具,比如屠龙刀、裁决的拥有权,这就是虚拟资产的持有证明了,而不是纯粹的币。

  • TPS —— Trade Per Second,每秒能交易多少次,这是区块链主要性能指标。比特币大概 7 TPS,以太坊 25 TPS,而石墨烯技术的链理论上可以达到 10 万~100 万 TPS 的峰值吞吐性能。

  • 石墨烯技术和 DPOS 共识方案 —— 咱们行业多数游戏都是专制独裁式的。我游戏厂商今天要做个运营活动、发个道具,直接由游戏厂商说了算;比特币则类似全员民主投票制,稳,但是效率真是太低了;而所谓的石墨烯技术和 DPOS 共识就是类似咱们国家的民主集中制,大家先投票选出几个代表,然后由这些代表负责后续的日常投票就行了。这种方法在民主的低效和专制独裁的风险之间,取得了一个很好的平衡。Cocos 链就是采用这种技术的,否则每秒不到 30 次交易的那些公链,怎么可能支撑商业化游戏的运营呢。

更多的链圈黑话,大家自己去网上搜索学习吧。我就不多写了。

正式开始之前,我得强调一下,我们是链圈的,不是币圈的。区块链底层技术可以拿来讨论,发币炒币这种事情就不用讨论了。我本人连股票都不炒的,比特币和以太坊钱包都还没开。花那个时间不如撸代码和打游戏有意思。

有媒体或开发者用「区块链引擎」来描述发布会后的 Cocos。这样的解读是不对的,游戏引擎就是游戏引擎,我们只是可以让开发者能更方便地接入区块链 SDK 而已。这和引擎提供广告、提供统计等服务的本质是一样的,甚至和引擎支持微信小游戏平台、支持 Facebook Instant Games 平台都是类似的。Unity 的 70% 收入来自于他们自家广告平台,人家也不会称自己是「广告引擎」嘛。正确表述是,「今天 Cocos 让游戏可以通过引擎快速接入我们的区块链 SDK 了」。

Cocos 区块链项目的名字叫 Project BCX,BCX 的全称是 Block Chain Expedition。BCX 在我们内部一般读为 /biks/。Expedition —— 让我们去远征吧,很可能是像 HTML5 技术一样,三到五年的一趟远征,最后带回来给开发者多一种新平台的选择。

三、区块链游戏的四阶段发展路线设想,以及我们的对应实现方案

首先,我们认为区块链游戏的发展,会分为四个阶段:

第一阶段:使用 token 作为游戏金币的结算

这一阶段的区块链游戏使用 token 作为游戏金币产出的结算。 一些项目的数字币基于以太坊的 ERC20 标准进行制作,基于 ERC20 协议发行的 token 很容易交换和兼容可用于不同的项目和平台, Token 的持有人可以完全控制资产并且跟踪到任何地址任何数量,其流通路径可在区块链浏览器中查询。 Candy.one 的游戏平台是这一阶段的代表。会前宣传说我们会演示 Cocos 游戏接入 Candy.one 平台,其实我们在现场根本就没有演示,因为这一阶段实在是太容易了。对于引擎而言,就和接入一个微信支付宝 SDK 一样简单。

q7.jpg

真的是很简单。我们一款已经开发好的 H5 游戏,加入 Libs 里面两个混淆过的 JS 文件,调用这个区块链 SDK 的 API,构建,搞定。什么区块链容器、区块链虚拟机,我们游戏圈的人不用理会这些概念,就是接入一个 SDK,2 天时间搞定。

这个阶段会遇到的局限是:token 是同质化的,只能用来表达积分、金币这样的纯粹数字,无法表达不同的道具。比如说,你在游戏里打出了第一个钻石、然后第二个钻石,就可以记录为你有 2 个钻石,这个叫「同质化」;但是如果你有了第一只以太猫、第二只以太猫,两只猫的毛色、眼睛、形态都不一样,这样你就无法在链上记录说你有「以太猫x2」了,第一只和第二只以太猫需要分开记录,这叫「非同质化」。所以我们需要立刻进入第二阶段。

第二阶段:游戏金币和道具的去中介化、去代理交易

以太坊的 ERC721 Token,就是一种「非同质」 token 的标准范例。而之前大火的「以太猫」,就是非同质 token 的代表性应用。所以,不论是游戏中的道具、装备、玩家账号,你手里有把风之力、有把蛋刀、或者裁决,都可以用非同质 token 来表达。这个 token 代表了你对这件道具的所有权,可以脱离游戏去买卖交易。

该阶段解决了玩家之间道具脱离游戏在链上交易、甚至是不同游戏里交易的问题。由于这个过程是去中介的,理论上到达该阶段之后,玩家就不需要像 5173、交易猫这样的道具交易平台了。你不再需要把账号密码给到一个交易平台上的代理人,那个代理人起到平台信誉担保的作用,一边收了买家的钱,把钱给到你,然后再一边把装备和账号给到买家,中间赚取差价。

我们的 Project BCX 正处于这个阶段,会稍微往前一点儿有个第三阶段的雏形。周六我和 INB 资本合伙人尹健辉在演示中,重点演示了我们已实现该阶段的功能。

q8.jpg

健辉在这个地方有个很特别的设计是,交易的「原子化」实现。虽然「付钱」和「得到道具」是两件事情、属于两笔不同的记账,但是 Project BCX 里面的规则是把这两笔记账绑定到一起,成为一个「原子」,如果你付了钱没有得到道具,或者得到了道具但是付款失败,这次交易的「原子」就会整体失败、整个回撤。而区块链的去中介去代理化,就是说只有你自己能对自己的道具和金币进行操作,在原子化交易规则之下和去中心挂化挂单、撮合系统的帮助之下,你在链上的交易里,再也不需要有道具交易平台那些代理人的帮助了。

但第二阶段的缺点是,游戏运行规则仍然是在链之外的。虽然道具的产量、流通是透明的,但产出规则仍然是可以被游戏厂商暗箱操作的。今天做个运营活动,明天出个新boss,结果玩家花了大量时间、或投入大量充值购买的装备道具被快速贬值。玩家和游戏厂商的价值严重背离了。我们不少游戏人,天天想着怎么洗用户,用户又不傻,很快就跑到王者荣耀、吃鸡游戏、TapTap 等「不会被洗」的地方去了。

第三阶段:关键规则上链运行

如何才能保证我作为玩家不会被反复洗呢?不会说得到一件橙装之后,下个月的运营活动里就被快速贬值呢?我们设想了第三阶段应该实现的功能,就是比如高级道具的掉落、金币产出规则等上链运行,游戏运营方将这些关键规则在区块链上以智能合约的形式实现,在区块链浏览器的支持下,规则对玩家是公开、透明的。

之前有提到,Project BCX 稍微有了第三阶段的雏形。我们设想并实现了一个很有趣的功能,称之为「铁匠铺」。铁匠铺应该是一个由游戏运营方、游戏玩家代表共同成立的治理委员会,关键规则在治理委员会讨论投票通过后,所有关键道具都只能通过铁匠铺来生成。未经过委员会讨论通过的情况下,游戏运营方是无法单方面生成各种道具装备的。

所以:

  • 铁匠铺是具有道具、装备制作权限的账号和一组合约。

  • 铁匠铺是独立于游戏的道具产出点。

  • 铁匠铺的道具,具有限量性或唯一性。

  • 铁匠铺由游戏厂商、玩家、玩家公会等构成的治理委员会管理。

其实进一步想,这么设计之下,游戏的运营和收入方式会有很大的改动,游戏本身也会变得有趣:比如说在同样的三国世界观下,我们可以在《三国志》里面获得一把青龙偃月刀,记录到链上,然后到《真三国无双》里面割草,接着到《街机三国》里面把曹操砍了。

这些游戏一开始可能是同家游戏厂商做的不同游戏,但最后有可能演变成不同游戏厂商做的不同游戏,但都接入同样的链、同样的世界观、同样的道具产出和交易规则、被一个世界观治理委员会管理。多家不同游戏厂商和玩家一起讨论、制定、公开青龙偃月刀的产出规则,而游戏运营的收入,就不能通过「洗用户」来维系了,而可能是通过提供区块链记账的算力来收取交易手续费。表面上看因为不能洗大R而短期收入降低了,但是游戏的生命周期则可能拉得很长,游戏厂商的关注点不应该是付费点设计和运营活动了,而是专注于有趣好玩的游戏内容生产,回归游戏的本质。

其实这一点我们还没完全思考得特别清晰,但直觉上这是一个正确的方向,让玩家和游戏运营方的利益一致化,实现游戏的长期运营和收入。如果我们今天不想做出一些改变,只是靠不停滚服洗玩家的话,最后玩家即使不玩你区块链游戏和铁匠铺规则,也会跑去玩那些大厂的公平竞技游戏了。

我和健辉在周六的演示里,演示了「只有铁匠铺账号才能创建道具」的功能,但对于游戏运营方和玩家、和玩家公会如何成立一个治理委员会来决定这些道具产出规则,则没有想得太明白,毕竟这已经不是技术的范畴了。

第四阶段:游戏整体上链运行

这个阶段的脑洞就比较大了。我们设想,行业的最终形态可能是游戏整体上链运行,游戏的全部逻辑代码都在链环境中执行,并由去中心化的区块链网络承载和存储数据,在这个场景下需要可信、高效、无延迟的运行容器与轻量级的节点,用于游戏的运行。但是,哈哈,目前业界尚无决定性的技术方案,大家各种链的性能和算力显然都扛不住啊。也许某天会有哪个顶尖聪明的程序员提出解决方案,这只能等了。

四、Project BCX 希望解决的问题,和技术特点

总体来讲,我们在区块链游戏方向的探索,希望能解决以下技术问题:

1、合适的区块容量和出块时间。容量太大么出块时间慢,容量太小么,怎么记录各种道具的一大堆数据。石墨烯方案的最大区块大小为 2M /块,对于记录游戏道具,这显然不够用。我们具体定多少呢,还在测,反正中间找到个平衡点。另外,我们也已经做了一些改进;

2、提供自定义数据结构存储。你这游戏是把风之力,那个游戏是把屠龙刀,每个游戏记录自家道具的数据结构肯定是不一样的,我们也不应该强求大家一样。所以块里面应该能支持自定义数据结构的存储;

3、提供带有区块链操作接口的多平台游戏运行环境。这句话翻译过来就是,区块链 SDK 应该能跨 iOS, Android, H5…… 这句基本是废话,本来就应该如此;

4、提供用户道具交易的 token 交换原子操作。这点上面已经讲解过了,因为没有中间代理商了,必须一手交钱一手交货,两个行为合并为一个原子。我们已经实现该功能;

5、去中介交易的实现和一个道具交易市场的范例。恩,这点我们也已经做完了;

6、提供完整的钱包和区块链浏览器。同上,开发完了,会上有演示;

7、支持同质和非同质 token 的跨链承兑网关。同质和非同质,前面已经讲解过了。什么叫「跨链承兑网关」呢?你看,Cocos 最早就是靠跨手机平台起家的,然后有 AnySDK 和 SDKBOX 帮助大家快速跨各种支付 SDK 广告 SDK。到了区块链游戏的时代,必然是各种公链各种币满天飞,这时候就需要引擎能帮助开发者能把游戏快速接入各种链各种币,反正多一种币的支付,就多一群玩家,玩家可不能因为他只有 a 币没有 b 币而流失;

8、二级资产的发行和交易能力。Project BCX 的设计是,CP 可以在 Cocos 公链上发行自己的二级数字币,游戏厂商或者我们前面提到的铁匠铺管委会,可以自由交易这些数字资产;

9、高速合约虚拟机。这个是和快速共识设计配套的,我们需要能快速地执行合约代码,不然玩家多了肯定扛不住。速度越快,可以上链的游戏内容就越多,对玩家利益就越有保障。

五、篇末

谢谢各位有耐心看到这里。我很久没有写过这么长的文章了,还得尽量通俗不晦涩。整体而言,Cocos 在区块链上的研究,是直奔「让玩家和游戏厂商利益一致化」「游戏厂商能专注生产好玩有趣的内容,而不是天天盘算怎么设计付费坑怎么洗用户」而去的。我前面也说过,大家天天洗用户洗大 R 的结果,就是玩家干脆跑到腾讯网易做的 MOBA、吃鸡等公平竞技游戏里去了,而这种公平竞技游戏,都需要高 DAU 堆起来的。在手机游戏流量红利结束之后,想要有 DAU 支撑,你要么得有超级流量平台、最好还是超级社交平台,要么得有大笔市场费用做投放买流量,这两件事情和大多数游戏公司已经没什么关系了。

今天的 H5 小游戏,或者叫「手机页游」固然开放了新的流量获取方式,但可能两三年之后又会进入「生态稳定」的阶段,大家又必须去找新的突破口和新流量来源。今天 Cocos 投入区块链技术的研究,和我们早在 2010 年开始手游原生平台,2012 年开始 HTML5 技术一样,未雨绸缪,希望在手机页游/小游戏的流量红利结束之后,能给各位开发者提供多一种可选的方案。 

最后我再强调一下,我们对区块链领域的投入研究,是和早几年的 Cocos VR 一样放在体外,并不影响 Cocos 作为游戏引擎本身的研发投入。引擎团队今年仍然在融资和扩张。应用了我们部分 3D 研发成果的 Cocos2d-x 4.0 将在 Q3 发布,将实现渲染多通道支持、2D 材质系统和 2D 光照,而且实现了下一步可适配 iOS Metal 的渲染架构;而性能大幅提升的 Cocos Creator v2.0 目前已经进展到 alpha-5 版本,计划在 Q2 发布,敬请期待。

不论是在手机原生,还是 H5 小游戏,或者在未来可能存在机会的区块链游戏上,『让游戏开发更简单』,既是对各位开发者的承诺,也是我们始终不变的愿景。

文章评论
游戏葡萄订阅号