游戏SDK(一) 客户端整体架构
游戏SDK 客户端整体架构
前言
从事游戏SDK的开发好几年,包括 Android 端及 iOS 端,做过休闲游戏SDK 也做过重度手游SDK,从对SDK和游戏行业一无所知到现在还算有些了解,踩过很多坑,也辗转过几家不同的游戏公司。想着把自己这些年对 SDK 的认识及开发做一个总结。
一、行业名词介绍
详见:@游戏行业名词介绍
这里只说几个常用的。
- 游戏研发,也叫CP —— ContentProvider,游戏研发商。制作手游产品的公司或者团队。例如王者荣耀的研发团队:天美工作室。
- 游戏发行商。即代理CP的游戏产品,在部分渠道或者全渠道发行游戏产品的公司或者团队。例如王者荣耀的发行商:腾讯。
- 游戏渠道。拥有游戏和APP 用户,能够进行手游和APP流量分发的公司。例如华为、小米等手机厂商自带用户流量。
- SDK——SoftwareDevelopmentKit,软件开发工具包。对于游戏来说,就是指集成了登录、支付、社区、社交分享、数据上报等功能的功能模块。CP 必须将 SDK 接入到的游戏内,通过渠道测试后才能上架。
- 包:也就是iOS 的 .ipa 和 Android 的 .apk。 对包的说法也会区分不同的包,比如:
- 母包:不带渠道SDK的游戏包,不能上架到渠道。
- 渠道包:上架到对应渠道的 .ipa 和 .apk。比如,华为渠道包就是上架到华为的。
- MMP——第三方移动数据统计平台。比如海外的 AppsFlyer,国内的 Talking data。
二、游戏SDK介绍
为什么需要游戏SDK?
先看一下游戏是如何从游戏厂商到达玩家手中的,也就是游戏的发布流程?
游戏研发商——接入应用商店/渠道SDK——应用商店/渠道上架游戏——玩家。
根据以上流程,如果没有游戏SDK:
- CP 需要自行接入渠道SDK,分别对接各个渠道,不同渠道SDK的接口都不一样,资源也不一样,CP就需要花大量的时间处理不同的渠道SDK。还有后期的维护,这些都会花费不少人力成本。
- 术业有专攻。CP 开发使用的是游戏引擎,主要开发游戏玩法,对原生客户端的开发不仅不熟悉,对发行的需求也不理解,并不能封装一个符合上架需要的SDK。
退一步来说,如果是封装SDK,游戏研发商也能做。但是,游戏SDK并非封装SDK那么简单,还会涉及以下问题。
用户问题
每个产品都应该有自己的用户体系,渠道之所以成为渠道,就是有强大的用户基础。腾讯游戏发行成功的原因之一其实也有它私域流量强大的原因。我们在上架自己的游戏产品时,不同的游戏服账户是无法互通的,这就需要一个用户管理平台管理不同的用户,维护玩家数据。
另一方面,引流就是公司花钱买用户进入游戏,买来的用户如果不做管理就会流失,白白花费市场成本。如果通过一个平台管理用户,公司有自己的账号体系,将渠道用户转化为自有账号体系,在这个平台下不同的游戏用户可以互相引流。而游戏SDK正好充当这个桥梁。
广告推广问题
每个产品需要被玩家熟知,除了渠道的流量外,还需要广告推广。这就涉及不同的第三方广告SDK,也可以有自己的广告SDK(这个比较少,一般都是用的第三方)。
数据问题
一个产品的好坏都是数据说话,如果没有数据支撑,不知道产品哪里需要调优,哪里是优质内容。这也涉及不同的数据统计SDK及自有数据上报分析。
商务问题
渠道有用户基础,合作的游戏厂商数不胜数,并不是拿着一个游戏就可以上架到渠道的应用商店。需要专业的商务资源商谈买量、推广等问题。
综上问题,就需要在发布流程就需要引入一个游戏发行商的角色,而游戏发行商就会打造一个中间件,也就是游戏SDK来作为发行商和研发商的桥梁处理以上问题。
因此最终的发布流程如下:
游戏研发商--游戏发行商——商店/渠道SDK——玩家
综上,也就是解答了这个问题。游戏SDK就是集成了登录(用户)、支付(利润)、社交分享(游戏运营)、广告(市场推广)、数据上报(产品)等连接游戏发行、游戏研发、渠道三方的中间件工具包。
游戏SDK类型也一般会有两种:
1.聚合SDK,对外统一封装接口。登录、支付功能都是渠道提供的,账户体系属于渠道的。
2.渠道SDK,公司自己开发账号体系,用户是属于公司的。一般作为整个SDK的一个渠道。
三、应该输出一个什么样的游戏SDK?
根据以上介绍,我们根据对输出的目标游戏SDK做一个需求分析:
- 接入不同应用商店渠道SDK,对外接口保持一致,CP 不必关心具体渠道。
- 开发一个自己的账号体系渠道SDK,与应用商店渠道SDK共享用户。
- 接入不同的广告SDK,或者开发自己的广告SDK;
- 接入不同的第三方数据统计平台,上报数据作为数据分析。(有些可能会开发自己的数据统计平台)
- 接入运营等需要的社交分享功能、语音聊天、客服等功能;
- SDK 具备强扩展性,可以随时增加渠道SDK;
- 统一管理不同项目的不同配置。
- 便于测试的demo工程 及接入文档。
- 不同渠道的打包工具。
根据以上的需求分析,输出一个游戏SDK至少需要客户端、服务端、后台。服务端和后台不做讨论。客户端的框架设计见。
四、其他扩展方面
游戏SDK除了以上需求分析的一些必要功能,一般还会存在其他的需求。这里说几个常见的。
1、当用户出现相关网络问题时,我们并没有相关依据查看用户网络情况是否出问题了,这时就需要一个检测网络工具。
2、产品上线后会出现不同的玩家反馈问题,如何追踪问题?这就需要一个日志收集工具。
3、产品上线需要给玩家对应的福利等。
以上就需要在游戏SDK设计框架时充分考虑扩展性。
游戏SDK(一) 客户端整体架构相关推荐
- 游戏SDK(三)架构设计之代码实现1
前言 上一篇介绍了游戏SDK架构设计的思路,大体的项目结构如下: - sdk-demo // sdk 测试 demo - sdk-api // sdk 接口模块 - sdk-manager // sd ...
- 游戏SDK(二)框架设计
前言 根据上一篇游戏SDK(一) 客户端整体架构,介绍了游戏SDK 及 游戏SDK的需求分析.根据需求分析,对游戏SDK的设计分为3大块: 客户端:接口统一,做好逻辑转发和处理.具体渠道具体实现,互不 ...
- 学习 sentry 源码整体架构,打造属于自己的前端异常监控SDK
前言 这是学习源码整体架构第四篇.整体架构这词语好像有点大,姑且就算是源码整体结构吧,主要就是学习是代码整体结构,不深究其他不是主线的具体函数的实现.文章学习的是打包整合后的代码,不是实际仓库中的拆分 ...
- 《王者荣耀》游戏技术总监:技术架构与同步方案上做出改变?
<王者荣耀>能够成为如今国内最成功的手游,其后方成熟的技术团队可以说是功不可没.这个曾经在端游时代主导搭建RTS游戏<霸三国>框架的技术团队,在转型做MOBA手游<王者荣 ...
- 游戏开发经验总结:分布式架构、数据库与进程设计
原标题:游戏开发经验总结:分布式架构.数据库与进程设计 如果把游戏看成一辆赛车,那么,游戏开发在其中扮演着至关重要的发动机角色,控制着玩家所感知到的剧情.关卡.实时社交沟通.版本更新.兼容和性能等问题 ...
- 分享实录|一文读懂区块链整体架构及应用方向
1 区块链概念及特征 1.区块链的定义 相较于区块链,大家似乎更了解比特币.区块链是一种技术,支撑和保障整个比特币的货币机制在这样一个分布式网络中运行,包括产生.流通.交易等等. 简单来说它就是一个账 ...
- 支付宝钱包客户端技术架构
转自:http://toutiao.com/news/6233286414889386498/ 黎三平:小微金服高级技术专家,06年就开始移动方面的研发,先后从事过游戏和应用开发.对Android的动 ...
- etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程
1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...
- 端云一体人工智能开发平台整体架构
端云一体人工智能开发平台整体架构 引言 当前人工智能(Artificial Intelligence)技术发展迅猛,在机器视觉.语音识别以及自然语言处理等多个技术领域取得了卓越的进展,带来了更高的精确 ...
最新文章
- photoshop CS不能打字,出现死机等现象的解决办法!!
- 【译】10 years Blockchain. The Race is on: Blockchain vs. Tangle vs. Hashgraph
- [转]写一个块设备驱动(第八章)
- 架构师进阶之独孤九剑:设计模式详解
- 阿里云云安全中心入选Gartner CWPP全球市场指南
- scala 排序接口Ordering
- 【转】 pycharm快捷键、常用设置、配置管理(后两者详见原博客)
- 迅捷pdf虚拟打印机怎么安装打印
- 广州市车联网先导区建设总体技术规范
- 手柄测试Debug记录
- 原生js实现动态生成表格
- 《设计心理学 1 日常的设计》 唐纳德·A·诺曼 pdf下载
- JQuery插件Select2详解
- opencv人脸识别(一)调用笔记本摄像头
- 伦敦大学国王学院 计算机phd,重磅!伦敦国王学院全奖博士录取一枚!
- MySQL8安装教程和新特征
- java 解析p12_java引用微信支付的p12证书文件
- IAR STM32 函数和变量的绝对地址定位
- 发多少范德萨范德萨范德萨范德萨
- 木马编程DIY (Delphi版) - 第3篇 星号密码查看工具