瞎BB
弄了个模板,现阶段就这套模板吧~
项目设计的流程
一、设计的流程
- 明确设计目标
- 充分考虑设计方案
- 可行性评估
- 选择最优方案
二、设计的内容
- 游戏玩法设计
- 整体架构设计及方案选择
- 客户端框架设计
- 服务器框架设计
- 工作流程设计
设计的阶段
- 整体框架设计
- 系统方案设计
- 模块详细设计
- 迭代优化
项目设计流程总结
这节课比较注重理论,主要是了解一下设计的大概框架,以后写项目的时候尽量也往这方面靠,后续开发的风险也会降低。
谷歌protocolbuf
前言
Protocol Buffer是Google提供的一种数据序列化协.
Google官方对protobuf的定义:Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
因此,一个MMO项目是强交互的类型,所以一个完善,简单易上手的的协议管理势在必行
协议基类文件
-
message.proto
- 根协议
这里可以看出,协议分为了两部分,一个请求,一个响应。
客户端向服务端发送请求时候 客户端只需要填充请求 “1” Response为空
服务器在处理完客户端的请求后,响应回来时填充 Response“2” Request为空
这就代表一个网络协议 客户端填充上一个 服务端填充下一个
因此一个协议就可以让客户端和福袋在同一套代码适用 也让客户端和服务端的代码保持一致- 请求的协议结构
看上述代码可以知道,请求的结构模板,实例中定义了 注册协议,登录协议,创建角色协议,游戏进入协议,游戏离开协议等。
这么一排码下来,发请求的时候给想发请求的协议赋值就行,其他协议的值为空。- 响应的协议结构
响应是必须要和请求一 一对应的,但于请求不同,响应可以批量响应,不拘泥于一次请求只响应一种。
因此可以每次请求发一种协议,响应一次
亦可以每次请求发一种协议,响应所有
因此为了性能,假设有几个消息需要在最短时间得到服务器的响应,则合并到一个消息里打包上去,一次性发完
服务器再回复的时候,为了性能,假设客户端同事请求了十个小协议下来,服务器便可以一并打包所需的响应合并到一个消息包发上去 - 根协议
协议的生成
在message.proto 添加或减少协议时,需要运行protocolbuf命令程式
运行完毕后 会在服务端自动生成C#代码
总结
技术是在进步的,能坐着绝不站着,能躺着绝不坐着!
在偷懒的途中把功能实现了,这就是程序员