---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/games/doc/en/requirements/1/9.md
  - https://yandex.com/dev/games/doc/hi/requirements/1/9.md
  - https://yandex.com/dev/games/doc/ko/requirements/1/9.md
  - https://yandex.com/dev/games/doc/ru/requirements/1/9.md
  - https://yandex.com/dev/games/doc/tr/requirements/1/9.md
  - https://yandex.com/dev/games/doc/vi/requirements/1/9.md
  - https://yandex.com/dev/games/doc/zh/requirements/1/9.md
  - href: zh/requirements/1/9.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/games/doc/zh/llms.txt

# 进度保存

<!-- source: zh/_includes/script-common.md -->
<!-- source: zh/_includes/script/index-js.md -->

<!-- endsource: zh/_includes/script/index-js.md -->

<!-- source: zh/_includes/script/requirements-js.md -->

<!-- endsource: zh/_includes/script/requirements-js.md -->

<!-- source: zh/_includes/script/image-modal-js.md -->

<!-- endsource: zh/_includes/script/image-modal-js.md -->
<!-- endsource: zh/_includes/script-common.md -->

{% note info "游戏要求第1.9点" %}

在具有内部进度（新的开放级别，高分，成就，改进）的游戏中，在玩家提交操作或按特殊保存按钮后立即保存更改。 更新页面不应影响保存的数据。

{% endnote %}

关键规则是，用户应该能够在刷新游戏页面后继续游戏，而不会丢失他们的成就或记录。保存应该在用户每次操作后或通过一个特定的按钮完成；其他保存机制应在开发者的[评论](https://yandex.com/dev/games/doc/zh/console/add-new-game.md#field-comment)中描述。

## 保存进度的位置 {#save-location}

游戏进度可以保存在云端或本地。云端保存：

- 允许用户在不同设备上继续游戏。
- 对于有应用内购买的游戏是必需的（[第1.13.3项](https://yandex.com/dev/games/doc/zh/concepts/requirements.md#1-13-3)）。

根据游戏的类型和要求选择存储方式：

- **在Yandex Games服务器上** —— 大多数游戏的推荐选项：

    - 使用 [SDK 方法](https://yandex.com/dev/games/doc/zh/sdk/sdk-player.md#ingame-data)实现云端保存。如果游戏支持云端保存，请在[游戏草稿](https://yandex.com/dev/games/doc/zh/console/add-new-game/draft.md#field-cloud-saves)中标明（[第1.11项](https://yandex.com/dev/games/doc/zh/concepts/requirements.md#1-11)）。

    - **优势**： 允许我们在全球范围内加速游戏加载，Yandex Games方面提供玩家支持。

- **在外部服务器上** —— 适用于具有完善基础设施的复杂项目：

    - 在您的服务器上实现自己的数据存储和同步系统。
    - **需要考虑的事项**： 您将需要用于托管、管理和玩家支持的资源。

- **浏览器存储**（localStorage、IndexedDB）—— 仅适用于没有应用内购买的简单游戏：

    - 使用标准浏览器API在用户设备上本地保存数据。
    - **限制**： 进度经常丢失（更换设备、浏览器、清除缓存时），支持团队无法恢复数据。


## 何时保存进度 {#when-save}

**必须**：在用户可以设置记录或获得成就的游戏中（例如赢得比赛、通过关卡或获得物品），需要保存进度。这样用户可以从他上次游戏会话结束的地方开始游戏。

**非必须**：在简单的游戏中，如果没有进度或进度不影响游戏过程，不需要保存进度。例如，这可能发生在简单的涂色游戏、拼图游戏、问答游戏中。

**示例**

<div class="table-50">

#|
|| **需要保存** | **不需要保存** ||
|| 只有通过前一个等级后才能解锁新等级。 | 游戏中的所有等级一开始就可用。 ||
|| 游戏中可以设置记录、获得成就、胜利。 | 游戏中没有记录、成就和赢的可能性。 ||
|| 随着游戏的进展，难度级别逐渐提高。 | 用户进度不影响难度级别。 ||
|| 完成一个等级可能需要几次常规游戏会话。 | 任何等级都可以在一次常规游戏会话中完成，所有等级一开始就可用。 ||
|#

</div>



## 保存机制 {#mechanic}

保存进度应该发生在：

- 用户执行操作后立即或通过一个特定按钮；

    {% note info %}

    如果游戏有其他保存机制，请在[开发者评论](https://yandex.com/dev/games/doc/zh/console/add-new-game.md#field-comment)中描述。

    {% endnote %}

- 无论用户是否已登录；
- 更改设备方向时（对于移动游戏）。

如果保存设置正确，那么在任何时候刷新页面后（如果保存是通过按钮进行的，按下保存按钮后），进度应该与刷新前相同。

对于移动游戏，重要的是在改变设备方向时不丢失进度：设备旋转后，屏幕上应该显示与改变方向前相同的游戏状态。

**示例**

<div class="table-50">

#|
|| **正确** | **错误** ||
|| 刷新游戏页面后，记录或进度被恢复。 | 刷新游戏页面后，用户的记录或进度未被恢复。 ||
|| 玩家进行操作后或通过保存按钮立即保存进度。 | 进度是定期保存的。 ||
|| 在完成一个等级后或在等级上获得成就时保存进度。 | 游戏不保存用户的记录或进度。 ||
|| 游戏中没有任何进度：等级、复杂性、记录，因此没有保存进度的需求。 | 游戏中有进度，但未被保存。 ||
|| 更改设备方向时，显示的是更改方向前的游戏状态。 | 更改设备方向时，更改前的游戏状态没有被恢复。 ||
|| 进度在玩家操作后或通过保存按钮立即自动保存——保存机制在开发者评论中有描述。 | 游戏有其他进度保存机制，但未在开发者评论中描述。 ||
|| 无论用户是否登录，进度保存对每个用户都是有效的。 | 用户的结果只在排行榜中保存。 ||
|#

</div>
