基于.NetCore开发MMORPG分布式游戏服务器

文摘   2024-10-30 18:31   上海  


《基于.NetCore开发MMORPG分布式游戏服务器》系列课程共8期课程,现已全部更新完结。本系列课程旨在帮助大家从零开始搭建商业化MMORPG的分布式服务器框架,包括不同种类服务器的线程模型,如中心服务器、网关服务器、游戏服务器、寻路服务器等,并讲解了这些服务器该如何根据各自的职责进行业务模块分工。




系列篇1

分布式MMORPG服务器框架搭建

以及MongoDB和Redis使用



https://edu.uwa4d.com/course-intro/1/288


本课程主要带大家掌握分布式MMORPG服务器框架搭建,MongoDB和Redis使用,包括支持Hotfix热更新的服务器解决方案创建,了解服务器的类库如何引用,如何通过NuGet获取所需的工具包,在高DAU情况下各个不同的服务器如何通过配置文件进行负载分流玩家,数据库和共享缓存技术选型以及我们为什么会选择MongoDB和Redis做数据存储和加载。



系列篇2

支持HotFix的分布式服务器框架搭建



https://edu.uwa4d.com/course-intro/1/290


本文旨在帮助大家搭建支持Hotfix不停服热更新服务器框架,课程首先讲解如何部署Hotfix程序集如何在不停止服务器运行的情况下通过属性标记更新程序集,其次讲解服务器框架图各节点的关联关系,并初始化中心服务器监听,服务器之间使用Protobuf进行通讯,游戏服务器通过连接代理创建连接器连接到中心服务器,中心服务器通过服务器客户端总类接收注册消息创建游戏服务器客户端,通过类似流程最终实现分布式服务器基本框架搭建,各个服务器之间能够相互通讯,完成服务器开服。



系列篇3

FlatBuffer表格工具和服务器表格加载



https://edu.uwa4d.com/course-intro/1/543


本课程主要带大家掌握在服务器端使用FlatBuffer技术读取策划配置的表格数据,实现快速的反序列化(当表格数据量很大的时候,普通反序列化方式很耗时,而使用FlatBuffer却能大幅缩短启服时间),并且能进行在服务器不停服的情况下实现表格数据的热加载;同时开发了针对客户端和服务器的表格工具,方便大家自行进行扩展!表格工具能根据配置文件配置的基础表路径生成客户端和服务器的数据文件和代码,也能根据系统表路径生成对应客户端和服务器代码;最后讲述了如何发布表格工具到Win和Mac双平台!



系列篇4

分布式网络和通讯协议数据传输



https://edu.uwa4d.com/course-intro/1/545


本课程主要带大家掌握如何在服务器端和客户端使用Google.Protobuf进行消息传递,实现服务器和服务器之间的网络通讯,客户端和服务器之间的网络通讯;通过修改Google.Protobuf源码接口扩展消息分类、消息编号,实现不同消息在服务器之间进行消息转发;开发自定义协议工具,进行协议文件的解析,一键生成客户端和服务器的消息代码和扩展代码,使用消息池大幅降低消息的实例化次数从而减少GC;使用Unity客户端搭建网络框架和网关服务器进行通讯!



系列篇5

MMO游戏创建加载游戏角色

对应服务器数据存储和读取



https://edu.uwa4d.com/course-intro/1/560


本课程主要带大家掌握玩家从登录到创建角色进入游戏的数据流程,如何通过Http在账号服务器创建账号。客户端通过不同的消息分类把消息发送到分布式服务器,并在对应服务器上创建虚拟玩家客户端,通过中转消息在中心服务器创建玩家角色,在游戏服务器上实现接收和处理玩家的行为。游戏服务器实现Tick模拟类似客户端的帧率,通过Tick定时存储服务器上玩家的数据到Redis和MongoDB!



系列篇6

服务器AOI(Area Of Interest)

算法和功能实现



https://edu.uwa4d.com/course-intro/1/562


本课程主要带大家掌握如何使用Unity的NavMesh进行寻路,包括多代理同时寻路,不同代理的参数设置等。客户端大的3D场景如何进行AOI切分,并导出AOI数据给服务器使用,服务器加载AOI数据并创建服务器版本的场景和对应AOI区域实例。服务器进行刷怪,在对应的AOI区域创建怪实例,只有当玩家进入对应区域,才能看见怪,离开对应区域时,怪会进行卸载,从而优化整个客户端同时显示的角色数量,减少通讯压力!



系列篇7

搭建寻路服务器实现

服务器刷怪和怪巡逻



https://edu.uwa4d.com/course-intro/1/565


本课程主要带大家学习寻路服务器的意义和做法。对于MMO游戏服务器来说,服务器上的角色如怪、部分NPC等需要移动的对象,也需要拿到路径信息进行寻路。我们通过搭建寻路服务器,就能实现服务器的寻路需求,并且做到服务器的寻路算法和客户端完全一致!有了路径信息之后,我们在服务器实现怪的AI进行巡逻,并同步数据到客户端,实现由服务器驱动角色数据,让客户端解析数据做状态同步响应!



系列篇8

玩家状态同步算法实现和消息广播



https://edu.uwa4d.com/course-intro/1/602


本课程主要带大家学习状态同步的做法!状态同步分为两种方式,玩家点击地面进行角色移动和玩家使用摇杆进行角色移动。首先要进行PING值的计算以进行速度的补偿。点击地面移动同步的是起点和终点,在服务器上通过寻路算出玩家的移动路径,并在服务器上进行角色的位置变化,同步到其他客户端进行状态更新。摇杆移动则是同步的位置和移动方向,服务器上模拟目标点判断是否可到达,并沿着预定的方向进行位置变化,同步带其他客户端进行状态更新。以上两种方式实现了MMO常用的点击移动和摇杆移动!


适合读者


1、初涉MMORPG服务器的开发者

2、从事Unity前端开发,对服务器进行学习的开发者

3、希望全面学习服务器从零搭建到商业化的开发者




近期精彩回顾

【厚积薄发】Unreal游戏GPU性能优化检测模式全新上线

【学堂上新】《用DOTS解决实际需求》系列课程集锦

【万象更新】Unreal游戏GPU参数详解

【学堂上新】深入Unity Compute Shader


侑虎科技
UWA,专业的游戏和VR应用性能优化平台。www.uwa4d.com
 最新文章