当前位置: 首页 > 科技观察

vivo游戏中心低代码平台性能提升秘诀

时间:2023-03-12 09:32:28 科技观察

一、背景介绍及痛点分析vivo游戏是一个供vivo用户玩游戏的平台。找到游戏,玩好游戏,找到一起玩游戏的人的价值。vivo游戏中心是vivo游戏的核心流量入口,所以游戏中心的首页起到了非常重要的作用。首页的风格延续了几年,基本风格几乎没有变化,强调分布。随着时间的发展,各种问题也逐渐浮出水面。1.2020年开始,互联网流量见顶,分布难以改善。需要探索新的方向,研发周期太长无法应对新的需求。从需求审核到功能上线、灰度化到全面投产需要一个多月的时间,运营效果往往低于预期。2、核心用户关注点不同。MOBA玩家看画面和平衡,传奇玩家看游戏人数,笑笑玩家看玩法,用户对游戏福利活动的需求非常强烈。在首页列表中,不能突出重点信息,也不能给用户带来强烈的下载冲动。3.任何游戏都有生命周期。不同阶段,侧重点不同。预约时可以突出显示游戏的画风画质,更新焦点时可以突出显示新玩法。GameCenter主页没有相关位置或方式来突出此信息。4.无法快速响应运营或开发者需求。如果运营需要更换首页跳转的二级登陆页面,或者应开发者要求搭建专区,需要开发,现有功能无法快速支持。这些问题都是表面问题。透过现象看本质,我们可以得出结论,游戏中心缺乏两个基本能力。一方面,游戏中心缺乏灵活动态的组件化能力;另一方面,游戏中心缺乏可视化和快速构建页面的能力。基于以上痛点,结合行业前沿知识,作者团队讨论决定采用低代码思路,打破原有秩序,重建新平台。2.如何搭建游戏中心低代码平台大家可能很好奇。低代码平台一般是通用性很强的平台。它们如何与具有如此鲜明业务属性的游戏中心结合?那么笔者就一一为大家来。低代码平台离不开组件化设计,那么什么是组件化设计呢?组件设计是指对具有相同或不同功能、性能、规格的产品进行功能分析,设计出一系列功能组件。通过多种组件定制产品以满足不同的市场需求。由此可以推断,游戏中心的组件设计就是对游戏中心的功能进行分析,设计一系列的功能组件,通过组件的多样化选择快速构建不同的页面,以满足不同用户的需求.那么,我们如何定义GameCenter的组件呢?在原有体系的基础上,结合游戏中心APP各位置的形态和未来定位,将游戏中心首页横向划分,每行细分为一个组件。虽然你可能对GameCenter知之甚少,但市面上绝大部分的分发产品,每个页面的UI风格都是系列化的,比如视频风格、图片风格等,内容变化比较多。所以我们可以在行中定义组件。另一方面,组件的粒度与组件的灵活性负相关,而与操作的配置能力正相关,即粒度越细,组件越基础,组件的灵活性越高以及操作的配置。配置成本也较高。因此,选择何种粒度的基础组件需要结合实际业务需求综合分析后确定。并不是说粒径越细越好,也不是粒径越粗越好。确定了组件的粒度之后,下面我们用一个例子来详细说明组件的组成。请看图1,这是一个主题组件。格式是标题在左上,跳转到二级页面的按钮在右上,多个游戏横向排成一行,安装按钮在底部。这种组合形式被抽象成一个基本模板,用于并排显示多个游戏(1*4)。基础模板也称为元组件,所以这类基础模板可以命名为专题元组件。运营商希望元组件可以配置标题、跳转链接、行数和显示的游戏数量。这些是静态基本配置。同时,主题组件需要配置一个数据源,该数据源决定了主题中游戏的内容和显示顺序。这些数据可以通过操作配置或实时推荐。比如在推荐场景中,当用户发起请求时,可以实时返回推荐,所以这是动态数据。横幅是一样的。因此,可以认为组件是由元组件和数据组成的。图1那么组件是如何定义的呢?在后台,我们可以添加一个meta组件,填写卡号、姓名、描述等信息,然后上传图片保存。这里使用元素组件卡号作为组件的唯一标识,具有相应的业务含义。该编号决定了当前组件显示的数据格式,即处理数据的进程类由该编号决定。上传图片主要是对配置页面进行操作。因为在页面构建过程中,对多个组件进行操作配置时,后台会实时显示客户端的效果。显示的组件图像上传到这里。图2配置元组件基本信息后,在左侧元组件配置管理,如图3,通过编辑schema,当前元组件可配置的标题,跳转链接、线数、单线游戏数会出现在右边的数字上。这些配置可以由运维人员在配置组件时动态配置;配置好这些数据后,在页面管理后台添加该类组件时,我们可以配置的基本属性就会出现在红框中,如图4所示。至此,元组件的配置就完成了。图3图4接下来是数据源的配置。当操作点击数据选择时(图5),弹出的是动态数据的配置,那么这些数据是怎么来的呢?我们需要从两个维度看数据:第一,数据是什么;第二,数据是什么?第二,数据如何交互。我们从两个角度来看数据是什么。从数据类型来看,有运行配置数据和系统自动数据。运行配置数据是为达到某种目的而由操作人员手动配置或干预的数据,而系统自动数据是无需人工干预而从系统的某个来源自动获取的数据。从数据来源上分,有内部数据和外部数据。通过不同的数据类型和来源,我们将它们划分为不同的调用方式,可以最大程度地保证系统的可扩展性和可维护性。随着业务的发展,平台会不断吸纳其他业务数据来丰富目前的业务形态,但是获取外部数据的方式只有两种:http和dubbo协议。通过这两个协议的配合,可以标准化的获取外部数据。元组件和数据说完了,那么它们是怎么绑定的呢?在后台数据管理中,我们会根据一定的操作目的来确定一个组件的应用场景。例如,主题组件的应用场景是为用户推荐某类游戏合集。通过定义组件的应用场景,我们将元组件和数据绑定在一起。总体流程如下:确定组件的应用场景名称和编号;选择一个或多个元组件;确定数据源类型、调用类型和数据业务方;确定调用的http和dubbo接口。通过http接口可以生成操作可以配置的数据,也就是点击选择后弹出的列表。点击选择后,即可将数据绑定到组件上,如图5;在用户调用过程中,通过dubbo接口,使用后台配置的数据,可以请求获取更详细的数据。至此一个组件就配置完成了。图5在前台数据的调用方法中使用了阿里的QLExpress。QLExpress是专为阿里电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制而设计的动态脚本引擎分析工具。其特性优势和运行原理可以在GitHub上找到,这里不再赘述。感兴趣的同学可以自行搜索。利用其弱类型脚本的特性,将运行配置的数据转化为调用外部接口的参数,具体数据通过dubbo的泛化调用技术获取。同时,它仍然利用弱类型脚本的特点,对返回结果进行转换,控制业务逻辑和数据范围。使用QLExpress和dubbo广义调用可以减少代码开发,增加数据灵活性。最后我们来看一下整个页面的配置过程。如前所述,元组件是最基本的组件。通过元组件,我们配置一些基本信息,关联一些动态数据,形成一个组件。通过将多个组件拖放到页面上,可以实现运行配置生成页面的效果。同时页面也可以直接拖拽配置好的组件。这就是一个组件被多个页面引用的情况,实现了组件级的复用。在页面顶部,我们还介绍了方案的概念。Scheme,它是多个页面的集合。通过页面的组合,首页可以实现多页面展示,既可以展示游戏中心的入口,又可以进行个性化操作。如图6所示,从下到上,可以通过数据和元组件组成一个组件,通过多个组件的选择可以组成一个页面,多个页面组成一个解决方案。如图7所示,从上到下,通过多层实验框架,确定需要展示给用户的方案。接下来通过dmp用户画像,确定要展示的个性化页面。每个页面由几个组件组成。每个组件由元组件和数据组成。图6图73.结果表明罗马不是一天建成的,游戏中心低代码平台也不是一蹴而就的。该平台已上线20年。由于运营场景的缺乏和功能的不完善,其所能带来的收益微乎其微。甚至有内部质疑,是否值得花费如此多的时间和精力建设平台。不过,经过一段时间,GameCenter低代码平台的效果越来越明显。首先,研发过程与以往不同。当我们添加/修改组件时,客户端同学使用flutter等动态技术完成新组件的开发和修改,并在后台上传flutter的更新包或差分包。Server同学需要在后台配置元组件的信息,配置组件的应用场景,绑定元组件和数据关系,然后生成可以配置运行的组件。运营配置好组件、页面、解决方案,审核通过后,即可上线,如图8所示。图8其次,研发效率提高了。大家注意到了,最大的变化就是客户端不需要发布版本了。在某些特殊场景下,不需要开发服务端。与原来的研发流程相比,效率有了质的飞跃。对于不同的角色,提升的效率是不同的;对客户端而言,全功能上线周期可缩短15天以上,容错性高;服务器端,开发效率提升4倍以上;对于测试来说,不需要回到老版本,测试效率提升30%-50%;运维方面,可视化操作降低30%的学习成本,提升10%的配置效率。最后,缩短了项目周期。本来运营如果是做一个功能,就得先对产品提需求(其实提需求之前有一个需求讨论的过程,不是需求评审),然后是需求评审进行了。审核后需要根据各个需求的优先级进行。种类。但由于效果不明显、论证数据收集不力等原因,此类需求的优先级往往较低。需求审核完成后,还有规划审核、大纲设计审核等多道工序,上线后灰度化需要一周时间,上线报告后才能完成全卷。然而,有了低代码平台,这个过程就没有那么复杂了。最简单的流程,无需更改组件,操作即可自行操作。还有一些简单的场景,服务端可以通过修改配置来完成组件的修改。最复杂的是新场景,但是由于有之前的基础,开发效率也很高。整个流程至少可以缩短到原来的1/4。下面用一个例子来说明。图9图104、未来展望游戏中心低代码平台的建设标准不同于通常意义上的低代码平台建设。游戏中心低代码平台源于“游戏中心业务”,逐渐演化为能够适应vivo生态中App分发的终端解决方案。这符合我们的业务发展,也为低代码的演进提供了养分。通过不断的适应和进化,我们希望以低代码的解决方案造福于安卓生态。因此,在未来的构建思路上,我们的目标是解放生产力,提升用户体验,做最好的安卓低代码平台。5.总结低代码这个概念最近很火,争议也很大。有人认为未来“人人都是程序员”,也有人认为是新瓶装旧酒。但作为技术人员,最重要的还是要通过技术解决业务问题,驱动业务发展。GameCenter低代码平台旨在提高开发效率,帮助企业取得更好的成绩。未来,我们也将投入更多精力优化系统,不断为用户创造惊喜,为行业带来创新。