---
type: explanation
title: 自定义游戏
summary: 注册并托管你自己的游戏而非一个应用市场游戏，带一个回放工件以便它能给验证设关卡。
---

大多数客户嵌入一个来自 [应用市场](/marketplace) 的游戏。如果你宁愿跑你自己的游戏，你可以注册一个 **自定义游戏**：一个你自己托管的游戏，由一个你选定的 id 标识，而不是从目录里挑一个。

这一页是对一个自定义游戏是什么、以及用一个要花什么的概览。深入撰写一个游戏（写这个游戏、它的模式和它的回放）另行讲述。

## 注册一个自定义游戏

在一个站点密钥（或团队）的 **游戏** 页上，用 **添加游戏** 面板里的 **自定义游戏** 输入框：输入一个 id 并点击 **定义**。不像一个应用市场游戏，一个自定义游戏没有作者清单，所以你在编辑器里自己定义它的模式（每个预设能设置的那些字段），然后对着它撰写预设。

一个自定义游戏 id 可以是任何 GitHub 仓库风格的字符串。如果你选一个在应用市场里也存在的 id，对于那个 id 你的自定义游戏优先；Caputchin 当时就警告你，而绝不会默不作声地改服应用市场游戏。

## 托管与回放工件

你自己托管那个可玩的游戏，并用 `game-src` 属性把组件指向它。要把一个自定义游戏用作一个 [验证关卡](/docs/site-keys/games)，Caputchin 还需要一个 **回放工件**：一个它能重新跑一遍以确认结果的、小巧的 headless 版本游戏。你在游戏的 **设置** 标签页上上传它。在一个回放工件被上传并通过它的检查之前，一个自定义游戏显示为 **不可回放**，且无法给一个站点密钥设关卡。

## 预设与皮肤资源

一个自定义游戏的语言、皮肤和配置预设，在运行时的解析和应用恰好和一个应用市场游戏的一样，在同样的套餐档位上（见 [概览](/docs/game-customization/overview)）。唯一的不同是字段模式从哪里来：你在仪表盘里撰写它，而不是从一个应用市场清单继承它。

一个注意点：因为你自己托管那个可玩的游戏，把你皮肤预设用到的任何图像、音频或视频用绝对 URL 引用。没有一个平台包来据以解析一个相对的资源路径。

## 另见

- [游戏自定义概览](/docs/game-customization/overview)：注册并管理游戏。
- [游戏与游戏关卡](/docs/site-keys/games)：要求一个游戏来验证，以及那个可回放性要求。
- [模式参考](/docs/references/customization-schema)：你据以撰写一个自定义模式的那些字段类型。
