- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了 Professional XMPP 的所有 484 页,并阅读了无数关于花名册 + XMPP 的论坛帖子,这个问题仍然是我正在努力解决的问题。我正在寻找有关最佳实践的见解,所以我至少知道该往哪个方向发展。
我正在构建一个跨平台(网络、iOS 和 Xbox)的回合制棋盘游戏。每个玩家在任何特定时刻最多可以有 100 场不同的比赛——因此他们可以轻松地从一场没有比赛的比赛跳到有比赛的比赛。
游戏将设有一个大厅,其中显示您的事件游戏列表,以及该游戏的每个对手的姓名和在线状态(您最多可以有 3 个对手,每场比赛总共 4 个玩家)。
此外,每个玩家都有一个可从不同区域访问的 friend 列表,其中还列出了在线状态。
我在幕后使用 XMPP,对玩家完全透明,没有人会使用 Jabber 客户端或任何类型的客户端登录。我可以完全控制信息的显示和利用方式。
我使用 XMPP 解决的主要方面是:对手移动时的通知,查看我的 friend 在线状态,查看我的对手在线状态,以及游戏中的文本聊天。
所以这就是我开始遇到麻烦的地方:很明显,您的 friend 列表将成为您名册中的联系人,因此您可以看到他们的在线状态。但是对手呢?这些通常是随机的对手,你只会和他们打一场比赛,以后再也不会了——但你和他们的比赛可能会持续长达 2 周。
请记住,一切都在幕后进行(例如:自动订阅确认等)——最好的做法是在比赛进行时将每个对手添加到您名单中的另一个组中,然后在比赛结束后将其删除已经完成?这样当玩家在线时你会收到在线通知吗?或者这是可以使用 PubSub 的情况吗?
我也考虑过使用多用户聊天,所以我总是可以在没有订阅的情况下访问每个用户的在线状态,但是当在任何给定时刻都有多达 20k 的玩家在线时,这似乎远非有效。在移动设备上绝对听起来也很耗电。
我的另一个解决方案是使用共享名册列表。为每场比赛创建一个名单,并将该名单分配给每个玩家。然后在游戏完成后删除共享名单。
最佳答案
我会在这里选择 Pubsub。当然,这意味着你也必须做一些服务器端的工作。
向对手发送 directed presence。这将使他们看到您的存在。
关于XMPP 多人游戏 : should I store opponents as roster contacts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6428210/
我正在使用 QuickBlox SDk 进行视频通话。当我从一个用户调用另一个用户时,我收到了来自该用户的调用,但没有收到对方的视频和语音流?你能建议我如何解决这个问题。即使我正在尝试 Quickbl
这个问题并不是特定于语言的,它更多的是关于在 1v1 配对游戏中用于配对玩家的算法背后的逻辑。 这是一个由两部分组成的问题。 如果我有一款配对 1v1 类型的游戏,你打开手机的应用程序,选择“玩”,它
我希望在我的回合制游戏中有一个“快速匹配”模式,玩家会自动与第一个可用的玩家匹配。我正在使用我自己的自定义用户界面。到目前为止我的代码如下所示: - (void)quickMatch { GKMa
我已经阅读了 Professional XMPP 的所有 484 页,并阅读了无数关于花名册 + XMPP 的论坛帖子,这个问题仍然是我正在努力解决的问题。我正在寻找有关最佳实践的见解,所以我至少知道
我正在制作一款用户与计算机对战的游戏。轮到玩家时,计算机对手会考虑下一步行动。如果玩家移动到计算机对手计划移动的位置,计算机对手将重新开始搜索它的移动。 下面是主函数和对手函数的概要: [更新] pt
MCTS算法的步骤是: 选择 扩张 模拟 反向传播 我的问题涉及第三步,模拟。我们用一个新节点扩展了我们的决策树,并模拟了剩余的 Action ,直到游戏结束。这个模拟可以分为两部分: 轮到我们利用决
在serializer.py中使用create方法后出现错误 这是我的错误: Got AttributeError when attempting to get a value for field o
在serializer.py中使用create方法后出现错误 这是我的错误: Got AttributeError when attempting to get a value for field o
我是一名优秀的程序员,十分优秀!