将游戏与 Amazon GameLift ServersRealtime - Amazon GameLift Servers
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将游戏与 Amazon GameLift ServersRealtime

本主题概述了Amazon GameLift Servers使用托管Amazon GameLift ServersRealtime解决方案。概述说明了此解决方案何时适合您的游戏,以及如何Amazon GameLift ServersRealtime支持多人游戏。

什么是Realtime服务器?

Realtime服务器是轻量级的 ready-to-go游戏服务器,Amazon GameLift Servers可供您在多人游戏中使用。 Realtime服务器删除了自定义游戏服务器的开发、测试和部署过程。此解决方案可以帮助最大限度地减少完成游戏所需的时间和精力。

主要特征
  • 充分利用完整的网络堆栈进行游戏客户端/服务器交互。

  • 核心游戏服务器功能。

  • 可自定义的服务器逻辑。

  • Realtime配置和服务器逻辑的实时更新

  • FlexMatch对接会

  • 灵活控制托管资源。

通过创建队列并提供配置脚本来设置Realtime服务器。

如何Amazon GameLift ServersRealtime管理游戏会话

您可以通过将自定义逻辑构建到Realtime脚本中来为游戏会话管理添加自定义逻辑。您可能编写代码来访问服务器特定的对象,使用回调添加事件驱动的逻辑或基于非事件方案(例如计时器或状态检查)添加逻辑。

Realtime客户端和服务器如何交互

在游戏会话期间,游戏客户端通过后端服务向Realtime服务器发送消息进行交互。然后,后端服务在游戏客户端之间中继消息,以交换活动、游戏状态和相关的游戏数据。

此外,您可以通过向 Realtime 脚本添加游戏逻辑来自定义客户端和服务器的交互方式。使用自定义游戏逻辑,Realtime服务器可以实现回调以启动事件驱动的响应。

通信协议

Realtime服务器和连接的游戏客户端通过两个渠道进行通信:用于可靠交付的 TCP 连接和用于快速交付的 UDP 通道。创建消息时,游戏客户端选择使用的协议取决于消息的性质。默认情况下,消息传递设置为 UDP。如果 UDP 通道不可用,则使用 TCP 作为备用通道Amazon GameLift Servers发送消息。

消息内容

消息内容包含两种元素:必需的操作代码 (opCode) 和可选负载。消息的操作代码标识特定的玩家活动或游戏事件,而负载提供与操作代码相关的附加数据。这两种元素是开发人员定义的。您的游戏客户端会根据它收到的消息中的操作码采取措施。

玩家组

Amazon GameLift ServersRealtime提供管理玩家群组的功能。默认情况下,将所有连接到游戏的玩家Amazon GameLift Servers放在 “所有玩家” 组中。此外,开发人员可为其游戏设置其他组,而玩家可以同时是多个组的成员。组成员可以向组中的所有玩家发送消息或与组共享游戏数据。组的一种可能用途是建立玩家团队并管理团队沟通。

自定义服务器 Realtime

Realtime服务器充当无状态中继服务器。Realtime服务器在连接到游戏的游戏客户端之间中继消息和游戏数据包。但是,Realtime服务器不评估消息、处理数据或执行任何游戏逻辑。以这种方式使用,每个游戏客户端均保持其自己的游戏状态的视图,并通过中继服务器向其他玩家提供更新。每个游戏客户端均负责合并这些更新并协调自己的游戏状态。

您可以通过添加Realtime脚本功能来自定义服务器。例如,对于游戏逻辑,您可选择使用游戏状态的服务器授权视图来构建有状态的游戏。

Amazon GameLift Servers为脚本定义了一组服务器端回调。Realtime实施这些回调将事件驱动的功能添加到服务器。例如,您可以:

  • 当游戏客户端尝试连接到服务器时,对玩家进行身份验证。

  • 在请求时验证玩家是否可加入组。

  • 评估何时传递特定玩家或目标玩家的消息,或执行其他响应处理。

  • 当玩家离开小组或与服务器断开连接时,请采取措施,例如通知所有玩家。

  • 评估游戏会话对象或消息对象的内容并使用数据。

部署和更新 Amazon GameLift ServersRealtime

的一个关键优势Amazon GameLift ServersRealtime是能够随时更新脚本。更新脚本时,Amazon GameLift Servers会在几分钟内将新版本分发到所有托管资源。Amazon GameLift Servers部署新脚本后,在此之后创建的所有新游戏会话都将使用新的脚本版本。(现有游戏会话将继续使用原始版本。)

开始将您的游戏与Amazon GameLift ServersRealtime以下内容集成: