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

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

将游戏与 Amazon GameLift Servers 实时

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

什么是实时服务器?

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

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

  • 核心游戏服务器功能。

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

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

  • FlexMatch 对战

  • 灵活控制托管资源。

通过创建托管资源实例集并提供配置脚本来设置 服务器。

操作方法 Amazon GameLift Servers 实时管理游戏会话

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

实时客户端和服务器如何交互

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

此外,您可以通过向 脚本添加游戏逻辑来自定义客户端和服务器的交互方式。借助自定义游戏逻辑, 可能会实施回调以触发事件驱动的响应。

通信协议

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

消息内容

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

玩家组

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

自定义实时服务器

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

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

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

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

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

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

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

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

部署和更新 Amazon GameLift Servers 实时

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

开始将您的游戏与 Amazon GameLift Servers 实时: