序言
推轮子最难的永远是最开始,加油推吧!
项目准备
一个完善的项目大概需要如下的准备
一个项目在前期设计的足够完善,后面的奉献才比较小
- 文档
- 策划文档
- 美术规范
- 技术文档
- 工具
- 配置表工具
- Excel
- XML
- JSON
- CSV
- 协议工具
- protobuf,微软开源,使用十分广泛
- 其他工具
- 配置表工具
- 框架
- 客户端
- 日志
- 配置
- 数据加载:数值相关的各种表
- 网络
- 基础组件,单例,小的工具方法
- 服务端
- 日志
- 配置
- 数据加载
- 网络
- DB访问
- 基础组件
- 客户端
- 协议
- 使用Protobuf
- 协议创建
- 协议生成
注意点
课程的主要几个关键点
1.遇到导入模型材质错误,复制一份新的材质进行替换即可
2.简单动画状态机模板 有三个状态 攻击 受身 死亡
Any State 代表任何时候
如果触发Any State下的Death就立刻进入死亡状态并播放动画
3.Json是大多游戏选择的解析方式和XML的区别也仅仅多个标记,解析Json最常用的内部库是JSonDoNet
4.服务器框架基本使用ET6.0构建 框架是由三部分组成的
-
Common公共库
主要放一些客户端和服务端都需要使用的东西 NetWork文件夹存储消息分发器和包处理等
Data文件夹为数据模块,主要是和外部的EXCEL数据表进行对应
使用方法为在GameServer库创建一个DataManager 使用Json解析 读取到配置文件之后转换为对应的解析类并序列化出来就能得到一个配置表的所有数据供服务器读取 -
GameServer库
初始化首先是初始化日志
实例化GameServer对象 执行初始化方法 执行启动方法
主线程循环,保持子线程运行- 子线程类 可以自定义GM命令
- 服务端启动效果
- 子线程类 可以自定义GM命令
-
Protocol库
协议库 不用自己编写 自动生成
总结
- 学会美术资源导入
- 学会状态机连线
- 用JSON效率较高,小游戏XML也可以,EXCEL效率十分低下
- 服务端,早期使用SQLServer比较多,因为免费所以现在用MYSQL
- 因为服务端没有客户端的Vector类 所以服务端Vector3Int类重写了Vector3,让服务端和客户端相互统一
- GameServer类通过多线程让日志系统能有实现一些键盘输入功能比如退出
- EF可以方便的新增实体,从数据库更新模型,根据模型生成数据库,这些功能也可以在SQLServer
中操作 - 在mmorpg_work\Src\Lib\proto\message.proto中修改protobuf协议中,打开mmorpg_work\Tools\genproto.cmd转化为cs代码,message,message.cs类是自动生成的,使得服务器端自动生效
- 如果要想在客户端生效,需要在VS中重新生成解决方案,显示三个项目成功后,将
Src\Lib\Protocol\bin\Debug中的几个文件复制到Src\Client\Assets\References - 协议是用来偷懒的,简化了很多的工作量
文章评论