游戏平台SDK设计和开发之旅——XSDK功能点梳理

2023-05-16

做游戏开发或者相关工作的同学,可能都知道,在游戏上线之前,需要将游戏分发到各大渠道平台,比如九游,百度,360,华为等等。其中和技术相关的事情,就是要在游戏中接入这些渠道平台的平台SDK,平台SDK中一般会提供登录和支付相关的接口,需要游戏来调用。但是现在的游戏行业,除了渠道平台, 很多发行商,甚至CP(游戏研发商)自己也开始研发自己的平台SDK,因为对于一款游戏来说,除了上各大主流的渠道平台之外, 还有很多不提供SDK的“小平台”,也是所谓的CPS,CPA等渠道,以及各种媒体公会等。上这些平台, 肯定不会给对方提供一个接了某某渠道SDK的游戏包,而是提供给他们一个发行商或者CP自己官方SDK的游戏包,所以,对于发行和CP来说, 拥有一套自己的平台SDK,也是一件必须要做的事情。因为除了上面说的可能需要给CPS和公会等提供游戏包,有时候如果你打算投入广告推某款或者多款游戏,那么由广告入口进来的用户,肯定希望沉淀在你们自己的平台上面。
上面说这些,也就是明确一下, 不管你处于游戏行业中的哪一个环节,渠道,发行,还是CP, 甚至是有流量想变现的网站,公会,媒体等,拥有一套你自己的平台SDK系统都至关重要。下面进入正题, 如果你是产品经理,那么BOSS交给你一个任务, 要开发这样一款产品。你首先想到的是什么呢? 接下来就是这样的一个过程,在接下来的几篇文章中,我们将从头来设计和实际开发这样一套产品。(当然,这款产品已经完成了,这里是事后诸葛亮,回过头来,再给大家整理一下完成这样一款产品从构思到设计到开发的整个过程)
首先,拿到这个任务, 第一想法是,这个产品比较简单,功能点不多,核心功能是登录和支付,回头再细致分解出里面具体的功能点。在细分功能点之前,我想到这个产品有很多可以参考的对象,因为国内那么多家游戏渠道平台,随便拿几个过来综合分析和筛选一下,然后就应该能够划分出核心功能点和根据自己实际业务需求需要额外增加的功能点。 此处省略4小时(实际行动,去百度,小米,360,九游平台下载几款游戏,然后安装试玩,重点看其SDK相关功能,登录注册,支付等)。
研究之后,心中大概有数了,接下来就开始准备我们这个产品相关的功能点。 首先,我们设定一个产品代号——XSDK。 根据实际参考,然后除了结合SDK需要的业务逻辑, 还需要根据整个流程,来确定那些看不见的工作内容,比如服务器端的开发,后台管理系统的开发,以及对应数据统计部分的开发等等。经过对参考信息的汇总和实际业务需求,我们按照客户端(XSDK)和服务器端两部分来确定功能点,把服务器端再分为核心逻辑部分(XSDKServer)和后台管理(XSDKManager)部分。


通过对客户端部分需要完成功能的梳理,我们得出上面图片中所列出的功能点。主要包括,用户登录、用户注册、用户支付和悬浮窗等其他部分功能。另外根据国家政策,所有游戏平台SDK都必须增加实名认证功能,所以这里我们也需要增加这个功能。
客户端部分包括两个平台,Android和iOS。 两个平台的登录注册功能相同,不同的是支付部分。 对于Android平台的SDK,我们需要至少接入支付宝支付,微信支付、银联支付以及平台币支付方式。iOS平台上,因为大部分游戏都是直接上AppStore平台,所以第一期iOS平台我们只需要支持AppStore支付。
另外通过上面图片中,我们可以发现, 在客户端功能中, 部分功能是需要接入第三方SDK来实现的,比如手机号登录和注册功能中,发送短信验证码这个功能,需要接入第三方短信验证码平台SDK;支付功能中,需要分别接入支付宝支付SDK,微信支付SDK,银联支付SDK以及AppStore支付SDK。


通过对服务器端核心功能的梳理,可以看出,服务器端主要是给客户端SDK提供对应的功能处理接口。当然SDK部分需要注意一下,比如支付宝SDK,服务器也需要接入支付宝的下单和支付回调处理接口。其他支付方式也类似,需要根据具体支付SDK的文档,做对应的逻辑处理。短信验证码这个,服务器端也需要接入对应第三方平台的验证接口。同样的,实名认证功能,服务器端收到客户端实名制信息,也需要去第三方实名制认证平台进行验证。
服务器端除了给SDK客户端功能提供对应的接口, 还需要额外为游戏方提供两个接口, 一个是所谓的登录认证,一个是所谓的支付回调。 也就是游戏方在调用SDK登录成功之后, 将token等信息发给游戏服务器端,游戏服务器访问SDK服务器的登录认证接口,来验证token的合法性。同样地,玩家在SDK中支付成功, SDK需要通过异步回调的方式,通知游戏服务器端给玩家发货。



如上图所示,根据SDK业务需求和运营需求,我们分析出后台管理系统需要完成的功能,主要是对客户端相关的参数进行管理配置,对游戏、CP信息等进行管理以及对用户和订单可以完成多种条件的查询。后台不止一个业务人员操作,所以后台本身需要有登录和对应的权限管理。
作为一个平台SDK,用户实际支付数据都记录在数据库中,但是合作的游戏可能是CP那边提供的,所以需要给CP那边提供对账信息,让CP知道对应游戏的月流水,每天的流水汇总信息,作为平台方和CP对账的依据。
对于运营同学来说, 后台管理中, 对基础数据做一些汇总统计分析,必不可少。哪款游戏流水高,哪款游戏留存高,某款游戏的收入波动,活跃波动,留存波动等都希望能在后台中可以直观的体现。所以,后台管理系统中,我们需要有数据统计部分,以图表的形式,展示多种维度的统计分析并提供详细统计数据报表的导出功能。
另外一方面,很多时候平台方会将游戏的包,进行更多子渠道的分发,比如分发到CPS渠道,公会,媒体甚至主播等,那么也需要对这些子渠道进行管理,以及配置结算信息,根据这些子渠道实际带来的收入给这些平台进行分账,所以,对应的对账单和收入报表统计导出功能也是必不可少。
通过上面的整理和分析, 我们大概得出了整套产品需要完成的功能点,接下来的几篇文章中,我们将继续对该产品的UI设计,开发以及优化等进行分析讲解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏平台SDK设计和开发之旅——XSDK功能点梳理 的相关文章

  • python 微信自动回复机器人

    python 微信自动回复机器人 导入wxauto https github com cluic wxauto span class token comment python3 span span class token comment c
  • 《python+opencv实践》一、基于颜色的物体追踪(上)

    点击打开链接 本文主要参考国外一大牛博客 xff0c 然后自己修改得来 相关知识点在这里 实现功能 xff1a 追踪红颜色瓶盖 xff0c 并画出瓶盖轮廓和运动轨迹 from collections import deque import
  • 《python+opencv实践》一、基于颜色的物体追踪(下)

    本文对 python 43 opencv实践 一 基于颜色的物体追踪 xff08 上 xff09 做了功能上的强化 xff0c 强化如下 xff1a xff08 1 xff09 加了pts清空 xff0c 即当没有检测到目标时 xff0c
  • Ubuntu16.04 编译出错c++: internal compiler error: Killed (program cc1plus)

    最近在使用github上的一个模拟器 xff0c 需要自己对其中文件进行make编译 但是中间遇到了不知道多少个错误 xff0c 吐血 想了想还是记录一下 xff0c 错误 compiling moc moc qwt plot panner
  • C++创建信号量 CreateSemaphore

    一 定义 Semaphore也是一个线程同步的辅助类 xff0c 可以维护当前访问自身的线程个数 xff0c 并提供了同步机制 使用Semaphore可以控制同时访问资源的线程个数 xff0c 例如 xff0c 实现一个文件允许的并发访问数
  • OpenGL ES之GLSurfaceView学习一:介绍

    原文地址 http 120 132 134 205 cmdn supesite uid 5358 action viewspace itemid 6527 GLSurfaceView是一个视图 xff0c 继承至SurfaceView xf
  • C++之STL迭代器

    一 背景 迭代器 iterator 是一种抽象的设计理念 xff0c 即迭代器模式 xff0c 通过迭代器可以在不了解容器内部原理的情况下遍历容器 除此之外 xff0c STL中迭代器一个最重要的作用就是作为容器 vector queue
  • C++make_shared的使用

    一 使用 make shared是标准库函数 xff0c 此函数在动态内存中分配一个对象并初始化它 xff0c 返回指向此对象的shared ptr 由于是通过shared ptr管理内存 xff0c 因此这是一种安全分配和使用动态内存的方
  • cmkae命令set_target_properties

    一 介绍 命令的格式如下 set target properties target1 target2 PROPERTIES prop1 value1 prop2 value2 Sets properties on targets The s
  • cmake的install

    一 介绍 一般使用cmake xff0c 常用命令就是 mkdir build amp amp cd build cmake make make install install命令为项目生成一系列的安装规则 在执行make install时
  • cmake命令之list

    一 介绍 cmake的list命令即对列表的一系列操作 xff0c cmake中的列表变量是用分号 分隔的一组字符串 xff0c 创建列表可以使用set命令 xff08 参考set命令 xff09 xff0c 例如 xff1a set va
  • Cmake之ExternalProject_Add

    一 介绍 ExternalProject命令可以很好的解决项目中使用第三方库 提高项目的可用性 ExternalProject Add 函数创建一个外部工程可以驱动下载 更新 补丁 配置 构建 安装和测试流程的自定义目标 语法 xff1a
  • POI导入Excel,获取公式的值

    直接POI导入Excel中的数据的时候 xff0c 直接获取表中的值 xff0c 如果表中单元格的值时由公式计算得出的话 xff0c 获取到的会是公式 所以需要对获取的单元格的值进行处理 xff1a 导入数字时 导入公式的计算结果而非公式
  • navicate连接远程数据库

    远程主机的3306端口一般是不允许外网直接访问的 xff0c 但是开发过程中 xff0c 使用navicate工具进行数据库操作会方便超级多 xff0c 那么要怎么配置navicate连接远程数据库呢 超简单两步走 xff1a 1 使用se
  • idea中Gradle项目控制台中文乱码

    我使用的是IEDA2021 xff0c 之前跑maven项目一切正常 今天导入了一个Gradle项目 xff0c debug的时候控制台中文乱码了 之前直接用idea控制台中文乱码做关键词搜索 xff0c 改了file settings e
  • @RequestMapping value值置为““

    我们通常用 64 RequestMapping来映射请求 xff0c 比如 xff0c 写一个方法 xff1a span class token annotation punctuation 64 RequestMapping span s
  • Android多媒体学习十:利用AudioRecord类实现自己的音频录制程序

    AudioRecord类相对于MediaRecorder来说 xff0c 更加接近底层 xff0c 为我们封装的方法也更少 然而实现一个AudioRecord的音频录制程序也很 简单 本实例代码如下 xff1a 可惜 xff0c 本实例测试
  • ROS系统SLAM基础学习:运行gazebo仿真建立保存地图

    ROS系统SLAM基础学习 xff1a gazebo仿真建立保存地图 使用gmapping建立并保存地图使用hector slam建立并保存地图遇到的问题解决以及总结 软件版本Ubuntu16 04LTSROSkineticgazebo7
  • 软件安装时窗口出现在屏幕左上角而且拖不出来

    今天在安装MYSQL是出现如下问题 xff1a 安装助手出现在屏幕左上角而且拖不出来 xff0c 导致安装没办法完成 用一个很简单的方法解决了问题 xff1a 桌面空白处右键 xff0c 点屏幕分辨率 把方向改成纵向 xff0c 左上角的窗
  • DELL笔记本插入耳机没反应

    新入的戴尔燃7000 xff0c 上午因为CPU占用飙升 xff0c 关掉了笔记本上的几个自启动项 xff0c 下午插入耳机就无响应了 xff0c 耳机插进去 xff0c 还是外放 百度原因 xff0c 很多都提及了Realtek这一声卡驱

随机推荐

  • the server responded with a status of 404 (Not Found)

    使用ajax跳转方法时 xff0c 页面ctrl 43 shift 43 i调试报告了一个404错误 xff0c 说找不到方法 页面地址栏直接指向方法的地址跳转也是404 目标方法是新增的 xff0c 于是使用复制黏贴 xff0c 确定各处
  • select设置只读

    根据需求 xff0c 需要根据后台传来的参数 xff0c 动态设置select标签是否可以选择 xff0c 因此 xff0c 当判断某个select应当设为只读时 xff0c 使用 span class hljs variable span
  • java:程序包XXXX不存在

    使用idea导入maven项目 xff0c 编译时报错 xff1a java 程序包XXXX不存在 如图 xff1a 百度到的诸如右键libraries所在文件夹 xff0c 选择add to libraries 等方法没有作用 后来去查看
  • tomcat启动报错:java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.Lifec

    tomcat启动报错 xff1a java lang IllegalStateException ContainerBase addChild start org apache catalina Lifec 百度的结果一般都是让修改web
  • UE4 音乐的播放与停止--基于蓝图

    要实现的功能非常简单 xff1a 点击按钮 xff0c 播放音乐 这个功能非常基础 xff0c 就两步 xff1a 1 将音乐源文件拖到context文件夹中 注意 xff0c 这里的音乐文件必须是 wav格式的 2 在按钮的onclick
  • UnityEditor.BuildPlayerWindow+BuildMethodException

    unity3D安卓打包报错 xff1a UnityEditor BuildPlayerWindow 43 BuildMethodException 61 errors at UnityEditor BuildPlayerWindow 43
  • AI 入门怎么学?这份学习指南请收好!

    万事开头难 xff01 AI 入门对很多初学 AI 的同学来说是一大难题 搜集了一大堆入门资料 xff0c Python 数学 深度学习应有尽有 xff0c 但就是无从下手 xff0c 总是在第一章与放弃之间徘徊 那么 xff0c AI 应
  • 为什么越厉害的大厂,校招越不看重考试成绩?

    前几天赵同学告诉我 xff0c 他没有通过那家心仪的公司笔试 赵同学成绩不错 xff0c 每次都是专业前五 xff0c 但笔试中有一道 银行家算法实现 题 xff0c 他一点也没写出来 这就是大厂招聘不看重成绩单的原因 xff1a 招人是为
  • 我的2011——毕业之年的总结与彷徨

    题记 眼看2011即将成为过去 xff0c 难得在这最后的时刻 xff0c 抽点时间 xff0c 倒上一杯热茶 xff0c 回忆这一年的浮浮沉沉 这一年 xff0c 我和所有毕业生一样 xff0c 离开了呆了四年的大学校园 呆腻了校园的生活
  • centos安装anaconda教程

    1 更新yum 命令 xff1a sudo yum update 2 安装anaconda 2 1 查看anaconda对应python版本 我选的3 8版 Old package lists Anaconda documentation
  • Android布局 -- Navigation实现底部导航栏

    底部导航栏加页卡的切换 xff0c 很多App采用这种布局设计 xff0c 在以前的开发中 xff0c 需要自定义底部导航栏以及使用FragmentTransaction来管理Fragment的切换 xff0c 代码量较大 xff0c 而使
  • ViewModelProviders is deprecated

    原有的创建ViewModel的方法 xff1a viewModel 61 ViewModelProviders of this get ViewModel class 提示ViewModelProviders过时 改为 xff1a view
  • Android Fragment退出 返回上一个Fragment与直接退出

    例如应用底部有两个导航按钮A与B xff0c 刚进入的时候显示为第一个AFragment xff0c 点击B切换到BFragment 如果需求是在BFragment点击返回键回到AFragment xff0c 需要配置 app defaul
  • Android基础 -- 子线程可以修改UI吗?

    子线程可以修改UI吗 xff1f 为什么会产生这样的问题 xff0c 可能是因为在开发过程中遇到了 34 Only the original thread that created a view hierarchy can touch it
  • leetcode 417. 太平洋大西洋水流问题

    https leetcode cn com problems pacific atlantic water flow 思路是从海洋开始逆流 如果可以逆流到 就标记为1 然后检查两个海洋都可以逆流到的区域 DFS public List lt
  • Android模拟器检测常用方法

    在Android开发过程中 xff0c 防作弊一直是老生常谈的问题 xff0c 而模拟器的检测往往是防作弊中的重要一环 xff0c 接下来有关于模拟器的检测方法 xff0c 和大家进行一个简单的分享 1 传统的检测方法 传统的检测方法主要是
  • RecyclerView 隐藏部分分割线

    在项目中遇到复杂点的RecyclerView xff0c 可能会有隐藏部分分割线的需求 xff0c 例如item1和item3之间的分割线隐藏 xff0c item4和item5之间的分割线隐藏等 在看了文档里的ItemDecoration
  • 浅谈去中心化应用

    1 中心化应用 现在我们所使用的应用基本上都是中心化的应用 xff0c 什么是中心化应用呢 xff0c 举个栗子 xff0c 我们在天猫买东西的时候 xff0c 需要先付款给支付宝 xff0c 然后卖家发货 xff0c 我们确认收货之后 x
  • Java二分搜索树及其添加删除遍历

    对于树这种结构 xff0c 相信大家一定耳熟能详 xff0c 二叉树 二分搜索树 AVL树 红黑树 线段树 Trie等等 xff0c 但是对于树的应用以及编写一棵解决特定问题的树 xff0c 不少同学都会觉得不是一件简单的事情 xff0c
  • 游戏平台SDK设计和开发之旅——XSDK功能点梳理

    做游戏开发或者相关工作的同学 xff0c 可能都知道 xff0c 在游戏上线之前 xff0c 需要将游戏分发到各大渠道平台 xff0c 比如九游 xff0c 百度 xff0c 360 xff0c 华为等等 其中和技术相关的事情 xff0c