集成要求
Learn the requirements your game server must meet to integrate with Multiplay Hosting.
阅读时间7 分钟最后更新于 15 天前
为确保您可以使用 Multiplay Hosting 服务来托管和扩展游戏,您的游戏必须满足特定要求。请参阅以下指南,了解如何使您的游戏满足使用 Multiplay Hosting 的要求。 大多数要求与版本相关,具体来说,与版本可执行文件相关。版本包含运行游戏所需的所有文件。版本可执行文件是版本中的可执行文件。创建版本时,必须指定版本可执行文件。
一般要求
本节介绍了为使用 Multiplay Hosting,版本必须满足的一般要求。请参阅以下要求,了解更多信息:操作系统
版本可执行文件必须支持在 Linux (Ubuntu 20.04) 上运行。您可以在创建版本时指定版本支持的操作系统。 Multiplay Hosting 仅支持 64 位 Linux 应用程序。参数化值
版本必须支持使用参数化值的信息。Multiplay Hosting 通过配置变量、server.json fileserver.jsonserver.json启动条件
版本必须支持在server.jsonallocatedID""网络适配器绑定
针对游戏服务器端口和查询协议服务器端口,版本必须绑定到0.0.0.0动态端口号
版本必须支持使用动态端口号来进行游戏数据传输。Multiplay Hosting 按服务器实例生成端口号(使用偏移来确保服务器启动时不会出现端口冲突)。
版本可执行文件必须使用
$$port$$$$port$$-port $$port$$
日志目录
版本必须支持为每个服务器实例生成日志。Multiplay Hosting 通过 Unity Cloud 后台展示服务器日志,可方便您查看、搜索和下载日志。 您可以通过启动参数和配置变量来控制版本保存日志文件的位置。例如,可以使用-logFile$$log_dir$$日志目录要求可选择性满足。如果不设置日志目录,则无法通过 Unity Cloud 后台访问日志和崩溃转储。-logFile $$log_dir$$/engine.log
查询协议
尽管不作为一项要求,但也建议版本支持对服务器查询协议(例如 SQP)的查询做出响应。 服务器查询协议可方便查询服务器实例的信息,例如服务器状态和已分配玩家数。通常,响应中包含静态变量和动态(持续更新的)值。 Multiplay Hosting 依赖查询协议响应来确定服务器实例的运行状况。如果版本不支持查询协议或者您未正确设置查询协议,Multiplay Hosting 会判定服务器实例不响应。 此外,借助查询协议,Multiplay Hosting 可以报告和监控每个服务器的实时数据,例如并发连接玩家数 (CCU)、活动分配、失败分配、每个平台连接的玩家数以及服务器事件。分配后清理
版本必须支持某种形式的分配后(会话后)清理,以便使服务器准备就绪用于下一次分配。 有两种可选方法:- 可以在游戏会话结束后返回大厅或就绪状态。
- 可以正常退出进程(例如,使用退出代码 0)。
容器版本要求
创建 Multiplay Hosting 版本时,您可选择使用多种方式来上传版本文件。 一种方式是使用 Docker 和 Multiplay Hosting 容器注册表来上传版本的容器化版本。不过,版本容器必须满足特定要求(除一般要求外),您才能使用容器版本。使用基础镜像来创建容器版本
linux-build-image 模板容器可满足使用容器版本的大多数额外要求。因此,可在大多数情况下使用基础镜像。您可以通过将以下行添加到 Dockerfile 的顶部来使用基础镜像:将FROM unitymultiplay/linux-base-image:<tag>
<tag>从头开始创建容器版本
如果您希望从头开始创建 Dockerfile,则必须自行确保容器满足以下要求。| 要求 | 描述 |
| 容器必须使用 |
| 容器必须具有 |
# ========================================================##========================================================-# Unity base image stuff##unity-base-image-stuff------------------# ========================================================##========================================================-FROM ubuntu:20.04 AS mpukRUN addgroup --gid 2000 mpukgame && \ useradd -g 2000 -u 2000 -ms /bin/sh mpukgame && \ mkdir /game && \ chown mpukgame:mpukgame /game && \ apt update && \ apt upgrade && \ apt install -y ca-certificatesUSER mpukgame# ========================================================##========================================================-# Custom game stuff##custom-game-stuff---------------------# ========================================================##========================================================-FROM mpuk AS game# copy game files here##copy-game-files-here# for example:##for-example:WORKDIR /gameCOPY --chown=mpukgame . .# set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./gamebinary" ]