Amazon GameLift FleetIQ 集成步骤 - Amazon GameLift

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

Amazon GameLift FleetIQ 集成步骤

该集成计划概述了使用 Amazon GameLift FleetIQ 在 Amazon EC2 实例上启动和运行多人游戏的关键步骤。如果您正在寻找可自动执行更多游戏托管流程的 Amazon GameLift 托管服务,请参阅 Amazon GameLift 开发人员指南

要开始使用 Amazon GameLift FleetIQ,您应该有一个在本地环境或 Amazon EC2 环境中正常运行的游戏服务器。游戏服务器可以是管理一个或多个游戏会话、生成子进程或在容器内运行的单个进程。

  1. 注册一个 AWS 账户并设置用户的 Amazon GameLift FleetIQ 访问权限。

    创建一个新 AWS 账户 账户或选择一个现有账户来使用 Amazon GameLift FleetIQ。为用户设置管理游戏中使用的 Amazon EC2、Auto Scaling 和其他 AWS 资源的权限。有关详细说明,请参阅为亚马逊 GameLift FleetiQ 设置 AWS 账户

  2. 创建 IAM 角色。

    创建允许 Amazon GameLift FleetIQ、Amazon EC2 和 Auto Scaling 资源相互通信的角色。有关更多信息,请参阅 为跨服务交互创建IAM角色

  3. 使用 Amazon GameLift FleetIQ 功能获取 AWS 软件开发工具包和 AWS CLI。

  4. 准备好您的游戏服务器,以便在 Amazon GameLift FleetIQ 上使用。

    将 AWS 软件开发工具包添加到您的游戏服务器项目中,并添加代码,让 Amazon GameLift FleetIQ 随时了解游戏服务器的当前状态和使用情况。有关其他指导和示例,请参阅将 Amazon GameLift FleetiQ 集成到游戏服务器中。Amazon GameLift FleetIQ 使用这些信息为您的对战系统提供可行、未占用的游戏服务器列表,还可以避免在平衡期间终止当前托管玩家的实例。

  5. 使用您的游戏服务器创建 Amazon EC2 亚马逊机器映像 (AMI)。

    使用您的游戏服务器软件以及任何其他运行时资产或配置设置创建 AMI。如需帮助,请参阅《Amazon EC2 用户指南》中的亚马逊机器映像 (AMI)

  6. 创建 Amazon EC2 启动模板。

    构建 Amazon EC2 启动模板,该模板使用您的自定义 AMI,并为您的托管资源定义网络和安全设置。启动模板必须引用您创建的实例配置文件(请参阅步骤 2),并具有允许您的游戏服务器与 Amazon GameLift FleetIQ 通信的权限。您无需在启动模板中包含实例类型,因为这将在稍后完成。如需帮助,请参阅《Amazon EC2 用户指南》中的创建启动模板

    注意

    在将启动模板与 Amazon GameLift FleetIQ 结合使用之前,我们强烈建议您先设置一个自动扩缩组组,以验证模板配置和 AMI 是否正确部署。

  7. 设置 Amazon GameLift FleetIQ 托管资源。

    在要部署游戏服务器的每个区域中,通过调用 CreateGameServerGroup() 来创建游戏服务器组。传入启动模板(包含您的自定义 AMI 以及网络和安全设置)、IAM 角色以及游戏可以运行的实例类型列表。此操作会在您的 AWS 账户中设置一个自动扩缩组,Amazon GameLift FleetIQ 可以修改该组。有关其他指导和示例,请参阅管理 Amazon GameLift FleetiQ 游戏服务器组

  8. 将 Amazon GameLift FleetIQ 集成到游戏客户端中。

    将 AWS 软件开发工具包添加到您的游戏客户端、对战构建器或分配游戏服务器容量的其他后端组件中。根据您的游戏类型,对战构建器可能会调用 ListGameServers()ClaimGameServer() 以获取服务器容量并预留可用的游戏服务器。有关其他指导和示例,请参阅将 Amazon GameLift FleetiQ 集成到游戏客户端中

  9. 扩展您的自动扩缩组。

    在您的自动扩缩组中预配置实例时,它们会启动您的游戏服务器。然后,每个游戏服务器都注册到 Amazon GameLift FleetIQ 作为可用容量,以便稍后在您的对战构建器中列出或认领。

  10. 测试游戏。

    调用您的对战构建器并调用 ClaimGameServer 以请求服务器容量。将生成的 IP 和端口传回游戏客户端,以便他们可以连接到游戏服务器。