TypeSDK整体设计思路和架构

引言:本文旨在提供读者制做一个本身的聚合SDK的思路,抛砖引玉,让更多的读者对聚合SDK有好的理解。git

       这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是但愿之春,这是失望之冬;人们面前有着各样事物,人们面前一无全部;人们正在直登天堂;人们正在直下地狱。——《双城记》github

       双城记的开头,正是如今手游行业的一种写照,充满着但愿的行业,也伴随着混沌的行业。随着手游市场的蓬勃发展,不论从研发游戏,运营游戏,仍是到发行游戏,维护相关的平台,整个行业都在不断的壮大。人上一百形形色色,游戏上一百,色色行行,渠道上一百,感叹活久见。多线程

       正是由于行业规模的庞大且新兴,不少事物并无统一的业界标准。在任何一款游戏,要最终推到用户手上,不可避免的须要和各大渠道打交道。不管你是独立发行,仍是联合运营,或多或少,会和App Store,Google play,国内各大发行渠道,阿里游戏,应用宝等等之类的打交道。而和他们打交道最直接的交互,就是须要接入相对应的sdk模块。架构

       众多渠道的sdk参差不齐,做为游戏开发商的cp,尤为是众多中小cp,第一次接入几家甚至几十家的渠道sdk已经须要花费巨额大的时间和人力成本,而当渠道sdk更新,须要将这些sdk再次接入到本身游戏中,又或者说,游戏发生了更新,须要从新的将这些sdk接入到本身游戏中时,则又要再次耗费巨大的时间和人力成本。聚合sdk正是基于这种状况下,才会被提出的概念。咱们但愿的,只是一个简单粗暴的,能够快速接入,没啥技术经验的人也能使用的一键式自动打包工具,只须要传一个工程文件,就能够直接出渠道包。框架

       那么,咱们就长话短说,咱们来看看,咱们要实现这套聚合的sdk,须要作哪些事情。工具

主要需求:网站

       首先,咱们须要明确想要作成的东西是个怎么样产品.net

       1.游戏客户端和游戏服务端,只须要关注游戏自己内容,无需关注不一样渠道的sdk差别性,下降渠道sdk和游戏客户端的耦合性线程

       2.公司应用必需要支持多个项目的统一管理,但不能有集中式单点的风险,数据须要分离和整合不一样的表现code

       3.公司发展后各类部门的交互流程和人员成本,让非技术的运营人员也能够打包,而且使用流程管理来进行出包版本管控

       4.该聚合sdk必需要有扩展性,能应对往后新增的各类其余类型sdk。

 

主要模块:

       针对这些需求,咱们将产品分割为如下几个大模块。

       1.用做客户端接入部分的统一框架 SDK_Client

       2.用做服务端统一的逻辑转发和处理中心SDK_Server

       3.用做打包功能的逻辑和多线程的任务调度SDK_Package

       4.用户可视化操做界面和功能配置界面SDK_Manager

 

       这四大模块,是咱们最终的目标,一键式傻瓜化打包工具的组成。让用户只要传一个游戏项目,就能直接打出指定的渠道包。

 

主要的关系图:

       接下来咱们来看看主要的几个关系图

咱们看看 packager的主要工做原理

1.取得相关游戏的配置文件

2. 取得指定渠道的配置文件

3.利用打包脚本,合成渠道包

4.提供渠道包的下载连接

 

manager和package组成客户端打包工具,manager负责管理和配置,package负责编译,关系图:以下

 

 

 

1.用户经过manager,上传一个原始的游戏

2.manager根据用户操做,找到相应的渠道SDK,渠道参数

3.manager分配给packager组打包的任务

4.packager 组找到空闲的packager节点,将该任务指定到具体的pakcager

5.选中的packager根据接收到的任务以及参数,打出指定渠道包

 

sdk的client和server与游戏客户端和服务端的交互架构

 

 

能够看到相对的结构图如上
1. 游戏渠道包,包含了游戏客户端以及聚合sdk客户端,渠道sdk三部分
2. 游戏客户端,将聚合sdk客户端发送过的sdk数据转发给游戏服务端
3. 游戏服务端,将游戏客户端发送的sdk数据转发给聚合sdk服务端
4. 聚合sdk服务端和渠道sdk服务端进行逻辑交互,以及相关的数据有效性验证,验证经过后,发回给游戏服务端正确的数据结果
5. 游戏服务端根据聚合sdk服务端返回的数据结果,处理游戏内的逻辑
6. 游戏客户端,将游戏服务端返回的通过验证后的sdk数据结果转发给聚合sdk客户端

 

       以上全部,是咱们对一套聚合sdk的整体架构以及构思的分析。整套咱们最终目标要作成的一键式傻瓜化打包工具,是须要一步一个脚印,聚沙成塔堆积出来的。可是有了明确的思路和方向,相信众读者会对聚合sdk再也不陌生,也能更好的使用聚合sdk。

       聚合sdk的其中每个模块的具体实现,须要注意点,咱们会在往后慢慢分析。

这个项目已开源,你们有兴趣能够本身研究或者参照项目编写本身的聚合SDK

项目地址:https://code.csdn.net/typesdk_code

项目地址:https://github.com/typesdk

相关文章
相关标签/搜索