迁移到 Amazon GameLift 服务器 SDK 5.x - Amazon GameLift

迁移到 Amazon GameLift 服务器 SDK 5.x

要将游戏项目更新为使用服务器软件开发工具包版本 5.x,请进行以下更改:

  1. 获取适用于您的开发环境的最新 Amazon GameLift 服务器 SDK 软件包 [下载网站]。按照 Readme 文件中针对下载的软件包和版本的安装说明进行操作。请参阅以下说明,了解如何将服务器 SDK 用于您的游戏项目。

  2. 按如下方式更新服务器代码:

    • 将服务器代码回调函数 onCreateGameSession() 更改为 onStartGameSession()

    • 根据需要更新 InitSDK() 输入:

      • 如果您计划在有 Amazon GameLift 代理的情况下将游戏服务器生成包部署到 Amazon GameLift 托管式 EC2 实例集或 Anywhere 实例集:

        调用 InitSDK() 而无需使用参数(C++)(C#)(Unreal)。该调用将设置计算环境以及与 Amazon GameLift 服务的 WebSocket 连接。

      • 如果您计划在没有 Amazon GameLift 代理的情况下将游戏服务器生成包部署到 Anywhere 实例集:

        使用服务器参数调用 InitSDK()C++)(C#)(Unreal)。游戏服务器进程使用这些参数与 Amazon GameLift 服务建立连接。

  3. 如果您的游戏服务器生成包或其他托管应用程序在运行时与其他 AWS 资源通信,您需要更改应用程序访问这些资源的方式。使用新的 Amazon GameLift 服务器 SDK 操作 GetFleetRoleCredentials() 替换 AssumeRoleCredentials(对于游戏服务器),或使用共享凭证(对于其他应用程序)。有关如何实施此更改的更多信息,请参阅与您的实例集中的其他 AWS 资源进行通信

  4. 如果您的项目调用了服务器 SDK 操作 GetInstanceCertificate() 来检索 TLS 证书,请将代码修改为使用新的 GetComputeCertificate()C++)(C#)(Unreal)。

  5. 将游戏生成包上传到 Amazon GameLift 时(如使用 upload-buildCreateBuild()),请将 ServerSdkVersion 参数设置为您使用的 5.x 版本(该参数目前默认为 4.0.2)。该参数必须与游戏服务器生成包中的实际服务器 SDK 库匹配。如果为上传的游戏服务器生成包指定了错误的版本,那么使用该生成包创建的所有实例集都将失败。请参阅为 Amazon GameLift 托管部署自定义服务器生成包

    以下示例说明了如何指定服务器 SDK 版本:

    aws gamelift upload-build \ --operating-system AMAZON_LINUX_2023 \ --server-sdk-version "5.0.0" \ --build-root "~/mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2
  6. 如果您使用脚本远程连接到托管式实例集,请更新脚本以使用新流程,如远程连接到 Amazon GameLift 实例集实例中所述。