文章目录
一、game-engine
游戏核心jar包game-engine为框架的基本组件,主要封装了一下功能:
- handler TCP、HTTP消息接收处理handler封装
- mail 电子邮件发送
- math 游戏数学计算
- mina TCP、UDP、HTTP、WebSocket等通信封装
- mongo mongodb数据库操作接口
- mq ActiveMQ消息收发封装
- netty TCP连接客户端,作为辅助可同时选用mina或者netty进行通信
- redis redis数据库缓存封装
- script java热更新脚本封装
- server 服务器架构接口
- struct 通用游戏抽象实体类
- thread 游戏线程处理模型,基于线程+消息队列和消息队列+线程池两种类型
- util 通用工具,如随机工具、时间工具、json处理工具等
1. 通信协议
所有长链接消息通过protobuf进行消息的序列化和反序列化,具体实现可以查看game-engine项目的mina、netty包。服务器主要分为两类消息:外部消息和内部消息
1. 外部消息
外部消息为游戏客户端和网关服务器的通信,消息格式为:
消息长度(4字节)+消息ID(4字节)+protobuf消息bytes
2. 内部消息
内部消息为服务器内部消息通信转发,如网关向游戏服、大厅服转发消息,消息格式