> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft 游戏开发工具包用户模型

> Microsoft 游戏开发工具包用户模型

从 2022 年 6 月 GDK 起,PC 和主机上的游戏均可选择用户模型。
你可以选择在游戏启动时是否要求存在默认用户。此前
该选项仅在主机上可用(从 2021 年 4 月 GDK 起)。

## 需要默认用户 - 简化用户模型

如果游戏选择加入需要默认用户,操作系统将确保在启动之前
已有一个用户已登录。此外,如果该用户注销,则
在主机上游戏会被挂起,在 PC 上则会被终止。游戏永远不会为默认用户
收到注销事件。我们把这称为简化用户模型。

对于绝大多数游戏,这应该会简化你的用户管理,因为大多数游戏
都有一个本地用户(可能有多个远程用户)。你可以立即使用 AddDefaultUserSilently
调用 [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync),并 100% 确信
你会拿到该用户且不会出现任何 UI。所有后续对
[XUserAddAsync](/reference/system/xuser/functions/xuseraddasync) 使用 AddDefaultUserSilently 的调用都始终返回此
默认用户。

作为额外的好处,这还意味着你可以用它来隐藏收集该用户信息时的
延迟。由于你有保证在启动时会拿到默认用户,你可以向自己的后端服务
发起 Web 请求以收集任何数据,并合理地预期在到达游戏主菜单
之前拿到结果。

游戏可以自由地使用 [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync) 向游戏添加更多用户。
与默认用户不同,游戏可以为这些新增用户收到注销事件。

如果游戏被一个游戏未知的用户从磁贴中重新启动,原来的游戏
实例会被终止,该用户会获得一个新启动的游戏实例。

## 不要求默认用户 - 高级用户模型

这是 Microsoft 游戏开发工具包(GDK)中用户模型的当前行为。在这种情况下,你无法
保证在启动时有已登录的用户。此选项非常适合玩家进进出出的游戏。
对于未深入集成 XBOX 服务的游戏,它也是一个不错的选择。

此选项也称为高级用户模型。

## PC 与主机之间简化用户模型的差异

在零售环境下,简化用户模型的行为在 PC 与主机之间有一个主要差异。

* 在主机上,当默认用户注销时,游戏会被挂起。
* 在 PC 上,当默认用户注销时,游戏会被终止。

在开发期间,PC 与主机之间还有另一个主要差异。

* 在主机上,使用简化用户模型的松散部署游戏在没有默认用户
  登录的情况下将不允许启动。
* 在 PC 上,使用简化用户模型的松散部署游戏可以在无用户的情况下启动;
  然而,当游戏调用 [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync) 时,如果无人登录,
  游戏将被终止,并会启动 PC Bootstrapper 来帮助用户登录。
  只要用户完全登录到 XBOX 网络(也称为 XBOX Live),后续的启动就能正常工作。

## 另请参见

[加入“需要默认用户”](/build/core-features/common/user/users-opting-into-simplified-model)


## Related topics

- [用户与输入设备](/zh-CN/build/core-features/common/user/users-input-devices.md)
- [Microsoft 游戏开发工具包中的网络工具](/zh-CN/build/console-features/networking/tools/tools-networking-toc.md)
- [Microsoft 游戏开发工具包网络简介](/zh-CN/build/console-features/networking/introduction-networking.md)
- [用于 PC 游戏开发的 Visual Studio 项目模板](/zh-CN/tools/tools-pc/visualstudio/gr-vs-templates.md)
- [GDK 中的 Windows Sockets 简介](/zh-CN/build/console-features/networking/game-mesh/winsock-intro-networking.md)
