一. 服务端设计
整个服务端暂且分成以下几个部分:
- 基础通信模块
- 逻辑处理模块
- GM模块
- 服务器状态监控模块
对服务端的几个高级抽象:
1)Context
Context代表了整个服务端的生命周期, 负责启动和停止所有的游戏
2)Game
Game表示不同的游戏,每个Game定制自己的PRotocol,并负责创建和销毁Room
3)Room
Room负责处理游戏的逻辑,控制游戏的进度
4)Charactor
每个Charactor代表一个玩家,存储一些玩家的基本信息
5)Dispatcher
Dispatcher负责消息的分发
6)Processor
Processor是消息的最终处理终端
在整个服务端,netty负责建立连接,接收和发送消息,netty接收到消息以后,会把消息从netty线程(netty启动的线程)分发到用户线程(处理游戏逻辑),这里使用了Jactor2来完成线程间的通信
二. 客户端设计
客户端比较简单,参考了这里,UI基于Raphael库,目前只有一些基本的功能,
后续会将一些基础组件抽出来,最后完善成为一个小engine
项目地址:https://github.com/occume/D3000
新闻热点
疑难解答