当前课程知识点:游戏程序设计 > 第十三章 《开发工具 》 > 13.3 腾讯开发组件介绍 > 13.3 腾讯开发组件介绍
那现在就是我已经知道怎么做了
难道我真的用开始从
HelloWorld开始写吗
就是腾讯有没有一些服务组件能够让我选
我直接拼就好了
对不对
何必要从头写呢
其实答案是肯定的
肯定是有的
就是作为互娱的服务器开发
我们实际上
一直现在会有一个开发框架叫tsf4g
英文名字就不念了
挺长的
然后其实他的核心思想就是
会把之前很多业务重新重复造轮子
公共逻辑提取在一起
然后形成自己的公共组件
一方面是提升效率
另外一方面是把它的通用化做好
这样的话
哪怕我下次有新的项目
我可以直接用
而且它提出来另外一个更好的意识
组件跟组件之间的关联会做得
更紧密
更通用化
如果把它放到各个项目中自己去做的话
那可能就
天差地别的话没有没有办法统计了
那讲到这些组件
第一个要跟大家介绍的就是TGW
其实它是我们腾讯的公共网关
它其实并不在我们刚刚那个图里面
它不属于我们项目里面的任何一个环节
如果刚刚说的是一个网红店
那可能它就像是一个shopping mall
一个大门一样
就我那个店里面
shopping mall里面有很多的网红店
它作为通入这个网店的第一个关口
然后它是腾讯对外的一个唯一的出口
它主要的帮我们做一些可靠性
扩展性
然后高性能防攻击
比如说这个商场要混下来一些流氓地痞的
那门口的保安就直接把它拒绝了
但是怎么什么叫可靠性和扩展性的
比如说我这个业务里面的一台服务器
挂了这个店挂了
但是他有一个分店
那我这个TGW这个保安就可以直接帮我
把这个人引到他的分店去
对客户来说
他只想去这家店
他用不用管是去那家店
所以对他来说是没有任何感知的
所以这TGW作为一个接入层
一个比较重要的一个作用
另外一个就是高级门童tconnd就是
它其实是负责我们接入层的一个
主要的组件核心组件
他能够支持的是TCPU udp
http等很多的协议
然后其实除此之外
如果大家脑海里还有刚刚那个图的话
我们这个高级门童还做了一点
就是他可以帮我们做一些权限的校验
权限校验是我们所有接口里面
任何一个业务里面都要第一步就要做的
就是我要先确定这条协议是这个人发起的
那你就没有必要把它在做到业务逻辑里面
直接把它做到接入层
类似于这个门童
他在接受客人的同时
首先要核对一下客人的身份
然后你的预约码是多少
电话号码是多少OK没有问题了
我们在往后走
这个是它就是也是我们把很多东西
凑成一个组建的一个比较重要的意义
另外一个就提到了我们那个消息队列
消息队列就是我们刚刚所说的数据通道
模块模块之间是通过消息队列
来彼此之间进行数据交换
它重点的实现就是
官网内存构建无锁双通道
循环队列就是很拗口
但是我相信
如果有计算机经验的同学
应该大概也是能理解它的实现方式的
无非就是他们两之间有两个队列
然后一个负责往这边写一个往这边写
做一个交换是没有锁的
但是没有计算机的同学就知道就行了
它就像一个电话一样
两个人打电话就可以做一些数据的交互了
然后核心逻辑层
就是swift它实际上就是一个框架
这个框架它提供了同步与异步的两种模式
然后对于业务来说
我只要往里面填
我的逻辑就行了
而且
如果就像刚刚那个她是服务员的话
他不一定就是一个服务员
就是我要把所有的事情告诉他
我可以根据事情的种类
比如说点餐
然后这个是给她美甲
就是每个服务员都可以有各自的能力
所以其实他是可以分成很多组的
并行的一个存在
那它就是我们逻辑层的一个组件
这个就是我们的数据层了
类似于我们这个仓库一样
其实在腾讯内部
tcaplus已经用了很多年了
它比相当于很多的之前老的一个
比如说TTC也好
或者说ckv也好
就是它会有高性能
低成本
高可用性
高应用性等特点
比如说我做业务方
我不用太关心数据层的一些问题
比如说它down机了怎么办
他数据丢了怎么办
或者说我自己又出现问题
我要回挡的某一个阶段
其实这些能力它都已经帮我帮我们做好了
所以我们使用它就可以了
这个是非常已经非常成熟的一个存储方案
TCM其实在刚刚那个图里面是没有
TCM进程集中管理系统
其实如果还是用门童服务员做比较的话
TCM更像是整个店的店长
就是他要知道每个进程的状态
要知道当前的配置什么样的
它能够集中的去调用重启每个进程
所以
它更多的功能就是提供了部署集中管理
然后状态检查起停等等
所以对于我们来说非常简单
我们只要远程的在管理端TCM
就可以控制到所有在线的一个服务器
和它进程一个情况
包括我还可以把一些配置直接推送过去
让它重启就远程调用这些
调度这些进程就是我们的店长
其他主要组成TDir
TVersion就是
我们如何判断打开王者荣耀了
它提示你版本已经更新了
其实都是通过这种公共组件来实现的
而且没有没有必要
每个业务都做一套
所以把它做成公共的
每个业务都可以用就可以了
比如排行榜或者锁服
其实这些在TSF4G里面
都已经有成熟度之间
那已经有了这些组件了
我们怎么玩
其实就回到刚刚那个图接入层
用Tcound解决连接的问题
随后封装好这个服务员
它所要做的每一个逻辑是什么样的
然后OpenAPI不变
那存储层后除
我们就用Tcound这个组件
其实单纯对这个接口来说
我这样一套架构就已经解决这个问题了
但是对整个业务来说
它的接口特别特别多
所以这个就是
大概八年前的一个农场的一个架构图
所以我们根据前端的一个请求方式
然后选择对应的更合适的一个接入组件
然后同时会按照功能去把
服务器逻辑进行一个拆分
可能有首页svr
有偷sve
还有什么虫草svr种植svr
就是每个服务器负责一个模块的
所有的能力
这样的好处就是
当我其中有一个服务器挂掉的时候
不至于影响其它服务器的逻辑
不可能说
因为我偷这个服务器挂了
导致我种都种不了了
所以它们分开也是有一些设计上的考虑的
同时后台我们可以用Tcaplus
或者一些其他的存储来负责
如果把TSF4G全部打开的话
那我们大概就能看到这样一套东西了
如果喜欢玩乐高的同学
大概就可以把它理解成
我们是在这样的一个架构上构建出来的
很多的一个积木或者说模块
那对我们服务器来说
如果我对它们很了解
其实我把它们拼装在一起
就可以很快的组成一个minigeme
-1. 1什么是游戏(上)
--选择题
-1.2 什么是游戏(下)
--选择题
-1.3 游戏是如何开发出来的
-1.4 游戏引擎(上)
-1.5 游戏引擎(下)
--单选题
-1.6 如何成为一个游戏开发者
--多选题
-2.1 什么是游戏服务器
--单选题
-2.2 游戏服务器的和分类发展
--单选题
-2.3 核心技术和实现难点
--单选题
-2.4 设计原理与方法论
--单选题
-3.1 三维坐标系统
--多选题
-3.2 向量与运算
--单选题
-3.3 矩阵与线性变换
--双选题
-3.4 四元数
--3.4 四元数
--多选题
-4.1 游戏循环概述(上)
--多选题
-4.2 游戏循环概述(下)
--单选题
-4.3 《无尽之路》的实现
--单选题
-4.4 支撑游戏的功能
--选择题
-4.5 支撑游戏的机制与系统
--多选题
-5.1 基本介绍
--5.1 基本介绍
--单选题
-5.2 随机数生成器
--单选题
-5.3 随机数分布与应用
--单选题
-6.1 什么是游戏玩法开发
--单选题
-6.2 建立愿景 Vision
--单选题
-6.3 划定边界 Scope
-6.4 迭代 Iteration
--单选题
-6.5 迭代 Iteration+抛光Polish
--单选题
-7.1实时图形渲染管道 宏观渲染系统
--单选题
-7.2实时图形渲染管道 应用阶段
--单选题
-7.3实时图形渲染管道 几何阶段
--单选题
-7.4实时图形渲染管道 光栅化阶段
--单选题
-7.5实时图形渲染管道 总结 参考
-8.1 物理回顾1
--单选题
-8.2 物理回顾2
--单选题
-8.3 材质 1
--8.3 材质 1
-8.4 材质 2
--8.4 材质 2
-8.5 材质3
--8.5 材质3
-8.6局部光照
--8.6局部光照
--单选题
-8.7 全局光照
--8.7 全局光照
--单选题
-9.1 动画介绍
--9.1 动画介绍
--多选题
-9.2 游戏动画介绍
-9.3 动画技术类型
--多选题
-9.4 骨骼蒙皮动画
--多选题
-9.5 动画流水线
--多选题
-9.6 动画前沿趋势
--多选题
-10.1 .基本概念
--多选题
-10.2 设计目标
--多选题
-10.3 传输数据分析
--多选题
-10.4 常用同步方案 1
-10.4 常用同步方案 2
-10.4 常用同步方案 3
-10.4 常用同步方案 4
--多选题
-10.5 方案对比
--多选题
-11.1 基本图元
--单选题
-11.2 图元距离(上)
--单选题
-11.2 图元距离(下)
--单选题
-11.3 图元相交测试+ 其他几何方法
--单选题
-12.1 著名物理引擎介绍
--单选题
-12.2 物理引擎原理(上)
--单选题
-12.3 物理引擎原理(下)
--单选题
-12.4 游戏中的物理体
--单选题
-12.5 物理引擎使用入门
--单选题
-13.1开发语言
--13.1开发语言
--单选题
-13.2 开发环境
--单选题
-13.3 腾讯开发组件介绍
--单选题
-13.4 网络通信+业务框架介绍
--多选题
-14.1 进程间通信(上)
-14.2 进程间通信(下)
-14.3 通信格式
-14.4 并发模型
-14.5 超时处理
-14.6 大系统小做(上)
--多选题
-14.7 大系统小做(下)
-14.8 架构层面的技术支持(上)
--单选题
-14.9 架构层面的技术支持(下)
-14.10 分布系统的关键能力
--多选题
-15.1 游戏人工智能综述
-15.2 人工智能在游戏中主要方法 上
--多选题
-15.3人工智能在游戏中主要方法 (下)
-15.4 人工智能在游戏制作中的应用领域1
--多选题
-15.5 人工智能在游戏制作中的应用领域2
-15.6 人工智能在游戏制作中的应用领域3
--多选题
-15.7 人工智能在游戏运营中的应用实践(上)
-15.8 人工智能在游戏运营中的应用实践(下)
--多选题
-16.1 游戏支撑系统(1)
--单选题
-16.2 游戏支撑系统(2)
--单选题
-16.3 游戏支撑系统(3)
--单选题
-16.4 游戏支撑系统(4)
--单选题
-16.5 游戏支撑系统(5)
-17.1 游戏逻辑服务器(上)
--单选题
-17.1 游戏逻辑服务器(下)
-17.2 外挂与反外挂(上)
-17.2 外挂与反外挂(下)
--多选题
-18.1运行环境
--18.1运行环境
--多选题
-18.2物理部署
--18.2物理部署
--多选题
-18.3系统的可运维性
--多选题
-18.4运维案列分析
--多选题