name5566 / leaf

A game server framework in Go (golang)
Apache License 2.0
5.26k stars 1.31k forks source link

多游戏如何更好的实现? #173

Closed ghost closed 4 years ago

ghost commented 4 years ago

想写3个小游戏,三个游戏的基本结构都差不多; 也有部分一致的逻辑;

但是好像不太好实现呀 例如 都有一个 准备或者加入房间的操作! msg那里定义结构体,就不能定义一样的了 除非给结构体加上游戏名或者统一的前缀才在路由那边注册

但是前端传递的就有点奇葩了 例如这样 {"Game1Ready":{"xxx":"xxx"}}

有没有更好点的办法?

还有就是想问下 {"Game1Ready":{"xxx":"xxx"}} 前面这块必须和结构体一致吗? 有没有可以自定义的方法? 再就是想问下 为什么设计成找不到路由就断开连接了呢?

name5566 commented 4 years ago

不同游戏加入房间的操作如果消息本身不同,是需要定义不同的结构体的。

ghost commented 4 years ago

不同游戏加入房间的操作如果消息本身不同,是需要定义不同的结构体的。

如果建立两个game模块 分别为game1 和game2 但是看到gate模块里面有个 AgentChanRPC: game1.ChanRPC

这里填写 game1.ChanRPCgame2.ChanRPC 有什么区别或者有什么影响吗???

name5566 commented 4 years ago

有区别的。这里决定了目标模块。你可以看看范例和 Wiki。

ghost commented 4 years ago

最后问下 json的消息处理 有消息id吗? 因为目前客户端用websocket 处理消息不是很好去处理 例如:

{"Login":{"Data:{}}} // 登录
{"AddRoom":{"Data:{}}} // 加入房间

每个消息调用对应的方法 不是很好去解决!