使用 firebase 进行实时多人游戏

Ger*_*rus 6 mobile multiplayer firebase flutter flame

我刚刚使用 flutter 创建了一款手机游戏,并希望将其扩展到多人在线游戏。所以我考虑用 firebase 来制作它。我对这个领域相当陌生,所以我希望我的问题听起来不太愚蠢。

当我的游戏中的角色流畅地移动时,我需要每帧至少更新一次他们的位置,因此如果使用 firebase,我需要一个每秒运行 60 次且永不结束的云函数。然后,该函数将获取游戏中的所有对象(存储在实时数据库中)并根据其速度更新它们的位置。更新后的值将写回客户端侦听的数据库。他们更新游戏中的值并将对象渲染到正确的位置。每当玩家与游戏交互时,就会调用另一个云函数来处理该问题并更新所需的内容。

是否有可能做出这样的事情并且有意义吗?以这种方式使用云函数对我来说听起来不太顺利,但我没有其他实现它的想法。它将如何影响成本?听起来像很多函数调用和数据库读/写..

如果这完全不可想象,还有什么替代方案呢?我不太介意使用另一个数据库和/或框架来制作游戏本身。

非常感谢

spy*_*don 6

通过数据库传达位置等信息的速度不足以让您每秒执行 60 次。您必须使用某种形式的混合 UDP 和 TCP 解决方案,不幸的是,它并不像某些游戏引擎那样为 Flame 预先构建,但根据复杂程度自行构建可能不会太复杂你的用例是。

就像@Fattie 建议的那样,尝试一下PubNub是否适合您可能是个好主意。

更新:这里现在有 Flutter 的早期 Nakama(开源游戏服务器)集成。