gpt4 book ai didi

instant-messaging - 如何构建一个简单的 2 人游戏,通过 Internet 进行通信,并且在任何服务器上都没有自定义代码?

转载 作者:行者123 更新时间:2023-12-04 07:43:49 25 4
gpt4 key购买 nike

如何构建一个简单的 2 人游戏,通过 Internet 进行通信?

我需要解决以下问题:

  • 查找或会合 - 两个玩家想要找到对方。
  • 持续的沟通。任一玩家都可以在相当快的时间范围内(IM 类型的延迟,而不是电子邮件类型的延迟)发起需要将信息传递到另一方的操作。

  • 在这方面,我想它相当于一个双向聊天,人们希望能够找到对方,然后,一旦配对,就可以相互交流。

    进一步要求:
  • 现在,假设端点是相对较新的 Windows 操作系统。
  • 假设两个端点机器都不能直接从 Internet 访问。假设它们是客户端机器,隐藏在阻止传入请求的防火墙后面。机器可以发出出站请求。 (比如说,通过 HTTP,但 TCP 也可以)
  • 交流应该是私密的。为简单起见,假设已经存在共享 key ,并且端点能够执行 AES。我想我的意思是,任何中介都不应该需要解密消息包。解密只会在端点发生。
  • 所有自定义代码应仅在客户端 PC 上运行。
  • 假设互联网上没有我控制的服务器。
  • 我很乐意使用第三方服务器来促进互通,比如 IM 服务器什么的,只要它是免费的,我不需要在上面安装自定义代码。


  • 有哪些 API 可用于促进这种设计?

    我可以使用 IM API 执行此操作吗? WCF?是否有适用于 Windows Messenger 的 WCF channel ?

    什么协议(protocol)? HTTP?我将此标记为“点对点”,但实际上我的意思是;对正式的 p2p 协议(protocol)没有硬性要求。

    你会使用什么消息格式?

    编辑

    为了澄清有关服务器的要求,我想要的是没有服务器在我的控制之下。并且在任何服务器上都没有我的自定义代码。这与“无服务器”不同。

    可以这样想:我可以使用我在发送和接收端编写的自定义代码通过 SMTP 发送电子邮件。我的自定义代码可以通过免费的 SMTP 服务器中介进行连接。这不需要在 SMTP 服务器上安装代码。这就像我想要的,但由于延迟,SMTP 是 Not Acceptable 。

    编辑2
    我还发现了这个: library for Instant Messaging, like libpurple, but written in C#

    回答

    我可以做我想做的事,使用 IM 框架的库。使用 Windows Live Messenger 的一种简单方法是使用 Messenger Activity SDK .这证明了这个概念,但并不是真正的通用解决方案。但是,类似的事情可以使用各种信使系统的 IM 库来完成,例如 libpurple,或者使用 IRC channel 的库。在所有这些情况下,IM 服务器都充当穿透防火墙的通信基础设施。

    最佳答案

    IM 是错误的工具。相反,使用 IRC 聊天室。

    使用 IRC 聊天室,您的客户“登录”到聊天室,这就是您的“存在”。聊天室中的任何人都“有空”玩游戏。

    完成后,游戏实例通过聊天室相互通信。他们可以使用全局 channel ,或者只是私有(private) IRC channel 来获取游戏流量。

    要解决的问题:

  • 首先,所有游戏状态都在客户端上共享。许多游戏都做到了这一点(RTS,如帝国时代,RPG,如暗黑破坏神)。但是客户状态很容易受到黑客攻击和欺骗。这只是一个简单的事实。如果游戏很受欢迎,它将被黑客入侵。
  • 平流量。基本上流程是您登录房间,您的客户端处于“可玩”模式。然后它会 ping 其他所有人,看看他们是否可以玩。这将在每个客户“登录”到聊天室时发生。然后,您可以使用公共(public)房间播放“Frank 准备好玩新游戏”、“Frank 和 Joe 开始游戏”等事件。这有助于保持游戏同步而不是聊天,但当客户端连接到聊天时房间,它会去“大家好,我是鲍勃,你们都在做什么”。所以你需要管理它。
  • 交通量。 IRC 房间可以处理大量流量,但不能处理大量流量。大多数旨在防止“垃圾邮件”、“洪水”等。因此,您可能会在玩游戏时受到速率限制。对于“跳棋”来说不是问题,对于 40 人 Raid 中的“魔兽世界”来说更是如此。那是游戏设计的问题。
  • 服务条款。 IRC 提供商可能会说“不,你不能用我们的服务做到这一点”。我没看过,所以不知道,但可能是个问题。

  • 除此之外,IRC 非常适合。网上有很多 IRC 机器人代码,我从来没有用过。

    关于instant-messaging - 如何构建一个简单的 2 人游戏,通过 Internet 进行通信,并且在任何服务器上都没有自定义代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144287/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com