游戏SDK 客户端整体架构

前言

从事游戏SDK的开发好几年,包括 Android 端及 iOS 端,做过休闲游戏SDK 也做过重度手游SDK,从对SDK和游戏行业一无所知到现在还算有些了解,踩过很多坑,也辗转过几家不同的游戏公司。想着把自己这些年对 SDK 的认识及开发做一个总结。

一、行业名词介绍

详见:@游戏行业名词介绍

这里只说几个常用的。

  1. 游戏研发,也叫CP —— ContentProvider,游戏研发商。制作手游产品的公司或者团队。例如王者荣耀的研发团队:天美工作室
  2. 游戏发行商。即代理CP的游戏产品,在部分渠道或者全渠道发行游戏产品的公司或者团队。例如王者荣耀的发行商:腾讯
  3. 游戏渠道。拥有游戏和APP 用户,能够进行手游和APP流量分发的公司。例如华为、小米等手机厂商自带用户流量。
  4. SDK——SoftwareDevelopmentKit,软件开发工具包。对于游戏来说,就是指集成了登录、支付、社区、社交分享、数据上报等功能的功能模块。CP 必须将 SDK 接入到的游戏内,通过渠道测试后才能上架。
  5. 包:也就是iOS 的 .ipa 和 Android 的 .apk。 对包的说法也会区分不同的包,比如:
    1. 母包:不带渠道SDK的游戏包,不能上架到渠道。
    2. 渠道包:上架到对应渠道的 .ipa 和 .apk。比如,华为渠道包就是上架到华为的。
  6. MMP——第三方移动数据统计平台。比如海外的 AppsFlyer,国内的 Talking data。

二、游戏SDK介绍

为什么需要游戏SDK?

  1. 先看一下游戏是如何从游戏厂商到达玩家手中的,也就是游戏的发布流程?

    游戏研发商——接入应用商店/渠道SDK——应用商店/渠道上架游戏——玩家。
    

    根据以上流程,如果没有游戏SDK:

    1. CP 需要自行接入渠道SDK,分别对接各个渠道,不同渠道SDK的接口都不一样,资源也不一样,CP就需要花大量的时间处理不同的渠道SDK。还有后期的维护,这些都会花费不少人力成本。
    2. 术业有专攻。CP 开发使用的是游戏引擎,主要开发游戏玩法,对原生客户端的开发不仅不熟悉,对发行的需求也不理解,并不能封装一个符合上架需要的SDK。

    退一步来说,如果是封装SDK,游戏研发商也能做。但是,游戏SDK并非封装SDK那么简单,还会涉及以下问题。

  2. 用户问题

    每个产品都应该有自己的用户体系,渠道之所以成为渠道,就是有强大的用户基础。腾讯游戏发行成功的原因之一其实也有它私域流量强大的原因。我们在上架自己的游戏产品时,不同的游戏服账户是无法互通的,这就需要一个用户管理平台管理不同的用户,维护玩家数据。

    另一方面,引流就是公司花钱买用户进入游戏,买来的用户如果不做管理就会流失,白白花费市场成本。如果通过一个平台管理用户,公司有自己的账号体系,将渠道用户转化为自有账号体系,在这个平台下不同的游戏用户可以互相引流。而游戏SDK正好充当这个桥梁。

  3. 广告推广问题

    每个产品需要被玩家熟知,除了渠道的流量外,还需要广告推广。这就涉及不同的第三方广告SDK,也可以有自己的广告SDK(这个比较少,一般都是用的第三方)。

  4. 数据问题

    一个产品的好坏都是数据说话,如果没有数据支撑,不知道产品哪里需要调优,哪里是优质内容。这也涉及不同的数据统计SDK及自有数据上报分析。

  5. 商务问题

    渠道有用户基础,合作的游戏厂商数不胜数,并不是拿着一个游戏就可以上架到渠道的应用商店。需要专业的商务资源商谈买量、推广等问题。

综上问题,就需要在发布流程就需要引入一个游戏发行商的角色,而游戏发行商就会打造一个中间件,也就是游戏SDK来作为发行商和研发商的桥梁处理以上问题。

因此最终的发布流程如下:

游戏研发商--游戏发行商——商店/渠道SDK——玩家

综上,也就是解答了这个问题。游戏SDK就是集成了登录(用户)、支付(利润)、社交分享(游戏运营)、广告(市场推广)、数据上报(产品)等连接游戏发行、游戏研发、渠道三方的中间件工具包。

游戏SDK类型也一般会有两种:

1.聚合SDK,对外统一封装接口。登录、支付功能都是渠道提供的,账户体系属于渠道的。

2.渠道SDK,公司自己开发账号体系,用户是属于公司的。一般作为整个SDK的一个渠道。

三、应该输出一个什么样的游戏SDK?

根据以上介绍,我们根据对输出的目标游戏SDK做一个需求分析:

  1. 接入不同应用商店渠道SDK,对外接口保持一致,CP 不必关心具体渠道。
  2. 开发一个自己的账号体系渠道SDK,与应用商店渠道SDK共享用户。
  3. 接入不同的广告SDK,或者开发自己的广告SDK;
  4. 接入不同的第三方数据统计平台,上报数据作为数据分析。(有些可能会开发自己的数据统计平台)
  5. 接入运营等需要的社交分享功能、语音聊天、客服等功能;
  6. SDK 具备强扩展性,可以随时增加渠道SDK;
  7. 统一管理不同项目的不同配置。
  8. 便于测试的demo工程 及接入文档。
  9. 不同渠道的打包工具。

根据以上的需求分析,输出一个游戏SDK至少需要客户端、服务端、后台。服务端和后台不做讨论。客户端的框架设计见。

四、其他扩展方面

游戏SDK除了以上需求分析的一些必要功能,一般还会存在其他的需求。这里说几个常见的。

1、当用户出现相关网络问题时,我们并没有相关依据查看用户网络情况是否出问题了,这时就需要一个检测网络工具。

2、产品上线后会出现不同的玩家反馈问题,如何追踪问题?这就需要一个日志收集工具。

3、产品上线需要给玩家对应的福利等。

以上就需要在游戏SDK设计框架时充分考虑扩展性。

游戏SDK(一) 客户端整体架构相关推荐

  1. 游戏SDK(三)架构设计之代码实现1

    前言 上一篇介绍了游戏SDK架构设计的思路,大体的项目结构如下: - sdk-demo // sdk 测试 demo - sdk-api // sdk 接口模块 - sdk-manager // sd ...

  2. 游戏SDK(二)框架设计

    前言 根据上一篇游戏SDK(一) 客户端整体架构,介绍了游戏SDK 及 游戏SDK的需求分析.根据需求分析,对游戏SDK的设计分为3大块: 客户端:接口统一,做好逻辑转发和处理.具体渠道具体实现,互不 ...

  3. 学习 sentry 源码整体架构,打造属于自己的前端异常监控SDK

    前言 这是学习源码整体架构第四篇.整体架构这词语好像有点大,姑且就算是源码整体结构吧,主要就是学习是代码整体结构,不深究其他不是主线的具体函数的实现.文章学习的是打包整合后的代码,不是实际仓库中的拆分 ...

  4. 《王者荣耀》游戏技术总监:技术架构与同步方案上做出改变?

    <王者荣耀>能够成为如今国内最成功的手游,其后方成熟的技术团队可以说是功不可没.这个曾经在端游时代主导搭建RTS游戏<霸三国>框架的技术团队,在转型做MOBA手游<王者荣 ...

  5. 游戏开发经验总结:分布式架构、数据库与进程设计

    原标题:游戏开发经验总结:分布式架构.数据库与进程设计 如果把游戏看成一辆赛车,那么,游戏开发在其中扮演着至关重要的发动机角色,控制着玩家所感知到的剧情.关卡.实时社交沟通.版本更新.兼容和性能等问题 ...

  6. 分享实录|一文读懂区块链整体架构及应用方向

    1 区块链概念及特征 1.区块链的定义 相较于区块链,大家似乎更了解比特币.区块链是一种技术,支撑和保障整个比特币的货币机制在这样一个分布式网络中运行,包括产生.流通.交易等等. 简单来说它就是一个账 ...

  7. 支付宝钱包客户端技术架构

    转自:http://toutiao.com/news/6233286414889386498/ 黎三平:小微金服高级技术专家,06年就开始移动方面的研发,先后从事过游戏和应用开发.对Android的动 ...

  8. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

    1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...

  9. 端云一体人工智能开发平台整体架构

    端云一体人工智能开发平台整体架构 引言 当前人工智能(Artificial Intelligence)技术发展迅猛,在机器视觉.语音识别以及自然语言处理等多个技术领域取得了卓越的进展,带来了更高的精确 ...

最新文章

  1. photoshop CS不能打字,出现死机等现象的解决办法!!
  2. 【译】10 years Blockchain. The Race is on: Blockchain vs. Tangle vs. Hashgraph
  3. [转]写一个块设备驱动(第八章)
  4. 架构师进阶之独孤九剑:设计模式详解
  5. 阿里云云安全中心入选Gartner CWPP全球市场指南
  6. scala 排序接口Ordering
  7. 【转】 pycharm快捷键、常用设置、配置管理(后两者详见原博客)
  8. 迅捷pdf虚拟打印机怎么安装打印
  9. 广州市车联网先导区建设总体技术规范
  10. 手柄测试Debug记录
  11. 原生js实现动态生成表格
  12. 《设计心理学 1 日常的设计》 唐纳德·A·诺曼 pdf下载
  13. JQuery插件Select2详解
  14. opencv人脸识别(一)调用笔记本摄像头
  15. 伦敦大学国王学院 计算机phd,重磅!伦敦国王学院全奖博士录取一枚!
  16. MySQL8安装教程和新特征
  17. java 解析p12_java引用微信支付的p12证书文件
  18. IAR STM32 函数和变量的绝对地址定位
  19. 发多少范德萨范德萨范德萨范德萨
  20. 木马编程DIY (Delphi版) - 第3篇 星号密码查看工具

热门文章

  1. DFS——深度优先搜索的简单易懂入门心得
  2. 整理好的凯斯西储大学轴(CWRU)承数据集
  3. 10种你必须懂的PPT配色方法
  4. 电脑中病毒所有html文件,电脑中了病毒所有文件都多了三个文件是什么原因以及解决办法...
  5. 为什么很多电商都不把合规当回事?
  6. 十大iOS塔防游戏评点
  7. 学计算机装机,新手装机教程:3分钟教你轻松学会装机
  8. 申请美国访问学者不可忽略的问题
  9. 即构推出低延迟直播产品L3,功能全面全球高可用
  10. 企业需要什么样的全面预算管理?