如果你在招聘网站上搜过"游戏后端",会发现薪资跨度极大:初级岗位月薪一万出头,架构师级别能到五六万甚至更高。差距不在写不写得出登录验证,而在于能不能扛住真实项目里那些具体的问题——千人同屏卡不卡、跨服战数据怎么同步、活动上线第一天数据库会不会被打爆。这门课针对的就是后面这类问题,不是教你怎么入门写代码,而是讲清楚一个游戏后端系统从设计到上线要面对哪些决策。
它解决什么工作场景
课程围绕几类主流游戏形态展开:MMORPG、MOBA、休闲竞技等。这些类型对后端的要求差异很大。MMORPG 强调长连接、地图分服、状态同步;MOBA 更在意匹配效率和单局战斗的低延迟;休闲竞技则偏向高频短连接和快速扩容。课程会分别拆解这些场景下的架构取舍,比如什么情况该用网关分发、什么情况该让逻辑服自己处理连接。
另一块是运营期才会暴露的问题:开服排队、活动流量洪峰、跨区合服、数据回档。这些不是靠背八股能解决的,需要理解架构层面的余量和降级方案。课程把这类"上线之后才知道疼"的环节单独拎出来讲,这部分对做过一两个项目、但没经历过大规模运营的人最有价值。
学完能独立做什么
比较实际的预期是:你能独立设计并搭建一个支持中等规模在线的游戏后端骨架,包括连接层、逻辑层、数据层的划分,能选型并接上缓存与数据库,能处理跨服通信和基础的多区域部署。往深了说,遇到性能瓶颈时,你至少知道该从哪几个方向排查——是网络 IO、锁竞争、数据库慢查询还是缓存穿透——而不是只能加机器。
但要说明白:架构能力很大程度靠项目喂出来。课程能给你的是判断框架和常见解法,不等于学完就能去带百万 DAU 的系统。如果你目前还没独立负责过一个上线项目的后端,建议把这门课当成"提前建立地图",配合自己手上的项目一起看,效果比纯刷视频好得多。
资料适合什么基础
不适合零基础。你需要至少熟悉一门后端语言(Java/Go/C++ 都行),理解 TCP/HTTP、多线程、数据库基本操作。课程里涉及 Netty、gRPC、Redis、MySQL 这些技术栈,会讲原理和设计思路,但不会从语法教起。如果你连服务端和客户端怎么通信都没写过,先补一段基础再回来。
比较合适的画像:有一到三年后端经验,做过 Web 或普通服务端,想转到游戏方向;或者已经在游戏公司做后端,但一直只负责某个模块,想看清整体架构。这两类人看这门课的收益最直接。
怎么用这份资料
- 先过一遍架构总览部分,建立"一个游戏后端由哪些部分组成"的框架,不要一上来就抠代码细节。
- 挑一个你最熟悉的游戏类型(比如你玩得最多的那类),跟着案例走完整流程,其余类型快速浏览即可,不必平均用力。
- 性能优化和全球化部署两块,建议留到自己项目里真遇到问题或准备面试时再精读,否则容易看过就忘。
- 每看完一个架构方案,试着用文字复述一遍"它为什么这么设计、换一种做法会怎样",这比记结论有用。
整体上,这是一门偏架构思维和实战取舍的课,信息密度不低。值不值得投入,取决于你是否已经站在"要为一个系统的整体负责"这个位置上。如果还在写单个接口,可以先收藏;如果已经开始被问"这个方案为什么这么定",那它大概率能帮你把零散的经验串起来。
课程目录
课程目录7 条
- 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 网关服务器间怎么转移连接






