管理 Amazon GameLift 如何启动游戏服务器 - Amazon GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 Amazon GameLift 如何启动游戏服务器

您可以设置托管 EC2 实例集的运行时配置,以便对每个实例运行多个游戏服务器进程。这样可以更有效地使用您的托管资源。

实例集如何管理多个进程

Amazon GameLift 使用实例集的运行时配置来确定要在每个实例上运行的进程的类型和数量。运行时配置至少包含一个代表一个游戏服务器可执行文件的服务器进程配置。您可以定义其他服务器进程配置,以运行与您的游戏相关的其他类型的进程。每个服务器进程配置都包含以下信息:

  • 游戏构建中可执行文件的文件名和路径。

  • (可选)要在启动时传递给进程的参数。

  • 要同时运行的进程的数量。

当实例集中的实例激活时,它会启动在运行时配置中定义的服务器进程。对于多个进程,Amazon GameLift 会错开每个进程的启动。服务器进程具有有限的生命周期。当它们结束时,Amazon GameLift 会启动新的进程,以保持运行时配置中定义的服务器进程的数量和类型。

您可以随时通过添加、更改或删除服务器进程配置来更改运行时配置。每个实例都会定期检查对实例集运行时配置的更新,以实施更改。此处介绍 Amazon GameLift 如何采纳运行时配置更改:

  1. 该实例向 Amazon GameLift 发送请求以获取最新版本的运行时配置。

  2. 该实例将其活动进程与最新的运行时配置进行比较,然后执行以下操作:

    • 如果更新的运行时配置删除了某个服务器进程类型,此类型的活动服务器进程将继续运行直到结束。该实例不会取代这些服务器进程。

    • 如果更新的运行时配置减少了某个服务器进程类型的并发进程数,此类型的多余服务器进程将继续运行直到结束。该实例不会取代这些多余服务器进程。

    • 如果更新的运行时配置添加了新的服务器进程类型或增加了现有类型的并发进程,该实例将启动新的服务器进程,直至达到 Amazon GameLift 的上限。在这种情况下,该实例在现有进程结束时启动新的服务器进程。

针对多个进程优化实例集

要在实例集上使用多个进程,请执行以下操作:

  • 创建构建,其中包含您要部署到实例集并将构建上传到 Amazon GameLift 的游戏服务器可执行文件。构建中的所有游戏服务器都必须在同一个平台上运行并使用 Amazon GameLift 服务器软件开发工具包。

  • 使用一个或多个服务器进程配置和多个并发进程创建运行时配置。

  • 将游戏客户端与 Amazon 软件开发工具包版本 2016-08-04 或更高版本集成。

要优化实例集性能,建议您执行以下操作:

  • 处理服务器进程关闭方案,以便 Amazon GameLift 可以高效率地回收进程。例如:

    • 向调用服务器 API ProcessEnding() 的游戏服务器代码添加关闭程序。

    • 在您的游戏服务器代码中实现回调函数 OnProcessTerminate() 以处理来自 Amazon GameLift 的终止请求。

  • 确保 Amazon GameLift 已关闭并重新启动运行状况不正常的服务器进程。通过在游戏服务器代码中实现 OnHealthCheck() 回调函数,将运行状况状态报告给 Amazon GameLift。Amazon GameLift 自动关闭连续三次报告为不正常的服务器进程。如果不实施 OnHealthCheck(),Amazon GameLift 假定服务器进程正常运行,除非该进程无法响应通信。

选择每个实例的进程数

在决定要在实例上运行的并发进程数时,需要记住以下内容:

  • Amazon GameLift 限制每个实例的最大并发进程数。实例集服务器进程配置的所有并发进程的总和不能超过此限额。

  • 为维持可接受的性能水平,Amazon EC2 实例类型可能会限制可并发运行的进程数。测试游戏的不同配置以找出您首选实例类型的合适进程数。

  • Amazon GameLift 运行的并发进程数不会超过配置的总数。这意味着从以前的运行时配置到新配置的过渡可能会逐渐发生。