登录
自2024年5月16日起,中文课堂仅支持使用UnityID登入,如遇问题,请在
开发者社区
发帖说明情况,我们会尽快帮您解决。
MMO状态同步实时对战分布式滚服案例
¥1999 购买
MMO状态同步实时对战分布式滚服案例
教程
高级
80 小时
Plane
概述
作者信息
教程资料
互动讨论
课程评价
98人收藏,79人学习
登录后开始教程
章节1
成果演示与技术要点分析
1.
可试看
MMO案例课程效果Demo演示
2.
可试看
MMO案例课程核心技术要点概述
章节2
搭建客户端基础业务框架
1.
可试看
客户端框架分层概述
2.
可试看
创建客户端初始工程
3.
创建分类目录导入基础资源
4.
制作登录UI界面
5.
特效和模型与UI混排
6.
PELog日志初始化设置
7.
创建定时器服务
8.
游戏玩法模式状态机
9.
驱动业务系统和网络服务
10.
场景异步加载1
11.
场景异步加载2
12.
UI窗口界面基类
13.
加载进度窗口显示
14.
注册登录逻辑
15.
切换玩法模式基础层UI
16.
制作通用Tips弹窗提示
17.
设计通信协议数据结构
18.
跳转游戏角色创建场景
19.
角色选择界面UI制作
20.
角色选择界面交互逻辑
21.
消息发布与订阅服务
22.
加载主城场景
23.
制作并导入UI组件
24.
主城UI组件挂载定位点
25.
挂载组件控制脚本
26.
编辑器显示组合UI1
27.
编辑器显示组合UI2
28.
跳转显示主城组合UI
29.
修复编辑操作报错
30.
第一章总结回顾
章节3
搭建服务端基础业务框架
1.
服务端战斗服框架结构
2.
创建服务进程抽象类
3.
配置日志与Json解析库
4.
通用进程启动器
5.
控制台命令解析
6.
公共服务与业务系统
7.
游戏世界及驱动容器
8.
驱动GameWorld流程
9.
处理GameWorld创建请求
10.
缓存角色进入游戏世界
11.
挂载世界单位组件
12.
挂载角色单位组件
13.
整合IOCPNet网络库
14.
服务器登录消息处理
15.
服务端代码导出共享
16.
搭建客户端网络层
17.
服务端独立登录网络模块
18.
客户端回应消息分发机制
19.
请求登录Token协议
20.
服务端登录Token生成
21.
客户端登录协议联调
22.
主动断开Login连接
23.
战斗进程校验Token数据
24.
缓存角色数据映射关系
25.
玩家上线状态切换
26.
创建服务端角色消息组件
27.
客户端发送Token令牌
28.
分发关卡进入确认消息
29.
角色消息组件消息处理
30.
注册分发进程内部协议
章节4
服务器寻路与AOI视野算法
1.
多线程添加World创建缓存
2.
创建不同模式GameWorld
3.
容器负载GameWorld
4.
生成均匀分布的随机位置
5.
服务端寻路组件安装整合
6.
服务端寻路组件路径点计算
7.
Navmesh寻路数据导出
8.
寻路点测试Debug演示
9.
服务端AOI视野组件安装整合
10.
缓存进出AOI世界请求
11.
创建移动控制组件
12.
设置AOI单位初始位置
13.
作用范围组件ScopeComp
14.
制定AOI视野状态协议
15.
制定状态数据嵌套协议
16.
收集进入视野状态数据
17.
剔除重叠进出合并视野
18.
SWorld驱动游戏角色
19.
客户端角色业务系统
20.
生物角色表现类
章节5
客户端移动同步与预表现
1.
角色单位配置数据
2.
场景中加载角色资源
3.
设置角色基础属性
4.
预测校正移动同步算法
5.
键盘输入玩家角色方向
6.
玩家动画播放切换
7.
下发移动组件初始属性
8.
修复动画播放切换
9.
客户端上行移动数据
10.
移动消息分发处理
11.
视野内广播移动同步
12.
计算客户端预测位置
13.
移动旋转预测与插值平滑
14.
前后端移动同步联调
15.
角色资产替换流程
章节6
任务系统与NPC对话系统
1.
制定任务数据协议
2.
服务端任务系统组件
3.
客户端任务业务系统
4.
封装UI递归查找工具
5.
控制任务组件UI状态
6.
任务状态与类型排序
7.
刷新任务数据显示
8.
调试数据显示异常
9.
任务行为分发处理
10.
设置NPC对话相机
11.
NPC对话UI显示
12.
处理对话完成回调
13.
客户端计算路径点
14.
移动增加导航模式
15.
场景加载NPC资源
16.
批量异步加载Prefab
17.
修正寻路提前中止问题
18.
完成对话并推送任务状态
19.
领取奖励并更新主线任务
20.
采集任务UI组件
21.
对接采集任务处理
22.
轮盘摇杆方向组件
23.
UI方向组件自适应
24.
模拟网络上下行延时环境
25.
位移追击优化移动同步1
26.
位移追击优化移动同步2
章节7
公共地图怪物与血条管理
1.
配置公共地图资源怪物
2.
创建资源怪物群集组件
3.
批量生成地图配置怪物
4.
地图怪物退出及重生
5.
构建怪物AOI数据
6.
怪物挂载计时组件
7.
客户端加载怪物显示
8.
关联主城UI组件动画
9.
主城界面组件UI切换1
10.
主城界面组件UI切换2
11.
配置普攻技能数据
12.
注册普攻技能事件
13.
控制点击特效播放
14.
注册常规技能事件
15.
传递技能UI参数
16.
技能时间与攻击速率
17.
客户端技能初始化
18.
创建服务端属性组件
19.
推送角色属性数据
20.
血条与飘字管理组件
21.
更新血条进度显示
22.
怪物与小兵血条
23.
生成玩家角色血条
24.
血条位置追踪匹配
章节8
核心战斗流程与伤害表现
1.
伤害飘字显示
2.
对象池管理飘字使用
3.
飘字功能整合进血条
4.
依序展示队列缓存飘字
5.
帧同步与状态同步核心原理
6.
状态同步技能核心流程
7.
非目标技能施法
8.
目标技能施法
9.
最近距离目标选择规则
10.
计算目标队伍阵营类型
11.
技能施法客户端预执行1
12.
技能施法客户端预执行2
13.
移动影响攻击表现
14.
切换技能控制模式
15.
制定技能施法同步协议
16.
创建服务端技能组件
17.
视野范围广播技能施法
18.
客户端同步技能施法动作
19.
定时心跳机制
20.
计算网络平均延时
21.
模拟随机网络延时
22.
服务端目标容差校验
23.
前摇定时延时修正
24.
技能生效后摇处理
25.
同步技能伤害状态数据1
26.
同步技能伤害状态数据2
27.
客户端处理状态同步数据
28.
测试普攻状态同步表现
29.
客户端技能后摇处理
30.
多客户端表现同步测试
章节9
战斗技能与Buff系统实现
1.
服务端逻辑帧移动预测
2.
技能1需求整理分析
3.
启动技能1施法流程
4.
通用技能CD计时器
5.
封装并驱动CD计时器
6.
调试显示刷新异常
7.
非目标技能处理分支
8.
创建服务器技能Buff
9.
驱动Buff基类状态切换
10.
单体移速加成Buff效果
11.
技能替换实现强化普攻
12.
创建技能沉默效果Buff
13.
标记Buff额外伤害效果
14.
动态范围移速Buff
15.
Buff状态数据同步推送
16.
创建动态范围伤害Buff
17.
Buff状态数据分发处理
18.
附着Buff表现控制
19.
创建大招技能配置
20.
服务端强制位移模式
21.
目标位置闪现功能
22.
百分比血量处决伤害
23.
范围击飞计算
24.
指定位置范围伤害
25.
强制位移表现
26.
资源怪物死亡及重生
27.
怪物战斗AI配置
28.
创建怪物AI组件
29.
怪物AI状态切换
30.
计算服务器导航路点
31.
服务器怪物移动攻击
章节10
游戏世界跳转与单人副本
1.
制定跳转关卡通信协议
2.
服务器处理跳转请求
3.
客户端主城世界跳转
4.
切换野外地图模式
5.
单人副本UI逻辑
6.
单人副本玩法组件
7.
单人副本战斗结算
8.
单人副本结算界面
9.
公用动效显示工具
10.
切换单人副本模式
11.
处理副本退出异常
12.
离开地图视野清理
13.
技能目标异常调试
章节11
任务进度更新与多人组队
1.
组队系统需求分析
2.
组队界面UI逻辑
3.
组队通信协议制定
4.
组队业务系统
5.
定时请求匹配数据
6.
组队数据显示刷新
7.
Server端角色组队组件
8.
Server端组队业务系统
9.
处理玩家组队请求
10.
组队缓存数据更新
11.
组队内部协议对接
12.
新建队伍数据显示
13.
联调队伍数据更新
14.
玩家请求加入队伍
15.
组队加入请求处理
16.
增加队长解散队伍功能
17.
增加队员退出队伍功能
18.
调试组队创建加入功能
19.
组队解散退出功能联调
20.
组队副本游戏世界跳转
21.
服务端多人副本组件
22.
多人副本战斗结算
23.
结算协议配置修正
24.
跨场景寻路任务
25.
击杀任务进度更新
26.
指定副本通关任务对接
27.
组队副本进入任务对接
28.
切换任务组件为队伍显示1
29.
切换任务组件为队伍显示2
章节12
分布式通信与数据库连接
1.
分布式通信拆分1
2.
分布式通信拆分2
3.
Data进程缓存进程信息
4.
Battle进程整合通信模块
5.
区服连接结构数据同步
6.
映射登录进程账号数据
7.
分发客户端区服列表数据
8.
登录区服选择界面业务
9.
网络状态提示UI界面
10.
公共通知Pop弹窗
11.
客户端自动重连登录服
12.
登录进程中转登录请求
13.
数据进程处理登录请求
14.
Mysql数据表结构设计
15.
角色数据写入Mysql
16.
生成AccessToken访问令牌
17.
Battle进程转发AccessToken
18.
Data进程校验AccessToken
19.
分布式登录流程联调
章节13
断线重连与发布区服配置
1.
战斗场景网络断线重连1
2.
战斗场景网络断线重连2
3.
战斗场景网络断线重连3
4.
切换客户端登录服务器
5.
服务进程内部断线重连1
6.
服务进程内部断线重连2
7.
服务进程内部断线重连3
8.
脚本启动多个区服进程
9.
分布式配置与多区服发布
摘要
核心内容:
分布式滚服系统架构设计:
服务器使用C#语言开发,基于.net core运行;
从零开始打造,不使用第三方代码;
分区、分服、分线、
多进程、多线程;
多登录服、多战斗服、多数据服,多Mysql存储实例;
基于IOCP实现高性能网络库;
服务器多进程分布式网络通信;
网络断线自动重连;
进程离线自动重启;
客户端基础框架搭建:
客户端基于Unity 2022.3.8f1开发;
从零开始搭建,不使用第三方框架;
组合式UI框架
:
分模块的UI组件
集中式数据管理
按需组合
,自动更新数据。
客户端不同场景玩法模式切换:
游戏核心业务玩法:
账号注册、登录、角色创建;
进出切换多个主城公共地图:新手村、野外、冰原;
多种不同类型的地图:公共地图、单人副本地图、组队副本地图;
NPC对话系统、任务系统、组队系统;
组队功能:创建、解散、加入、退出队伍等;
击杀怪物计数、定点采集、世界Boss;
可PVP战斗,PVE战斗,组队战斗,世界Boss战斗;
活动副本排行榜;
服务器战斗系统框架:
多进程,多线程运行战场逻辑,提高服务器硬件资源利用率。
自动
负载均衡调节
,选择负载最小线程节点分配战场。
九宫格视野管理AOI算法( Area Of Interest )
服务器寻路,服务器怪物AI
服务端逻辑层位置同步与预测;
服务端技能系统实现;
服务端战斗逻辑计算;
A Star寻路
算法(A* Pathfinding);
多边形地图
漏斗寻路算法
( Funnel algorithm );
优先级队列
优化计算(PriorityQueue);
客户端战斗系统框架:
视野内角色移动同步;
网络延时补偿;
客户端逻辑层位置预测及同步;
表现层平滑及校正;
客户端实时预表现;
战斗动作、技能、伤害、掉血、Buff,控制状态等表现;
各类常规UI效果实现(见演示视频)
备注事项:
售前咨询与技术支持:
QQ
:1785275942
VX
:PlaneZhong
工程源码提供专属下载地址,确认购买协议后可提供;
公共交流QQ群:
170406791
(无任何加入条件);
专属售后QQ群:
793745001
(验证LearnID后加入);
专属售后微信群,添加老师个人微信并验证身份后入群;
各章节内容目录:
第01章:搭建客户端基础业务框架
第02章:搭建服务端基础业务框架
第03章:服务器寻路与AOI视野算法
第04章:客户端移动同步与预表现
第05章:任务系统与NPC对话系统
第06章:公共地图怪物与血条管理
第07章:核心战斗流程与伤害表现
第08章:战斗技能与Buff系统实现
第09章:游戏世界跳转与单人副本
第10章:多人组队与任务进度更新
第11章:分布式通信与数据库连接
第12章:断线重连与发布区服配置
登录后可观看
标签
MMORPG
战斗
AOI
寻路
A* Pathfinding
Networking
Multiplayer Networking
建议的Unity版本
2022.3 - 团结1.1
教程
MMO状态同步实时对战分布式滚服案例
开始教程
电脑配置不足?
Unity云桌面,为Unity而生的云开发平台。
即可体验
教程
MMO状态同步实时对战分布式滚服案例
登录后开始教程
章节
1
成果演示与技术要点分析
1.
可试看
MMO案例课程效果Demo演示
2.
可试看
MMO案例课程核心技术要点概述
章节
2
搭建客户端基础业务框架
1.
可试看
客户端框架分层概述
2.
可试看
创建客户端初始工程
3.
创建分类目录导入基础资源
4.
制作登录UI界面
5.
特效和模型与UI混排
6.
PELog日志初始化设置
7.
创建定时器服务
8.
游戏玩法模式状态机
9.
驱动业务系统和网络服务
10.
场景异步加载1
11.
场景异步加载2
12.
UI窗口界面基类
13.
加载进度窗口显示
14.
注册登录逻辑
15.
切换玩法模式基础层UI
16.
制作通用Tips弹窗提示
17.
设计通信协议数据结构
18.
跳转游戏角色创建场景
19.
角色选择界面UI制作
20.
角色选择界面交互逻辑
21.
消息发布与订阅服务
22.
加载主城场景
23.
制作并导入UI组件
24.
主城UI组件挂载定位点
25.
挂载组件控制脚本
26.
编辑器显示组合UI1
27.
编辑器显示组合UI2
28.
跳转显示主城组合UI
29.
修复编辑操作报错
30.
第一章总结回顾
章节
3
搭建服务端基础业务框架
1.
服务端战斗服框架结构
2.
创建服务进程抽象类
3.
配置日志与Json解析库
4.
通用进程启动器
5.
控制台命令解析
6.
公共服务与业务系统
7.
游戏世界及驱动容器
8.
驱动GameWorld流程
9.
处理GameWorld创建请求
10.
缓存角色进入游戏世界
11.
挂载世界单位组件
12.
挂载角色单位组件
13.
整合IOCPNet网络库
14.
服务器登录消息处理
15.
服务端代码导出共享
16.
搭建客户端网络层
17.
服务端独立登录网络模块
18.
客户端回应消息分发机制
19.
请求登录Token协议
20.
服务端登录Token生成
21.
客户端登录协议联调
22.
主动断开Login连接
23.
战斗进程校验Token数据
24.
缓存角色数据映射关系
25.
玩家上线状态切换
26.
创建服务端角色消息组件
27.
客户端发送Token令牌
28.
分发关卡进入确认消息
29.
角色消息组件消息处理
30.
注册分发进程内部协议
章节
4
服务器寻路与AOI视野算法
1.
多线程添加World创建缓存
2.
创建不同模式GameWorld
3.
容器负载GameWorld
4.
生成均匀分布的随机位置
5.
服务端寻路组件安装整合
6.
服务端寻路组件路径点计算
7.
Navmesh寻路数据导出
8.
寻路点测试Debug演示
9.
服务端AOI视野组件安装整合
10.
缓存进出AOI世界请求
11.
创建移动控制组件
12.
设置AOI单位初始位置
13.
作用范围组件ScopeComp
14.
制定AOI视野状态协议
15.
制定状态数据嵌套协议
16.
收集进入视野状态数据
17.
剔除重叠进出合并视野
18.
SWorld驱动游戏角色
19.
客户端角色业务系统
20.
生物角色表现类
章节
5
客户端移动同步与预表现
1.
角色单位配置数据
2.
场景中加载角色资源
3.
设置角色基础属性
4.
预测校正移动同步算法
5.
键盘输入玩家角色方向
6.
玩家动画播放切换
7.
下发移动组件初始属性
8.
修复动画播放切换
9.
客户端上行移动数据
10.
移动消息分发处理
11.
视野内广播移动同步
12.
计算客户端预测位置
13.
移动旋转预测与插值平滑
14.
前后端移动同步联调
15.
角色资产替换流程
章节
6
任务系统与NPC对话系统
1.
制定任务数据协议
2.
服务端任务系统组件
3.
客户端任务业务系统
4.
封装UI递归查找工具
5.
控制任务组件UI状态
6.
任务状态与类型排序
7.
刷新任务数据显示
8.
调试数据显示异常
9.
任务行为分发处理
10.
设置NPC对话相机
11.
NPC对话UI显示
12.
处理对话完成回调
13.
客户端计算路径点
14.
移动增加导航模式
15.
场景加载NPC资源
16.
批量异步加载Prefab
17.
修正寻路提前中止问题
18.
完成对话并推送任务状态
19.
领取奖励并更新主线任务
20.
采集任务UI组件
21.
对接采集任务处理
22.
轮盘摇杆方向组件
23.
UI方向组件自适应
24.
模拟网络上下行延时环境
25.
位移追击优化移动同步1
26.
位移追击优化移动同步2
章节
7
公共地图怪物与血条管理
1.
配置公共地图资源怪物
2.
创建资源怪物群集组件
3.
批量生成地图配置怪物
4.
地图怪物退出及重生
5.
构建怪物AOI数据
6.
怪物挂载计时组件
7.
客户端加载怪物显示
8.
关联主城UI组件动画
9.
主城界面组件UI切换1
10.
主城界面组件UI切换2
11.
配置普攻技能数据
12.
注册普攻技能事件
13.
控制点击特效播放
14.
注册常规技能事件
15.
传递技能UI参数
16.
技能时间与攻击速率
17.
客户端技能初始化
18.
创建服务端属性组件
19.
推送角色属性数据
20.
血条与飘字管理组件
21.
更新血条进度显示
22.
怪物与小兵血条
23.
生成玩家角色血条
24.
血条位置追踪匹配
章节
8
核心战斗流程与伤害表现
1.
伤害飘字显示
2.
对象池管理飘字使用
3.
飘字功能整合进血条
4.
依序展示队列缓存飘字
5.
帧同步与状态同步核心原理
6.
状态同步技能核心流程
7.
非目标技能施法
8.
目标技能施法
9.
最近距离目标选择规则
10.
计算目标队伍阵营类型
11.
技能施法客户端预执行1
12.
技能施法客户端预执行2
13.
移动影响攻击表现
14.
切换技能控制模式
15.
制定技能施法同步协议
16.
创建服务端技能组件
17.
视野范围广播技能施法
18.
客户端同步技能施法动作
19.
定时心跳机制
20.
计算网络平均延时
21.
模拟随机网络延时
22.
服务端目标容差校验
23.
前摇定时延时修正
24.
技能生效后摇处理
25.
同步技能伤害状态数据1
26.
同步技能伤害状态数据2
27.
客户端处理状态同步数据
28.
测试普攻状态同步表现
29.
客户端技能后摇处理
30.
多客户端表现同步测试
章节
9
战斗技能与Buff系统实现
1.
服务端逻辑帧移动预测
2.
技能1需求整理分析
3.
启动技能1施法流程
4.
通用技能CD计时器
5.
封装并驱动CD计时器
6.
调试显示刷新异常
7.
非目标技能处理分支
8.
创建服务器技能Buff
9.
驱动Buff基类状态切换
10.
单体移速加成Buff效果
11.
技能替换实现强化普攻
12.
创建技能沉默效果Buff
13.
标记Buff额外伤害效果
14.
动态范围移速Buff
15.
Buff状态数据同步推送
16.
创建动态范围伤害Buff
17.
Buff状态数据分发处理
18.
附着Buff表现控制
19.
创建大招技能配置
20.
服务端强制位移模式
21.
目标位置闪现功能
22.
百分比血量处决伤害
23.
范围击飞计算
24.
指定位置范围伤害
25.
强制位移表现
26.
资源怪物死亡及重生
27.
怪物战斗AI配置
28.
创建怪物AI组件
29.
怪物AI状态切换
30.
计算服务器导航路点
31.
服务器怪物移动攻击
章节
10
游戏世界跳转与单人副本
1.
制定跳转关卡通信协议
2.
服务器处理跳转请求
3.
客户端主城世界跳转
4.
切换野外地图模式
5.
单人副本UI逻辑
6.
单人副本玩法组件
7.
单人副本战斗结算
8.
单人副本结算界面
9.
公用动效显示工具
10.
切换单人副本模式
11.
处理副本退出异常
12.
离开地图视野清理
13.
技能目标异常调试
章节
11
任务进度更新与多人组队
1.
组队系统需求分析
2.
组队界面UI逻辑
3.
组队通信协议制定
4.
组队业务系统
5.
定时请求匹配数据
6.
组队数据显示刷新
7.
Server端角色组队组件
8.
Server端组队业务系统
9.
处理玩家组队请求
10.
组队缓存数据更新
11.
组队内部协议对接
12.
新建队伍数据显示
13.
联调队伍数据更新
14.
玩家请求加入队伍
15.
组队加入请求处理
16.
增加队长解散队伍功能
17.
增加队员退出队伍功能
18.
调试组队创建加入功能
19.
组队解散退出功能联调
20.
组队副本游戏世界跳转
21.
服务端多人副本组件
22.
多人副本战斗结算
23.
结算协议配置修正
24.
跨场景寻路任务
25.
击杀任务进度更新
26.
指定副本通关任务对接
27.
组队副本进入任务对接
28.
切换任务组件为队伍显示1
29.
切换任务组件为队伍显示2
章节
12
分布式通信与数据库连接
1.
分布式通信拆分1
2.
分布式通信拆分2
3.
Data进程缓存进程信息
4.
Battle进程整合通信模块
5.
区服连接结构数据同步
6.
映射登录进程账号数据
7.
分发客户端区服列表数据
8.
登录区服选择界面业务
9.
网络状态提示UI界面
10.
公共通知Pop弹窗
11.
客户端自动重连登录服
12.
登录进程中转登录请求
13.
数据进程处理登录请求
14.
Mysql数据表结构设计
15.
角色数据写入Mysql
16.
生成AccessToken访问令牌
17.
Battle进程转发AccessToken
18.
Data进程校验AccessToken
19.
分布式登录流程联调
章节
13
断线重连与发布区服配置
1.
战斗场景网络断线重连1
2.
战斗场景网络断线重连2
3.
战斗场景网络断线重连3
4.
切换客户端登录服务器
5.
服务进程内部断线重连1
6.
服务进程内部断线重连2
7.
服务进程内部断线重连3
8.
脚本启动多个区服进程
9.
分布式配置与多区服发布