大家好,又开了一个新坑,是使用Akka做的一套分区服类型的游戏服务端框架,大体的框架已经完成,后面会持续增加细节内容,我也会在这个专栏下面发布一系列的文章阐述设计的细节。感兴趣的朋友可以点个star-> github.com/mikai233/an…
由于Akka是一套出色的分布式框架,我们可以很轻松的对服务端进行水平扩容,不需要做过多额外的操作,只需要简单的添加机器并加入集群即可。
下面简单介绍下如何启动这个项目,更多功能请自行探索
开发环境准备
- JDK17(azul-17)
- MongoDB
- Gradle 8
- Zookeeper
初始化zookeeper配置数据
运行项目中的 ZookeeperInitializer.kt 初始化zookeeper数据
启动
执行 Stardust.kt 启动游戏服务器
处理协议以及调试
项目使用Protobuf和客户端进行交互,协议位于proto/src/main/proto下面,在添加新的协议之后,需要在msg_cs.proto和msg_sc.proto中注册协议号,Req和Resp的协议号需要对应,然后编写对应的Handler处理新增的协议就行了。
@AllOpen
class TestHandler : MessageHandler {
@Handle
fun handleTestReq(player: PlayerActor, testReq: TestReq) {
player.send(testResp { })
}
}
项目中附带一个调试客户端,位于client目录,可以很方便的调试新增的协议
-
客户端
-
服务端