MMORPG教程将分为5季,本教程为第一季。教学服务器支持跨平台windows和Linux,使用c++语言开发,使用UE4客户端使用ue4.25和vs2019 IDE开发服务器进行开发。教学服务器使用分布式负载均衡设计框架,分为数据服务器,登录服务器,游戏服务器,中心服务器及网关服务器。教学服务器底层通信框架使用ABOUTCG自定义游戏服务器的教程为原型(课程名称:UE4、Unity3d连接c++ 自定义游戏服务器),DB数据库框架也是使用数据库教程为原型,严格按照标准商业化流程制作,可直接用于商业化开发。
教程内容包含登录模块,注册模块,创建角色、删除角色模块,选择角启动游戏以及聊天系统。数据库服务器提供一套完善高性能、高效的玩家数据持久化解决方案。使用九宫格同步以及大格子容器算法,提高性能。服务器组提供角色同步解决方案,角色移动同步,撞墙壁也能获得良好的同步。
核心知识点
windows IOCP服务器
搭建windows IOCP服务器,定义数据结构,采用windows下的WSASocket接受新的连接,接收WSARecv数据,发送WSASend数据,使用自定义HasyArry保存连接玩家数据,增删改查时间复杂度O(1),性能高效。
Linux epoll服务器
搭建linux epoll服务器,定义数据结构,采用标准c++ soceket接受新的连接,接收recv数据,发送send数据,使用自定义HasyArry保存连接玩家数据,增删改查时间复杂度O(1),性能高效。
UE4客户端
教学使用UE4.25 vs2019搭建客户端框架,定义数据结构,使用UE4的SocketSubsystem 和服务器进行通信。支持跨平台windows,ios,android等搭建客户端框架,定义数据结构,使用UE4的SocketSubsystem 和服务器进行通信。支持跨平台windows,ios,android等。
课程信息
教学总长度35小时左右,使用软件:VS2019、UE4.25。
交流答疑
对于课程内容相关的疑问,提供有交流群,不但可以在群里与同学交流,分享资料,与教程内容有关的技术问题还可以进入答疑专区寻求帮助。老师一般会在2个工作日内为您解答。
课程目录
第一章:MMORPG分布式负载均衡服务器
0101_MMORPG分布式服务器
0102_分布式负载均衡服务器框架
0103_DB服务器架构
0104_linux下DB服务器架构
0105_Center服务器架构
0106_linux下Center服务器架构
0107_Game服务器架构
0108_linux下Game服务器架构
0109_Gate服务器架构
0110_linux下Gate服务器架构
0110_loginserver架构
0111_分区分服和分布式架构部署
第二章:登录服务器
0201_运维账号建立
0202_mysql读取账号数据
0203_玩家登陆1
0204_玩家登录2
0205_玩家注册
第三章:UE4客户端实现登录、注册
0301_UE4基础资源包
0302_UE4底层cpp写登录注册消息
0303_蓝图登录、注册指令触发
0304_蓝图测试登录、注册
第四章:DB服务器玩家数据定义
0401_定义账号秘钥快表
0402_保存秘钥数据信息
0403_DB服务器玩家数据结构
0404_定义玩家各个内存快表
0405_定义游戏账号数据结构
0406_加载账号数据到缓存
0407_定义玩家游戏数据
0408_玩家心跳检查以及保存数据策略
0409_玩家保存全量数据
0410_玩家保存基础数据
0411_linux测试数据
第五章:玩家进入游戏获取基础角色数据
0501_选择服务器
0502_进入游戏流程
0503_gate服务器进入游戏
0504_gate服务器定义玩家数据
0505_center服务器定义玩家数据
0506_center服务器进入游戏
0507_更新各个服务器玩家心跳
0508_DB服务器进入游戏
0509_DB服务器自动注册游戏账号数据
0510_错误Bug修补和测试
0511_玩家掉线处理
第六章:UE4进入游戏
0601_定义玩家数据
0602_UE4_cpp进入游戏
0603_蓝图进入游戏UI刷新1
0604_蓝图进入游戏UI刷新2
第七章:创建角色、删除角色
0701_gate服务器创建、删除角色流程
0702_ceneter服务器创建、删除角色流程
0703_DB服务器创建、删除角色
0704_服务器测试创建删除
第八章:UE4创建角色、删除角色
0801_ue4_cpp创建、删除流程
0802_蓝图UI测试创建删除
第九章:选择角色开始游戏
0901_玩家选择角色开始游戏流程
0902_gate服务器选择角色开始游戏
0903_center服务器队列开始游戏
0904_DB服务器加载玩家数据
0905_gate服务器加载玩家详细数据
0906_game服务器队列加载数据
0907_db服务器返回角色数据给game
0908_测试修改服务器BUG
第十章:UE4客户端选择角色开始游戏
1001_ue4_cpp选择角色加载数据
1002_蓝图选择角色开始游戏
十一章:游戏世界架构和九宫格
1101_userindex使用
1102_格子坐标和九宫格
1103_格子容器自定义双向链表
1104_玩家游戏数据定义
1105_玩家离开和心跳检查_
1106_格子坐标和九宫格
1107_世界地图定义
1108_地图树初始化
1109_大格子容器添加和删除节点
1110_封装在世界坐标范围内API
1110_设置九宫格信息
1112_3D坐标转为格子坐标
1113_增加玩家数据到缓存
1114_初始化保存新手玩家数据
1115_gate服务器玩家进入世界
1116_game服务器进入世界和离开世界
1117_使用九宫格广播xx玩家离开世界
1118_game服务器申请其他玩家数据策略
1119_game更新玩家状态生命
1120_申请其他玩家数据
1121_测试进入世界离开世界
十二章:UE4进入游戏世界
1201_ue4_cpp进入世界_获取其他玩家数据
1202_蓝图处理其他玩家数据
1203_蓝图进入世界和更新其他玩家数据
1204_测试请求其他玩家数据
1205_设置主UI和玩家昵称UI
1206_设置ping
十三章:移动同步
1301_移动同步原理
1302_gate移动转发
1303_game移动同步,世界内移动
1304_game世界内移动广播
十四章:ue4移动同步
1401_ue4_cpp移动数据处理
1402_蓝图发送移动同步时机和同步内容
1403_蓝图处理其他玩家移动
1404_移除不在九宫格范围内的玩家
1405_禁用ngle算法
1406_移动同步测试以及修改bug
1407_公网部署服务器组测试移动同步
十五章:聊天
1501_服务器聊天转发
1502_蓝图添加聊天
十六章:编译linux服务器组工程
1601_编译各个linux服务器工程文件
多端支持
课程支持在ios以及Android端设备播放,您只需要登录各大手机应用平台,搜索“ABOUTCG学院”即可下载安装应用。
课程要求
本教学需要您对基础的3D概念和术语有一定的了解,比如Polygon(多边形),Edge(边),Face(面)Axis(轴向),Space(空间),Map (贴图) 等。