Asp.net core gRPC基于回合的游戏服务器设计指南
有人有gRPC方面的经验吗?我现在正在运行一个风险游戏,所有玩家都是机器人,使用不同的算法确定他们如何/在哪里部署军队,以及如何/在哪里攻击。我现在有一个REST实现,其中客户端和服务器都必须运行HTTP服务器;因此,客户端向服务器发送帖子以加入游戏,并包含一个回调地址,以便服务器可以在轮到他们时向客户端发送帖子。现在一切都正常了,但是开发一个新的客户端有点复杂(因为它们需要托管自己的http服务器),加上防火墙使得所有玩家都必须在同一个网络上 我想知道如果gRPC不适合更简单的设计,我是否应该使用gRPC重新编写客户机/服务器交互逻辑。使用双向流,客户端可以呼叫服务器请求加入游戏,然后客户端将在其他玩家加入游戏时等待收听该流,服务器可以在轮到他们时通过该双向流向客户端发送消息。这样行吗 因为几乎整个游戏都将通过一个双向流,我想我需要让我的消息类型足够灵活,以适应不同的游戏状态。例如,请求可以包含Asp.net core gRPC基于回合的游戏服务器设计指南,asp.net-core,asp.net-web-api,grpc,.net-5,Asp.net Core,Asp.net Web Api,Grpc,.net 5,有人有gRPC方面的经验吗?我现在正在运行一个风险游戏,所有玩家都是机器人,使用不同的算法确定他们如何/在哪里部署军队,以及如何/在哪里攻击。我现在有一个REST实现,其中客户端和服务器都必须运行HTTP服务器;因此,客户端向服务器发送帖子以加入游戏,并包含一个回调地址,以便服务器可以在轮到他们时向客户端发送帖子。现在一切都正常了,但是开发一个新的客户端有点复杂(因为它们需要托管自己的http服务器),加上防火墙使得所有玩家都必须在同一个网络上 我想知道如果gRPC不适合更简单的设计,我是否应该
- 操作{加入/部署/攻击}
- ClientName:string
- 部署位置:字符串,放置军队的坐标
- 攻击来源:字符串,坐标
- 攻击:字符串,坐标
- 游戏状态{加入/部署/攻击/游戏结束}
- 动作{Wait/Deploy/Attack/GameOver}
- 董事会{领土名单,谁占领,有多少军队}
这种互动模式有效吗?在基于回合的游戏中,使用gRPC对客户机/服务器通信建模是错误的吗?我应该怎么做呢?我决定编辑我的答案。您正在寻找有关重新编写游戏服务器/客户端的指南,以避免重新启动。我强烈建议您使用Signal R Core 信号R专门为基于消息的系统设计。您可以从客户端发送消息,即“player 1 played card X”,然后服务器将向连接的其他客户端广播该消息。您还可以设置“组”,这些组可用于“大厅”或“房间”