jforgame輕量級(jí)手游服務(wù)端框架
jforgame,一個(gè)用java編寫(xiě)的輕量級(jí)手游服務(wù)端框架。項(xiàng)目只使用簡(jiǎn)單的業(yè)務(wù)功能作為演示,主要提供各種支持游戲快速開(kāi)發(fā)的組件,以及對(duì)生產(chǎn)環(huán)境的服務(wù)進(jìn)行管理的工具。
該框架吸取了筆者參與的眾多手游項(xiàng)目的成功經(jīng)驗(yàn),從中精挑細(xì)選了各個(gè)模塊的優(yōu)秀實(shí)現(xiàn)。希望每個(gè)模塊都能以一種優(yōu)雅簡(jiǎn)便的api供外部使用。當(dāng)然,由于筆者經(jīng)驗(yàn)問(wèn)題,部分實(shí)現(xiàn)仍有諸多不足,希望大家一起完善,一起改進(jìn),這也是開(kāi)源的目的。
main 3rd party
-
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包是游戲的業(yè)務(wù)模塊, 其余包則是各種輔助模塊。允許game包調(diào)用其他模塊的接口,盡量避免其他模塊對(duì)game包的調(diào)用。各個(gè)模塊包括:
-
cache包,使用guava cache庫(kù),用于支持系統(tǒng)的緩存框架
-
orm包,使用自定義的orm框架,用于數(shù)據(jù)庫(kù)表記錄與程序pojo對(duì)象的相互轉(zhuǎn)換
-
db包,使用獨(dú)立線程,異步處理玩家及公共數(shù)據(jù)的持久化
-
monitor包,系統(tǒng)監(jiān)控模塊,包括使用jmx對(duì)程序進(jìn)行監(jiān)控
-
net包,包括io網(wǎng)關(guān)模塊,玩家消息自動(dòng)映射到業(yè)務(wù)模塊,異步處理玩家消息的線程模型
-
listener包,事件驅(qū)動(dòng)模型
-
doctor包,采用基于類替換的方式實(shí)現(xiàn)熱更新(類級(jí)熱更新而非方法級(jí))
-
game/gm包,游戲內(nèi)部金手指命令
-
game/http包,游戲運(yùn)營(yíng)/運(yùn)維后臺(tái)命令
-
logs, 日志系統(tǒng)
-
utils包,各種工具類
