FCM 是否适合实时游戏后端?

Is FCM suitable for a real time game backend?

由于 Google 最近对 Firebase 进行了重大更改,他们发布了一项名为 Firebase Cloud Messaging 或 FCM 的服务。我想知道,这是否可以作为两个玩家之间实时游戏的后端,作为 TCP 或 UDP 等协议的替代品?例如,由游戏服务器控制的多人游戏,其他玩家的位置每秒更新多次。我看到它每个数据包可以传输 4kb 的数据,并且由于它由 Google 托管,我认为连接时间肯定会很快;然而,Google 并没有将其宣传为游戏后端,而是一个适合 IM 等应用程序的消息传递系统。

基本上,我要问的是,与 TCP 和 UDP 等协议相比,FCM 在以下方面有何不同:

从长远来看运行它能否支持服务器中游戏之间的持续通信?

这是一道变数题。如果您正在创建基于高反应的游戏(FPS,高逼真动作游戏),那么使用 Firebase 可能不是好的解决方案。

这并不意味着您不能使用 Firebase。您可以将点数、统计数据、经验值的同步卸载 HP/MP 到 Firebase 以在玩家之间同步。

Google 云消息传递 is not blazing fast 并且它还会在设备的高使用率期间进行限制。由于您无法控制这种节流机制,我不会再使用它来发送通知。该架构更适合聊天、推送通知、Inbox/New 消息。

长话短说:

  • 使用 Firebase 获取积分、记录事件,
  • 使用 FCM 发送通知