基于浏览器的实时MMO游戏的Firebase

3
我刚开始使用Firebase,使用JavaScript SDK进行设置和开发时,我只有积极的评价。
现在我的问题基本上是关于免费套餐的“容量/限制”如何工作。我正在开发一个实时交互应用程序,每当用户在简单的网页上移动鼠标时,它就会向Firebase数据库发送不断的更新。发送的唯一数据是鼠标的位置(X和Y)。虽然发送的数据不多,但每次鼠标位置发生变化时都会添加它,并且我只测试了几个人同时使用的情况,想象一下如果有数百人同时连接会怎样。
10 GB的限制是每个月还是每天?我看到分析面板上有关于过去24小时和过去30天的内容,有点困惑。
此外,我一直在不断地发送数据,这是最有效的方法吗?
这个项目的长期计划:
- 在页面上同时有数百个用户,每次他们移动鼠标时发送请求。 - 为用户提供全局绘画画布以一起绘画。 - 还有更多选项。
可以将其视为一个MMO,但远远没有成千上万或晚期的数百人。
谢谢! - 凯文
1个回答

4
免费套餐的传输限制是每月10 GB。至少目前来看,这应该比您所需的数据要多得多。
真正的问题在于允许的并发连接数。在免费和Spark套餐中,您最多可以允许100个并发连接。这意味着只有100人可以同时玩您的游戏。

事实是,我只测试了几个用户,5-10分钟后,我们就用掉了大约10 MB的流量。想象一下,如果我们有10-20或30+个用户,而且24/7在线,那么这10 GB的流量会很快被用完,不是吗? - Kevin Jensen Petersen
1
@KevinJensenPetersen 你可以进行优化。例如,不必在每个mouseMove事件中发送数据,而是可以实现一个定时器,将其限制在每秒30次。对于服务器->客户端的数据传输,您肯定希望限制速率。此外,如果可以的话,请不要让服务器发送所有数据。只发送客户端关心的数据。例如,如果某些玩家在我的屏幕上不可见,我就不关心他们在做什么。没有必要传输不必要的数据。 - nick
1
现在,我建议你把注意力放在游戏本身上,而不是优化上。随着你的游戏越来越受欢迎,你总是可以稍后进行优化。 - nick
4
如果您向所有其他玩家发送每个玩家的鼠标移动,那么您已经创建了一个高频、二次带宽沉没,并且很快就会用完您的配额。请考虑每个鼠标移动是否与游戏玩法相关。可能有简单的方法来减少您发送的数据量。这不仅意味着您可以在免费版中进一步发展,而且还可以确保您的游戏在更多用户同时玩游戏时仍然可扩展。 - Frank van Puffelen
谢谢大家的技巧和建议。我现在意识到优化是做这件事的最佳方式,它肯定会在各个方面都有所帮助。如果 Firebase 有一个可以用于开发的开发层,而不必考虑优化,那该多好啊。 - Kevin Jensen Petersen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接