Firebase 用于基于浏览器的实时 MMO [关闭]
Posted
技术标签:
【中文标题】Firebase 用于基于浏览器的实时 MMO [关闭]【英文标题】:Firebase for a Real-time browser-based MMO [closed] 【发布时间】:2015-11-15 23:50:41 【问题描述】:我刚开始使用 Firebase,我只想说使用 javascript SDK 进行设置和开发。
现在我的问题基本上是免费层的“上限/限制”如何工作。我正在开发一个实时交互式应用程序,只要用户在简单的鼠标上移动鼠标,它就会向 Firebase 数据库发送不断的更新网页。发送的唯一数据是鼠标的位置(X 和 Y)。即使这个数据发送的不多,每次鼠标位置变化时它都会开始添加它,我一次只测试了几个人,想想如果数百人它会如何加起来一次连接。
是整个月或每个月的 10 GB 限制。天?我看到分析面板说的是过去 24 小时和过去 30 天。有点困惑..
另外,我一直在来回发送数据的方式是最有效的方式吗?
这个项目的长期计划:
页面上一次有数百名用户,每次鼠标移动时都会发送请求。 可能为用户添加一个全局画布来一起绘制。 还有更多选择。把它想象成一个 MMO,但还没有接近千分之一或晚百分。
谢谢! - 凯文
【问题讨论】:
【参考方案1】:免费层的传输上限为每月 10 GB。这应该比您需要的数据多得多,至少目前是这样。
真正关心的是允许的并发连接数。在 Free 和 Spark 层,最多允许 100 个并发连接。这意味着一次只有 100 人可以玩您的游戏。
【讨论】:
问题是,我只测试了几个用户,5-10 分钟后,我们用完了大约 10 MB。想想我们是否有 10-20 或 30+,24/7 在线。那 10 GB 会很快用完,不是吗? @KevinJensenPetersen 您可以进行优化。例如,您可以实现一个计时器,将其限制为每秒 30 次,而不是在每个 mouseMove 事件上发送数据。对于服务器->客户端数据传输,您肯定会想要限制速率。此外,如果可以,请不要让服务器发送所有内容。只发送客户端关心的数据。例如,如果某些玩家在我的屏幕上不可见,我不在乎他们在做什么。无需传输不必要的数据。 不过现在,我会少关注优化,多关注游戏本身。随着游戏越来越受欢迎,您可以随时进行优化。 如果您将鼠标移动从每个玩家发送到所有其他玩家,您已经创建了一个高频二次带宽接收器,并且确实会很快耗尽您的配额。考虑每个鼠标移动是否与游戏玩法相关。可能有一些简单的方法可以减少您发送的数据量。这不仅意味着您可以在免费层中走得更远,而且还可以确保您的游戏在更多用户同时玩时保持可扩展性。 感谢您的提示和技巧。我现在意识到优化是做到这一点的最好方法,它肯定会以各种可能的方式提供帮助。要是 Firebase 有一个可用于开发的开发层就好了,而不必实际考虑优化问题。以上是关于Firebase 用于基于浏览器的实时 MMO [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
利用 Firebase 和 Google App Engine 将后台逻辑添加到实时数据
用于 Firebase 实时数据库/Firebase 身份验证的 Android 唯一密钥