我试图想出在一个简单的游戏中进行一些随机匹配的最佳方法。
在使用 Adobe Cirrus 试验 netStreams 时,我可以使用 Cirrus 轻松设置直接连接、发送数据、文本、视频、声音,这一切都很棒。我发现建立一个简单的 P2P 连接很容易,而且它就像我需要的那样工作。
但我真的很想实现一个仅使用 cirrus 的随机匹配功能,所以一切都是 p2p ......
我将如何去抓住同一组中的随机同伴......这与其他人没有直接联系?
一些想法:
-我在想也许我可以使用对象复制......当有人连接到 GroupSpecifier 时,我可以将另一个对象推送到这个具有本地 peerID 及其状态的共享数组中。然后我可以在他们在游戏中时更改数组。但是我担心如果此人只是关闭网络窗口,则无法保证他们的条目会被删除。
-我还考虑过只在包含nearID的组中发布“帖子”,其他同伴可以得到帖子……那些不在游戏中的人会尝试直接连接回来。然后那一侧将连接到它们。因此,它们将彼此直接连接。但后来我觉得如果可能有 100 多个“可用”的人......得到这个帖子......然后他们都尝试连接到一个人,那么它可能会导致问题。
-另外,我想过只做 sendToNearest ......但这不是匹配人的最佳方式......因为我认为你只能有这么多邻居......如果组中有 1000 人。您只能连接到实际上认为是您的邻居的几个对等方,对吗?然后基本上你可能最终只匹配相同的 5-10 人,或者在技术上被认为是邻居。