王楠:打造适配最广的游戏和互动媒体编辑器

8月8日,由HTML5梦工场主办的第四届HTML5峰会暨攻城师嘉年华(iWeb峰会)北京站,会上火盒网络 CEO 王楠表了《打造适配最广的游戏和互动媒体编辑器》主题演讲。

以下是演讲实录:

感谢主持人,我今天要给大家讲的主题是H5游戏编辑器,因为开发者和用户,是第一个能够打通开发者和用户的界线,能够实现更好的适配性的游戏编辑器。刚才主持人有介绍我在说一下,我是用的unity 的重度的开发工具,因为外部前端的技术发展得非常的迅猛,所以我和小伙伴就选择了这一条路,所以我就想要把游戏开发的经验结合,带给这个圈子新的东西。对于游戏开发者来说,提到H5大家先想到的是市场,大家想到这还是一个蓝海,今天在这个大会上讲H5的演讲没有8个也有10个,我今天也不多介绍,实际上选择H5游戏开发和游戏的工具开发,最主要的原因,就是它能够带来开发效率上的巨大提升,首先开发速度快,迭代周期短,开发工具可视性非常强。我们来看使用H5技术来开发游戏的好处,要么你是一个天才的想法,你试一次就成功了,但是对于大多数的人来讲要开发很多次反复的迭代。我认为做出好游戏,最关键的点就是要做得快,经过我这一段时间使用H5开发游戏的经验来说,我认为用H5开发游戏会比其他的开发环境要快很多,具体的原因有几个,第一是动态语言的特性能够适合我们快速迭代,第二就是预览能够打包,可以直接在电脑上去开服务器,就可以立马的预览到。包括非常容易分享,你的项目可以在早期就可以去搜集反馈。说到动态语言能够加速开发的特性,我相信这一点做游戏开发的话会有不同的意见,有的人喜欢动态的语言、有的人喜欢静态的语言,我作为一个unity 的开发者我喜欢用H5来做游戏,我再回去用那个软件我会发现非常的麻烦,代码非常多,实现各种功能要写很多帮助性的代码但是在unity 里面你的代码很少而且还可以动态调式。

有的人说我没有强类型的话会出很多的问题,在H5开发的时候有一个很好的调式环境,我们的工具使用的就是greatdebugtool的工具,大家做前端的都非常的熟悉,我们调式前端的应用已经非常多年了,这个工具有多好都不说了,你使用动态语言遇到了比较棘手的问题,在非常强大的调式环境中很容易就找到问题所在,这一点也可以弥补。接下来是预览,我们的游戏的真机预览是很快的,我点一个按钮打包成网页,在手机上已经输入到了IP地址,5秒钟之内就可以看到游戏在真机上的情况,以及还有远程的情况都能够看到事实的情况,这些都是做原生游戏所不具备的。

接下来就是异域分享,我们以前做开发的时候想要发给朋友测试是非常的费时的,因为你要把这个东西上传到某个地方,还要获取到朋友的ID,这一关都会难到很多人,但是做H5游戏的话,你可以在第一天就把你的游戏放到某一个HCP的服务器上,就可以把地址放给朋友,每一天都可以在快速迭代的时候搜集到大量的反馈意见,我觉得这个也是提到开发效率非常重要的一点,我们既然了解到了H5开发游戏有这么多的好处我们做这个火球编辑器的工具就是为了能够发挥H5做游戏开会的工具给大家更多的自由。先看一段视频。

我们可以看到这是一个非常复杂的工具,它有各种不同的窗口的面板来实现其中的一个功能,有的是管理资源有的能够让你预览到游戏场景。实际上就是,现在的H5游戏开发的引擎非常多,我们为什么要做编辑器?实际上大家刚才看到了,你可以在编辑器里面直接的修改数据,修改的数据,包括你摆放的场景和调式的动画都是可以由游戏开发的人员去完成的,如果使用纯代码式的引擎,你的这个游戏不断做任何的修改最后都要经过程序员,程序员打包之后才能够看到效果,只要有编辑器,任何人都可以参与进来,程序员做好接口,在传统的游戏开发行业这样的模式是受到大家公众的,你要做出高质量内容必备的开发方式。我们编辑器有几个特性,轻量化,拓展性非常好,任何一个窗口都是一个H5的页面,前端的开发人员可以按照自己的想法去定制里面的每一个工具,最后一点是我们很大的特色,就是跨引擎的编辑器,这个概念可能会比较新,实际上就是说,现在H5的游戏引擎非常的优秀,又有各自的特色,使用的人数非常多,他们有一个共同特色是,用户脚步都是用javascript来写,所以可以嵌入任何的引擎。我们是能够为所有引擎的用户服务,只要你用过其中的任何一款引擎,你在使用engines开发游戏的时候,你都是使用你原来的软件。这么小的一部分,就可以开始全新的开发环境,而且能够使得你的美术和策划的小伙伴全部都能够参与进来。

我们使用其他的引擎,还有一个最大的好处,开发一个简单的引擎,非常容易。但是有工具链任务都非常的繁重,我们使用这些引擎的话,原本的功能和附加的服务我们都是可以使用的,这一部分我们是不用再去花经理的我们只要专心的做好用户的界面和工具链的整合就可以,所以你可以使用你喜欢的任何的引擎,然后再加上API来开发游戏能够提升效率。

一会儿我会给大家演示什么叫做组件式的行为?其实它是区别于一般的组件式的游戏,像unity 那样的,每一个游戏之中的问题都可以分为问题本身和上面所加挂的组建,很多的引擎之中是没有这样的结构,我们是通过动态的特性,允许用户把脚本加到不可以加的脚本上,(14:54)接下来说的是扩展性,大家在视频中看到的小窗口都是一个单独的包,也是插件,核心的内容我们把它拿出来做一个单独的包,这样的话开发者对其中的任何一个功能有不容易的地方都可以自己去修改、替换,或者说自己想要增加一些新的功能的话,都可以随时的去增加,我一会儿可以给大家看一下这个包是怎么样开发出来的。

这里有一个演示,我们先来看一下,给大家举一个例子,比如说打包的这个窗口,先给大家看一下它的功能我只要一点这边就能够把当前的游戏的场景,输出出来,打开浏览器就能够看到。

这个就是我刚才在视频里面演示的战斗的画面这个话口是一个HLME的页面就可以实现的,这样大家就可以看得更清楚一点,每一个内容都是用H的标签再加上我们自己定义的customfrop的组建,这些东西我们都是有一个editor,每个标签都有行为,输入数据会给你相应的反馈。比如说选择这里,我们预测好了一个下单菜单,这部分也非常的容易拓展,大家做前端都知道是这些事情。在这一套体系下拓展编辑器的功能是非常简单的。

再给大家看一下游戏的场景和脚本的关系,刚才看到的游戏中有5个角色,每个角色都有资源的配置大家要使用不同的贴图,如果是使用纯代码引擎的话,那么你的这个配置部分的内容也需要程序员去写,那么像这样写脚本,这就是我们刚才看到的配置数据的脚本你只要写在属性的关键字下面,你所有写的东西都可以变成可视化和可操作的数据,这里是贴图,这里是进攻时的延时,这里是选择攻击的时候播放的特效的ID,这里是区分是朋友还是敌人,这个动画我是调了1个多小时,这个参数就需要我写好脚本之后在编辑器里面每次运行我就调整一点,调到我满意的程度,这样能够把程序员和美术人员的工作区分开,程序员只要写一个这样的脚本,可以再看一下,这里面我们现在首先支持的是(英文)的引擎,大家可以看到像这一部分,就是(英文)的API,这些可以给用户非常大的灵活性,因为这样的产品API需要慢慢建设的过程,一开始你能够做的事情不是很多,但是使用我们这一套架构,是建立在成熟引擎之上,所以一开始就可以使用原本的功能,再加上编辑器扩展的部分,这是一个非常好的可以尝试的东西。
演示就到这里,再总结一下我们开发火球编辑器最大的愿景就是想要给开发者更大的自由,一方面是提高效率,就是给到自由去尝试以前没有尝试的东西,现在除了给你资源和空间之外,我们还会给你资源让你使用以前非常好的引擎,再加完全图形化的软件让你的小伙伴参与进来,最后你可以和小伙伴非常紧密的合作,你来写脚本,让你的小伙伴去调整,这样分工合作开发的效率非常高合作的方式也非常的灵活。

下面一个愿景我是想要说,我们支持这些引擎的话,其实还有一个目的,因为目前大家分别开发引擎的话,引擎配套的工具是很难共享的,每一个引擎的开发商都要自己去开发一个工具,这边的话,因为我们是所有的引擎都跑在这一个编辑器的下面所以你可以开发出很多跨引擎的工具,如果你自己做引擎,还希望和另外的引擎商合作的话,你还可以合作去开发引擎,目的是减少重复的过程,使得整个的社区更加的活跃,大家可以使用的东西更加多。我今天的分享就到这里,这里有我们的网站,现在是在进行测试,大家可以上去进行试用。如果有用这个引擎的作用可以来试一试,谢谢大家。