我有一个变量pool
,由所有客户共享,存储游戏中所有剩余的敌人。当客户开始游戏时,他会从pool
获得一些敌人。当他完成时,他没有杀死的敌人被放回pool
。游戏还会检查所有敌人是否都被杀死(即pool
为空)。
实施pool
的最佳方式是什么?我担心数据存储区实体每秒有5次更新限制。
答案 0 :(得分:2)
预计游戏开始/结束的频率如何?如果答案肯定小于每秒5,那么只需使用单个实体来表示pool
,并使用事务以游戏开始和结束的方式原子获取和更新它。
如果您真的希望有这么多客户共享一个pool
,那么它将以每秒5次的持续速率进行更新,那么请考虑将pool
分成多个部分。当客户端启动游戏时,只从其中一个分片中删除实体。要测试分片pool
是否为空,只需检索所有分片并查看它们是否全为空。 (修改分片时,您仍需要使用事务。)