Architecture 多人游戏,如MMO';让我们来处理大量的请求

Architecture 多人游戏,如MMO';让我们来处理大量的请求,architecture,game-engine,distributed-system,Architecture,Game Engine,Distributed System,我问自己,mmo是如何像ragnarok一样处理发送到服务器的动作(“我猜是请求”)的?就像一个玩家使用一些物品或者杀死一个怪物,或者激活一项技能,游戏是如何以时间方式处理的,为了在其他玩家的游戏中立即展示这一点,我看到有一次似乎是一些事件驱动的架构,玩家改变游戏的状态,并将事件发送到服务器,但是如何?在大量的多个游戏客户端打开。这是一个非常大的问题。但我会给你最简短的回答。若你们想知道更多,你们可以通过阅读这本书来了解更多细节 大多数MMO游戏都是服务器-客户端游戏(有些游戏是点对点的,但它们

我问自己,mmo是如何像ragnarok一样处理发送到服务器的动作(“我猜是请求”)的?就像一个玩家使用一些物品或者杀死一个怪物,或者激活一项技能,游戏是如何以时间方式处理的,为了在其他玩家的游戏中立即展示这一点,我看到有一次似乎是一些事件驱动的架构,玩家改变游戏的状态,并将事件发送到服务器,但是如何?在大量的多个游戏客户端打开。

这是一个非常大的问题。但我会给你最简短的回答。若你们想知道更多,你们可以通过阅读这本书来了解更多细节

大多数MMO游戏都是服务器-客户端游戏(有些游戏是点对点的,但它们太小了)。有3种类型的服务器客户端游戏:

  • 权威服务器:游戏服务器对游戏的模拟被认为是正确的。如果客户端发现自己与服务器处于不同的状态,它应该根据服务器所说的游戏状态更新其游戏状态
  • 专用服务器:它们只运行游戏状态并与所有客户端通信。专用服务器进程完全独立于运行游戏的任何客户端进程。这意味着专用服务器通常是无头的,实际上不显示任何图形。大多数游戏运行在专用服务器上,这种类型也是权威服务器的子分类
  • 监听服务器:其中一个玩家可以使用他们的机器作为服务器和客户端。游戏发行商不需要租用云提供商的服务器。一个要求是,作为侦听服务器运行的用户机器必须足够强大,并且具有足够快的连接来处理这种增加的负载
如果您想进一步了解一些著名或AAA游戏服务器,请查看一些开源服务器,如:

  • 是一部分,但从2015年起停止发展。著名的游戏使用RAKNET是服务器,然后叉起java(而不是C++作为原件)。
  • 是谷歌云计算和刺客信条奥德赛游戏的合作项目。他们的服务器和客户端演示是

  • 这是一个非常大的问题。但我会给你最简短的回答。若你们想知道更多,你们可以通过阅读这本书来了解更多细节

    大多数MMO游戏都是服务器-客户端游戏(有些游戏是点对点的,但它们太小了)。有3种类型的服务器客户端游戏:

    • 权威服务器:游戏服务器对游戏的模拟被认为是正确的。如果客户端发现自己与服务器处于不同的状态,它应该根据服务器所说的游戏状态更新其游戏状态
    • 专用服务器:它们只运行游戏状态并与所有客户端通信。专用服务器进程完全独立于运行游戏的任何客户端进程。这意味着专用服务器通常是无头的,实际上不显示任何图形。大多数游戏运行在专用服务器上,这种类型也是权威服务器的子分类
    • 监听服务器:其中一个玩家可以使用他们的机器作为服务器和客户端。游戏发行商不需要租用云提供商的服务器。一个要求是,作为侦听服务器运行的用户机器必须足够强大,并且具有足够快的连接来处理这种增加的负载
    如果您想进一步了解一些著名或AAA游戏服务器,请查看一些开源服务器,如:

    • 是一部分,但从2015年起停止发展。著名的游戏使用RAKNET是服务器,然后叉起java(而不是C++作为原件)。
    • 是谷歌云计算和刺客信条奥德赛游戏的合作项目。他们的服务器和客户端演示是

    thx的答案,但只是为了澄清,每秒钟游戏状态都会发生变化,因此客户端一直在发送更新游戏状态的请求,并与服务器通信,对吗?TL;医生:是的。详细回答:是的,但不是每秒钟,这取决于您决定客户端和服务器同步数据的时间。例如:如果你的游戏类型是FPS或sport(这些类型更具竞争力),每秒的数据包越多,用户体验越好(没有滞后),但租用服务器(更多的CPU、更多的RAM、更多的SSD、更多的带宽)时,我会花费你很多钱,因此一些游戏发行商会在这些因素之间取得平衡Thx作为答案,但是为了澄清,每秒钟游戏状态都会发生变化,所以客户端一直在发送更新游戏状态的请求,并与服务器通信,对吗;医生:是的。详细回答:是的,但不是每秒钟,这取决于您决定客户端和服务器同步数据的时间。例如:如果您的游戏类型是FPS或sport(这些类型更具竞争力),则每秒的数据包越多,用户体验越好(没有滞后),但租用服务器(更多的CPU、更多的RAM、更多的SSD、更多的带宽)时,我会花费您很多钱,因此一些游戏发行商会在这些因素之间取得平衡