【极世界】P1 项目筹备

序言

在这里插入图片描述

推轮子最难的永远是最开始,加油推吧!

项目准备

一个完善的项目大概需要如下的准备
一个项目在前期设计的足够完善,后面的奉献才比较小

  • 文档
    • 策划文档
    • 美术规范
    • 技术文档
  • 工具
    • 配置表工具
      • 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命令
      在这里插入图片描述
    • 服务端启动效果在这里插入图片描述
  • 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
  • 协议是用来偷懒的,简化了很多的工作量

猜你喜欢

转载自blog.csdn.net/weixin_46172181/article/details/126375456