jforgame,一个用java编写的轻量级手游服务端框架。项目只使用简单的业务功能作为演示,主要提供各种支持游戏快速开发的组件,以及对生产环境的服务进行管理的工具。
该框架吸取了笔者参与的众多手游项目的成功经验,从中精挑细选了各个模块的优秀实现。希望每个模块都能以一种优雅简便的api供外部使用。当然,由于笔者经验问题,部分实现仍有诸多不足,希望大家一起完善,一起改进,这也是开源的目的。
Mina,nio socket framework
jprotobuf, message codec
Guava,memory cache
quartz, job task scheduler
groovy, execute script code and class hotswap
proxool,mysql data pool
slf4j+log4j,for logging
game包是游戏的业务模块, 其余包则是各种辅助模块。允许game包调用其他模块的接口,尽量避免其他模块对game包的调用。各个模块包括:
cache包,使用guava cache库,用于支持系统的缓存框架
orm包,使用自定义的orm框架,用于数据库表记录与程序pojo对象的相互转换
db包,使用独立线程,异步处理玩家及公共数据的持久化
monitor包,系统监控模块,包括使用jmx对程序进行监控
net包,包括io网关模块,玩家消息自动映射到业务模块,异步处理玩家消息的线程模型
listener包,事件驱动模型
doctor包,采用基于类替换的方式实现热更新(类级热更新而非方法级)
game/gm包,游戏内部金手指命令
game/http包,游戏运营/运维后台命令
logs, 日志系统
utils包,各种工具类