第一章 整体框架设计
因为教程mmo旨在教学,所以教程的整体框架容易梳理。
教程的mmo是以单服务器架构铺设的,以本机作为服务端,同时在本机的unity里跑客户端,同时在本机架设了一个sql server数据库存储重要信息。其实虽然涉及了数据库,但实际用到数据库的地方并不多(用于存储用户信息)不过对新手入门游戏开发也没多大影响。这样的简单架构作为教学清晰明了,但难于维护,用于教学还算不错。
较为底层的框架铺设了基础服务层:Network(消息处理)、DB(链接数据库)、Log(日志输出)、Data(数据处理)。再上一层铺设游戏业务层:Manager、Models、Service、Entities。
教程有两个任务:通过运行再vs上的服务端项目生成数据库、通过协议生成工具生成协议。
通过vs链接本地数据库,并生成实体数据模型对数据进行映射,方便地操作数据库。
协议是网络游戏前后端交互的实现方式。教程中的信息通过协议打包发送。不在协议中的数据名是不规范的,容易造成错误。
第二章 底层消息处理框架
作为一款mmo类游戏或者说网络游戏,网络消息的处理是密不可分的。即使是想完成一个基于本机服务器的mmo,也要接收、分析、响应服务器消息与客户端的各类消息,才能保证游戏在消息数据层面上不出bug。对于新手来说设计好一个完善的底层消息框架是十分不容易的。所学的教程中简单的演示了架构如何使用。
教程中复制最原始消息处理的NetClient和TcpSocketListener,发送一些字节数据。消息处理组件分为:
PackageHandler(将接收数据还原成协议结构,或者是把协议结构转换成字节数据)
MessageDistributer(把消息分配到服务器的各个模块,服务端并发)
MessDispatch(负责具体分发任务,把消息发到系统具体的某处)