游戏后端架构师

课程详情

课程详情

游戏后端架构是决定游戏体验与商业成败的核心支柱。从几十人的小型游戏到百万DAU的爆款产品,后端架构的设计直接影响着游戏的稳定性、扩展性和运营效率。

课程核心优势

  • 全生命周期覆盖:从游戏原型到商业化运营的后端架构设计全流程
  • 实战案例驱动:包含MMORPG、MOBA、休闲竞技等5类主流游戏架构案例
  • 性能优化专题:深入讲解千万级并发、海量数据存储的优化技巧
  • 全球化架构:涵盖多区域部署、跨服交互、国际化适配等关键技术

核心技术与代码示例

课程将深入讲解以下核心技术与代码示例:

1. 游戏服务器基础架构

构建高内聚低耦合的游戏服务器架构,如基于Netty的多模块设计。

2. 分布式游戏架构

实现支持高并发的分布式游戏服务器,如基于gRPC的跨服通信。

3. 游戏数据存储与缓存

设计高效的游戏数据存储方案,如使用Redis和MySQL进行数据存储与缓存。

课程目录

00 资料
  youxigaojijiagoushi-master
    youxigaojijiagoushi
      43_Netty_的_userEventTriggered_应用实战.7z
      44_分布式架构下的广播逻辑.7z
      README.md
      游戏前端.zip
      游戏高级架构师课程资料和代码.zip
  youxigaojijiagoushi-master.zip
  游戏前端开发入门.zip
  游戏后端架构师_游戏高级架构师配套资料
    39 关于网关服务器的一些烧脑问题.md
    40 实现一个分布式锁.md
    游戏高级架构师.zip
    游戏高级架构师——课程代码(1226-0514).zip
  游戏后端架构师_高并发游戏后端真实项目—英雄传说配套资料
    高并发游戏后端真实项目—英雄传说.zip
01 入门
  01 游戏前端开发入门
    01 游戏前端开发入门
      01 Cocos Creator 入门
        01 1.个人介绍
        02 2.前端流行框架介绍
        03 3.英雄传说项目介绍
        04 4.如何安装并快速上手 Cocos Creator
        05 5.Cocos Creator 有哪些关键概念
        06 6.用 JavaScript 还是 TypeScript
        07 7.TypeScript 语言入门
      02 事件、位移和动画
        01 1.回顾上节课内容
        02 2.动画的基本原理是什么
        03 3.怎么实现抛物线动画
        04 4.什么是帧动画
        05 5.什么是骨骼动画
        06 6.怎么实现攻击动作
      03 预制体和资源加载
        01 1.没事走两步,怎么让角色走起来
        02 2.如何加载两个英雄角色
        03 3.什么是预制体(Prefab)
        04 4.怎么解决层层回调这个问题
      04 碰撞检测和攻击实现
        01 1.回顾上节课内容
        02 2.怎么让角色发生碰撞
        03 3.什么时候执行碰撞侦测函数
        04 4.消失之前先调用 onDestory
        05 5.怎么实现攻击逻辑
        06 6.攻击逻辑中还有哪些问题
        07 7.如何实现减血效果(上)
        08 8.如何实现减血效果(下)
      05 客户端与服务器通信——基础篇
        01 客户端与服务器端怎么进行消息传输
        02 什么是消息协议
        03 什么是消息粘包
        04 Protobuf 协议文档
        05 Protobuf 命令行工具怎么用
        06 用客户端发送消息给服务器
      06 客户端与服务器通信——进阶篇
        01 1.回顾与引入消息处理
        02 2.怎么对消息进行编解码(上)
        03 3.怎么对消息进行编解码(下)
        04 4.怎么正确的增加业务逻辑
        05 5.如何实现客户端联机
        06 6.修改控制角色代码
        07 7.为什么新角色看不到老角色
        08 8.怎么实现同步移动
        09 9.移动过程中还能发现什么问题
        10 10.解决移动过程问题
      07 打包和发布
        01 1.补全代码讲解
        02 2.如何导出安卓项目
        03 3.如何导出 iOS 项目
        04 4.如何导出 H5 项目
        05 5.怎么使用命令行进行构建
        06 6.总结和回答同学问题
      08 实战——开发一个麻将项目
        01 1.麻将项目简述
        02 2.物理架构该怎么设计
        03 3.代码架构该怎么设计
        04 4.代理服务器怎么转发消息
        05 5.怎么发现新服务器
        06 6.为什么加分布式锁
        07 7.用户是怎么登录游戏的
      09 实战——麻将游戏的算法
        01 1.回顾和麻将逻辑
        02 2.什么是胡牌什么是番型
        03 3.胡牌也有流程
        04 4.怎么实现吃碰杠
        05 5.怎么实现胡牌算法
        06 6.吃碰杠胡会议逻辑
        07 7.注意点补充
  02 高并发游戏后端真实项目—英雄传说
    01 高并发游戏后端真实项目—英雄传说
      01 Java游戏开发(一)
        01 自我介绍及项目介绍
        02 钢铁元帅项目演示
        03 前端框架介绍
        04 开发语言及框架得介绍
        05 服务器架构介绍
        06 PRC的介绍
        07 初步案例讲解
        08 线上项目演示
        09 课间休息
      02 Java游戏开发(二)
        01 功能设想初实现
        02 长连接和短链接的介绍
        03 消息协议
        04 新建第一个项目
        05 代码讲解
        06 Netty和Roactor
        07 趣味故事来反映底层原理
        08 趣味故事引申设计模型
      03 Java游戏开发(三)
        01 消息协议和消息粘包
        02 Protobuf协议文档
        03 添加解码器
        04 Java 游戏开发入门-Protobuf 消息应用
        05 消息群发以及消息的编码
        06 人物的移动及掉线离场
        07 课程总结(11分钟)
      04 Java游戏开发(四)
        01 新建 Broadcaster 类
        02 新建 UserManager 类
        03 新建XxxCmdHandler
        04 新建 ICmdHandler 接口
        05 CmdHandlerFactory 工厂类
        06 重构GameMsgDecoder
        07 重构GameMsgRecognizer
      05 Java游戏开发(五)
        01 反射
        02 技术外的小故事
        03 课后引导
        04 讲解PackageUtil工具类
        05 重构CmdHandleFactory
        06 UserAttkCmdHandle类
        07 反射加javassist-1
        08 XxxEntity_Helper-2
        09 XxxEntity Helper-3
        10 引入javassist代码生成代码
      06 Java游戏开发(六)
        01 ORM的实现原理
        02 javaassist
        03 解决移动问题的不同步01
        04 移动状态的不同步02
        05 攻击逻辑的实现
        06 不同线程读写相同数据会出现的问题
      07 Java游戏开发(七)
        01 谷歌面试题
        02 游戏的单线程方案
        03 LinkedBlockingQueue()-1
        04 BlockingQueue()-2
        05 完成用户登录功能-1
        06 LoginCmdHandler
        07 入场阻塞
        08 跨线程操作
        09 异步调用
        10 AsyncOperationProcessor
      08 Java游戏开发(八)
        01 解决单线程登录
        02 I0操作过程
        03 完成业务逻辑向多线程的映射
        04 排行榜功能需求01
        05 Redis的应用
        06 GetRankCmdHandler
        07 rank包(22分钟)
        08 完善GetRankCmdHandler
        09 RocketMQ
        10 MQConsumer
      09 Java游戏开发(九)
        01 RankApp
        02 下节课内容介绍
        03 故事引出知识的广度
        04 maven打包
        05 Ansible01
        06 Ansible02
      10 Java游戏开发(十)
        01 解压打包
        02 ansible-playbook
        03 Jenkins登场
        04 Filebeat+Elasticsearch+Kibana
        05 课程总结
  03 网游后端(netty应用)第一版
    01 网游后端(netty应用)第一版
      01 开班典礼
        01 开班典礼
      02 Java 游戏开发入门-创建 Netty 服务器
        01 创建 Netty 服务器
      03 Java 游戏开发入门-Protobuf 消息应用
        01 Protobuf 消息应用
      04 Java 游戏开发入门-重构,设计模式实战
        01 重构,设计模式实战
      05 Java 游戏开发入门-通过 Javassist 提升反射效率
        01 通过Javassist提升反射效率
      06 Java 游戏开发入门-重新设计移动消息
        01 重新设计移动消息
      07 Java 游戏开发入门-游戏服务器中的单线程设计
        01 游戏服务器中的单线程设计
      08 Java 游戏开发入门-多线程读写数据库
        01 多线程读写数据库
      09 Java 游戏开发入门-利用RocketMQ 实现简单的排行榜
        01 利用RocketMQ 实现简单的排行榜
      10 Java 游戏开发入门-游戏服务器的部署
        01 游戏服务器的部署
02 进阶
  01 游戏高级架构师(未剪辑版)
    01 游戏高级架构师(未剪辑版)
      01 游戏高级架构师(未剪辑版)
        01 麻将游戏登录设计实现12.06
        02 麻将游戏业务框架设计01-09
        03 分布式锁和短信验证的实现01-17
        04 麻将游戏的业务逻辑和胡牌算法01-24
        05 麻将牌型的前端展示和战绩保存01-30
        06 麻将牌的前端展示和战绩保存02-06
        07 聊天功能和排行榜的实现02-20
        08 麻将前端 Cocos Creator 入门02-27
        09 麻将前端登录过程实现03-06
        10 事件、位移和动画03-13
        11 游戏 2D 动画专题03-20
        12 预制体和资源加载03-27
        13 重构资源加载过程和碰撞侦测04-03
        14 碰撞侦测和攻击04-10
        15 麻将牌桌逻辑04-25
        16 麻将牌桌逻辑05-08
        17 客户端打包和部署05-15
        18 Unity游戏快速入门05-22
        19 Unity 动画实现05-30
        20 创建角色并控制角色06-05
        21 创建角色并控制角色06-19
        22 通过 Cd 控制出拳速度06-26
        23 创建敌人和预制体07-03
        24 碰撞侦测和战斗07-10
        25 敌人击飞效果实现07-20
        26 采用状态模式重构代码07-17
        27 采用状态模式重构代码07-25
        28 制作粒子动画07-31
        29 UGUI 界面08-08
        30 创建网关服务器GatewayServer08-15
        31 升级业务服务器BizServer08-21
        32 拆分登录服务08-29
        33 游戏服务器集群09-04
        34 网关服务器上的会话管理09-11
        35 登录服务器的分离09-18
        36 修改网关服务器的消息转发逻辑09-25
        37 用户连接的转移10-09
        38 将玩家锁定在一个游戏服务器中10-17
        39 分布式架构下的广播逻辑10-24
        40 站在消息转发的角度谈谈聊天系统和帮会系统10-31
        41 实现一个分布式锁11-07
        42 将玩家锁定在一个游戏服务器中11-14
        43 分布式架构下的广播逻辑11-21
        44 站在消息转发的角度谈谈聊天系统和帮会系统11-27
        45 分布式架构下的广播逻辑12-05
        46 分布式架构下的广播逻辑12-11
        47 Go 语言快速入门12-18
        48 Go 语言开发第一游戏服务器12-25
        49 Go 实现一个 WebSocket 服务器01-09
        50 Go 怎么使用 Protobuf01-15
        51 如何设计消息层到业务层的框架机制01-22
        52 处理游戏角色入场消息并返回结果02-12
        53 完善角色的移动和攻击逻辑02-19
        54 Go 读写 MySQL 数据库03-05
        55 异步 IO 操作的 Go 语言版本03-12
        56 完成角色的移动和攻击逻辑03-19
        57 数据库操作优化,心跳方式存库03-26
        58 创建网关服务器04-16
        59 通过 Etcd 实现分布式架构04-30
        60 如何正确处理玩家离线05-14
        61 创建网关服务器05-21
        62 实现网关服务器的消息收发功能;05-28
        63 网关服务器怎么和游戏服务器交互06-11
        64 通过 Etcd 实现分布式架构06-25
        65 登录服务器的分离07-02
        66 网关服务器怎么玩转广播逻辑07-09
        67 通过 Etcd 实现分布式架构;07-23
        68 怎么用 Token 验证玩家身份07-30
        69 怎么通过 Etcd 找到一个人数最少的服务器08-13
        70 怎么避免玩家重复登录09-03
  02 游戏高级架构师
    01 游戏高级架构师
      01 麻将游戏登录设计实现
        01 1.项目简介
        02 2.环境搭建
        03 3.环境介绍
        04 4.代码解说1
        05 5.代码解说2
        06 6.代码解说3
        07 7.代码解说4
      02 麻将游戏业务框架设计
        01 1.前情回顾
        02 2.代码解说5
        03 3.集群架构
        04 4.集群架构2
        05 5.集群架构3
        06 6.渔村经济学
      03 分布式锁和短信验证的实现
        01 1.前情回顾
        02 2.代码解说6
        03 3.代码解说7
        04 4.代码解说8
        05 5.问题理解
        06 6.登陆过程
        07 7.短信登录
        08 8.检票加锁原因
        09 9.代理服务器
        10 10.代码解说9
      04 麻将游戏的业务逻辑和胡牌算法
        01 1.前情回顾
        02 2.AcsClient
        03 3.有状态的和无状态的stateful
        04 4.麻将业务
      05 麻将牌型的前端展示和战绩保存
        01 1.web项目与游戏项目的区别
        02 2.问题的复杂性
        03 3.代码展示及指引
        04 4.大脑的工作原理及思考方法
        05 5.代码展示及麻将定义
        06 6.麻将算法1
        07 7.麻将算法2
        08 8.麻将算法3
        09 9.算番型
        10 10.课后总结
      06 麻将牌的前端展示和战绩保存
        01 1.项目展示
        02 2.麻将展示问题1
        03 3.麻将展示问题2
        04 4.麻将展示问题3
        05 5.麻将展示问题4
        06 6.麻将展示问题5
        07 7.麻将展示问题6
        08 8.麻将展示问题7
        09 9.课后总结
      07 聊天功能和排行榜的实现
        01 1.知识回顾
        02 2.战绩记录介绍1
        03 3.战绩记录介绍2
        04 4.战绩记录介绍3
        05 5.MySQL怎么存
        06 6.MySql怎么存2
        07 7.解决方案1
        08 8.解决方案2
        09 9.成果展示及课后总结
      08 麻将前端 Cocos Creator 入门
        01 1.需求介绍
        02 2.Redis
        03 3.非功能需求
        04 4.完善排行榜 问题解决1
        05 5.完善排行榜 问题解决2
        06 6.代码展示
        07 7.总结及问题解决
      09 麻将前端登录过程实现
        01 1.上节问题解答
        02 2.cocos creator入门
        03 3.cocos第一个程序
        04 4.理解核心概念
        05 5.cocos基本使用
        06 6.语言基本语法
        07 7.代码编写
        08 8.代码编写2
        09 9.总结及问题解答
      10 事件、位移和动画
        01 1.前情回顾
        02 2.查找节点
        03 3.抛物线动画
        04 4.序列化动画
      11 游戏 2D 动画专题
        01 1.课前指导
        02 2.标量图演示
        03 3.矢量图演示
        04 4.动画制作
        05 5.动画优化
        06 6.知识扩展
      12 预制体和资源加载
        01 1.控制锤子兵
        02 2.使用代码复制锤子兵
        03 3创建prefab
        04 4.将prefab添加到
        05 5.通过预制体加载
        06 6.配置bundle
        07 7.问题探讨
      13 重构资源加载过程和碰撞侦测
        01 1.前情回顾
        02 2.解决代码回调地狱1
        03 3.解决代码回调地狱2
        04 4.函数1阻塞函数2是否执行
        05 5.给代码变个型
        06 6.解决嵌套问题
        07 7.unity shader
        08 8.课后内容扩展
      14 碰撞侦测和攻击
        01 1.课前指导
        02 2.前情回顾
        03 3.代码封装
        04 4.通过组件实现移动
        05 5.英雄层级关系
        06 6.碰撞检测
        07 7.攻击逻辑
        08 8.攻击优化
        09 9.减血动画
        10 10.问题解答
      15 麻将牌桌逻辑
        01 1.问题解答及往期介绍
        02 2.客户端与服务端的通信过程
        03 3.消息粘包
        04 4.netty如何处理粘包
        05 5.消息协议
        06 6.protubuf
        07 7.MsgBus代码演示
        08 8.消息编码器
        09 9.代码优化
        10 10.接住消息
        11 11.问题答疑
      16 麻将牌桌逻辑
        01 1.回顾Cocos Creator基本概念
        02 2.多个场景之间如何跳转
        03 3.项目结构及运行流程
        04 4.comm模块
        05 5登陆场景
        06 6.检票过程
        07 7.遍历节点思路
        08 8.创建房间的小技巧
        09 9.游戏场景1
        10 10.游戏场景2及问题解答
      17 聊天功能的实现
        01 1.课前问题解答
        02 2.知识回顾
        03 3.聊天功能1
        04 4.聊天功能2
        05 5.聊天功能(前端)1
        06 6.聊天功能(前端)2
        07 7.打包操作
        08 8.打包具体架构
        09 9.课后问题解答
      18 Unity游戏快速入门
        01 1.Unity入门项目创建
        02 2.Unity基本概念
        03 3.Unity运行流程和运行场景
        04 4.让方块动起来1
        05 5.让方块动起来
        06 6.创建地面和墙
        07 7.让方块变得有意思1
        08 8.让方块变得有意思2
        09 9.问题解答
      19 Unity C# 语言基础
        01 1.知识回顾
        02 2untiy的四个主要函数
        03 3.C#语言特性(类和结构体)
        04 4.C#语言特性(操作符重载)
        05 5.C#语言特性(delegate)
        06 6.C#语言特性(yield)
        07 7.C#语言特性(untiy携程)及总结
      20 Unity 动画实现
        01 1.知识回顾
        02 2.透视效果和正交视角
        03 3.可视范围及合并摄像机
        04 4.unity实现动画的两种方式
        05 5.序列帧动画
        06 6.龙骨骨骼动画
        07 7.课后总结及问题解答
      21 创建角色并控制角色
        01 1.知识回顾
        02 2.unity项目导入龙骨插件
        03 3.模型创建及层级问题
        04 4.播放角色动画1
        05 5.播放角色动画2
        06 6.摄像机问题解决
        07 7.差值
        08 8.转身
        09 9.斜方向移动及问题答疑
      22 通过 Cd 控制出拳速度
        01 1.回顾上节课内容(Unity运行流程)
        02 2.解决纸片感
        03 3.解决人物移动方向
        04 4.角色执行出拳动作
        05 5.场景地面
        06 6.Unity材质决定了什么
      23 创建敌人和预制体
        01 1.创建敌人
        02 2.通过代码的方式创建新的敌人
        03 3.敌人出现(携程方式)
        04 4.优化加载过程
        05 5.打包过程
        06 6.敌人出现(携程方式)通过Bundle加载
      24 碰撞侦测和战斗
        01 1.游戏介绍
        02 2.碰撞盒
        03 3.人物发生碰撞逻辑
        04 4.人物受伤动作
        05 5.聊下节课要讲的知识
      25 敌人击飞效果实现
        01 25-1.游戏介绍
        02 25-2.实现升龙拳把敌人打飞
        03 25-3实现抛物线逻辑
        04 25-4.解决击飞敌人的倒地朝向
        05 25-5.给敌人添加出拳的效果
        06 26-6.解决角色状态切换问题
        07 27-7.在java实现角色出拳、跑效果
      26 采用状态模式重构代码
        01 1.介绍游戏场景
        02 2.游戏的几种状态
        03 3.代码重构
        04 4.总体流程
        05 5.执行跑动
        06 6.更新当前状态
      27 制作粒子动画
        01 1.什么是粒子特效
        02 2.升龙拳特效(1)
        03 3.粒子系统
        04 4.升龙拳特效(2)
        05 5.解决人物穿模
      28 UGUI 界面
        01 课前答疑
        02 MainCamera
        03 UICamera
        04 画布、系统时间、cube组件
        05 修改参数
        06 新建时间代码
        07 绑定事件
        08 修改减血动画
        09 课后答疑
      29 创建网关服务器 GatewayServer
        01 1.复习英雄传说代码
        02 2.网关服务器的意义
        03 3.网关服务器对架构的影响
        04 4.写代码——创建网关服务器
        05 5.实现 NettyClient
        06 6.第一次转发消息
        07 7.握手之后,转发消息成功
      30 升级业务服务器 BizServer,接收会话 Id
        01 1.回顾网关服务器
        02 2.连接数问题
        03 3.单条连接完成消息转发
        04 4.单条连接会有什么问题
        05 5.单条连接问题的解决方案
        06 6.怎么扩展消息字节数组
        07 7.完成代码
      31 升级业务服务器 BizServer,回传会话 Id
        01 1.准备传递 SessionId
        02 2.谈谈 fireChannelRead
        03 3.传递 remoteSessionId
        04 4.提出重构的问题
        05 5.第二次冲击,再谈重构的问题
        06 6.重构成 MyCmdHandlerContext
      32 网关服务器将结果回发给客户端
        01 网关服务器将结果回发给客户端
        02 2、回顾代码,准备回传 sesssionId
        03 3、修改消息回发代码
        04 4、将消结果回发给客户端
        05 5、完善广播逻辑
        06 6、本节课小结
      33 游戏服务器分布式架构
        01 1、为什么要增加 RemoteSessionId
        02 2、消息从客户端到网关服务器再到游戏的完整过程
        03 3、游戏是怎么实现分布式的
        04 4、什么是注册中心
        05 5、初识 Nacos
        06 6、游戏服向 Nacos 注册
        07 7、网关服务器订阅 Nacos
        08 8、参数化服务器端口号和 IP 地址
      34 登录服务器的分离
        01 1、回顾上节内容介绍本期任务
        02 2、将单连接修改成多连接
        03 3、增加服务器Id
        04 4、完善关闭连接代码
        05 5、消息分别转发给登录服和游戏服
        06 6、完成登录服分离
      35 如何传递用户 Id
        01 1、回顾上节课内容
        02 2、回传用户 Id
        03 3、调试代码
        04 4、回忆游戏服务器的线程架构
        05 5、重构代码,简化异步操作
      36 如何避免用户重复登录——单服务器版
        01 回忆英雄传说项目
        02 英雄传说项目代码
        03 玩家重复连接问题
        04 玩家重复连接代码
        05 可不可以只断开一个连接
        06 细节补充
        07 项目演示效果
        08 补全代码实现功能
        09 一个玩家连不同的网关服务器问题
        10 一个玩家连不同的网关服务器问题代码(1)
        11 一个玩家连不同的网关服务器问题代码(2)
      37 如何避免用户重复登录——多服务器版
        01 1、回顾网关服务器
        02 2、重复登录断开连接
        03 3、通过 Redis 判断重复登录
        04 4、避免重复登录
        05 5、通过 Lua 实现 Redis 操作的原子性
        06 6、完善发布订阅代码
        07 7、调试代码
        08 8、单线程了,可能会卡住!
        09 9、回顾主线程和 IO 线程池
        10 10、重构代码,增加执行者
        11 11、异步操作后的复杂问题
        12 12、增加 Handler 完成重复登录检查
        13 13、修改引用数递减的问题
      38 某个网关服务器宕机了,造成用户无法登录,怎么办
        01 1、回顾代码
        02 2、越扩容性能越差,这是为什么
        03 3、问题在这儿
        04 4、遇到第二个问题
        05 5、怎么降低 IO 次数还能给数据进行续期
        06 6、再谈续期,一个思路推演过程
      39 关于网关服务器的一些烧脑问题
        01 回顾英雄传说
        02 网关服务器宕机数据修改的问题
        03 代码实现网关服务器宕机数据修改的问题
        04 运行程序展示
        05 网关服务器宕机上另个号连上其他两个服务器的情况
        06 绑定id时出现的重复连接问题问题
        07 总结
      40 实现一个分布式锁 1
        01 回顾上节课知识
        02 分布式锁
        03 举例说明现实情况加锁
        04 解决死锁加失效时间
        05 没过期锁也有可能清掉数据情况
        06 在二号服务器频繁加锁但redis加锁失败清除本地锁无限循环问题
        07 pileline解决io次数
        08 我们项目代码修改
        09 总结
      41 实现一个分布式锁 2
        01 1、回顾上节课内容
        02 2、完成分布式加锁
        03 3、运行代码演示
        04 4、用 finally 解锁的 Bug
        05 5、重构分布式锁
      42 将玩家锁定在一个游戏服务器中
        01 1、回顾上节课内容
        02 2、增加 ValidateUserIdHandler
        03 3、讲解 Netty Handler 过程
        04 4、如果有两个游戏服务器会有什么问题
        05 5、介绍消息路由策略
        06 6、完成转发代码
      43 怎么找到一个人数最少的服务器
        01 1、回顾上节课内容
        02 2、Session 保存服务器 Id 为什么不会重复
        03 3、利用 handlerAdd 增加其他 Handler
        04 4、完成 GameMsgHandler 类的改造
        05 5、来看一个新问题
        06 6、怎么选择一个人数最少的服务器
        07 7、借助 Redis 发布订阅机制完成离线广播
        08 8、如果网关服务器断线了,会产生什么问题
      44 Netty 的 userEventTriggered 应用实战
        01 1、回顾上节课内容
        02 2、使用集合记录用户 Id
        03 3、浏览代码
        04 4、当网关服务器宕机时会产生什么问题
        05 5、如何处理网关服务器断线逻辑
        06 6、重构负载统计代码
        07 7、传递网关服务器 Id
        08 8、通过事件机制取得网关服务器 Id
      45 分布式架构下的广播逻辑
        01 1、回顾上节课代码
        02 2、无法广播的原因
        03 3、完善 Broadcaster 并介绍编程技巧
        04 4、完成广播逻辑
        05 5、测试和修改代码
        06 6、用户离线为什么没有广播
        07 7、完成离线广播代码
      46 Go 语言快速入门
        01 1、Go 语言的环境变量和 IDE
        02 2、HelloWorld
        03 3、Go 语言的函数
        04 4、Go 结构体
        05 5、结构体可以继承么
        06 6、Go 语言怎么实现模板方法模式
        07 7、Go 语言的接口
        08 8、Go 语言的指针
03 直播课
  01 Unity 游戏开发
    01 Unity 游戏开发
      01 Unity 游戏开发
        01 快速了解 Unity,Unity 有哪些基本概念
        02 C# 语言有哪些迷人的特性
        03 怎么制作第一个游戏场景
        04 怎么发射子弹攻击敌机
        05 怎么通过粒子动画增强受击反馈
        06 什么是预制体怎么加载预制体
        07 怎么通过 HTTP 方式加载预制体
        08 怎么通过工厂创建预制体
        09 怎么射击实现一个火力系统——第 1 讲
        10 怎么射击实现一个火力系统——第 2 讲
        11 怎么实现掉落奖励
        12 怎么添加游戏背景,并让背景动起来
        13 怎么添加 BOSS怎么让 BOSS 张牙舞爪
        14 怎么拼 UI 显示血量
        15 怎么制作游戏启动界面,并增加缓动效果
        16 怎么适配手机操作
        17 怎么将游戏发布到安卓手机
        18 游戏开发去哪找素材要用到哪些美术工具
        19 怎么实现一个简单的 FPS 游戏
        20 FPS 游戏中的敌人怎么做
        21 怎么设计一个行为树
        22 怎么实现行为树中的控制逻辑
        23 怎么通过 JSON 配置行为树逻辑
        24 游戏中的音效怎么做
        25 怎么制作 3D 游戏中的特效
        26 怎么导入 3D 模型,让角色动起来
        27 怎么解决 Unity 热更新项目的复杂引用
        28 怎么扩展 Unity Editor 来管理热更新资源
        29 怎么自己实现 AB 包加载
        30 怎么进化到异步方式加载 AB 包
        31 战斗系统源码分析
        32 什么是 Shader 着色器编写第一个着色器;
        33 怎么实现光照
        34 为什么渲染顺序很重要怎么实现半透明
        35 怎么增加纹理渲染
        36 怎么实现模糊效果
        37 怎么实现纹理动画
        38 怎么实现顶点动画
        39 内置渲染管线怎么实现屏幕后期处理效果
        40 怎么实现景深模糊效果
  02 Golang 高性能游戏服务器开发
    01 游戏高级架构师
      01 游戏高级架构师
        01 Go 语言快速入门
        02 Go语言的协程和通道
        03 Go实现一个WebSocket服务器
        04 Go 怎么使用 Protobuf
        05 如何设计消息层到业务层的框架机制
        06 处理游戏角色入场消息并返回结果
        07 重构,完成指令处理器上下文
        08 Go语言读写Mysql数据库完成游戏角色注册功能
        09 异步IO操作的GO语言版本
        10 完成角色的移动
        11 完成广播逻辑
        12 完成攻击逻辑
        13 数据库据操作优化
        14 如何正确处理玩家离线
        15 创建网关服务器
        16 有去,怎么讲玩家消息从网关服务器正确的传递给业务服务器
        17 有回,怎么将结果消息从业务服务器正确的返回给网关服务器
        18 什么叫被动式怎么清理用户会话
        19 网关服务器怎么将结果消息发送给客户端,遇到循环依赖怎么办
        20 网关服务器怎么玩转广播逻辑
        21 怎么通过Etcd实现分布式架构
        22 准备分离登录逻辑
        23 怎么通过消息代号来找到对应的业务服务器
        24 理论篇,怎么找到一个最优的服务器
        25 实战篇,找到一个最优的服务器,代码怎么实现
        26 通过合成聚合模式实现混合查找策略
        27 游戏服务器怎么统计负载数
        28 集群环境下怎么处理玩家离线
        29 怎么避免玩家重复登录
        30 怎么借助 Etcd 实现一个分布式锁
        31 怎么让玩家在断线后回到原来的服务器
        32 相同账号的两个客户端同时登录游戏,会造成什么问题
        33 怎么通知另一个网关服务器放手
        34 网关服务器间怎么转移连接