基于Akka的分布式游戏服务端开发

344 阅读1分钟

大家好,又开了一个新坑,是使用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.protomsg_sc.proto中注册协议号,ReqResp的协议号需要对应,然后编写对应的Handler处理新增的协议就行了。

@AllOpen
class TestHandler : MessageHandler {
    @Handle
    fun handleTestReq(player: PlayerActor, testReq: TestReq) {
        player.send(testResp { })
    }
}

项目中附带一个调试客户端,位于client目录,可以很方便的调试新增的协议

  • 客户端 image.png

  • 服务端 image.png