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

# Microsoft Game Development Kit 使用者模型

> Microsoft Game Development Kit 使用者模型

從 2022 年 6 月 GDK 開始，PC 和主機上的遊戲都可以選擇使用者模型。
您可以選擇在啟動遊戲時是否需要預設使用者。先前
此選項僅適用於主機 (從 2021 年 4 月 GDK 開始)。

## 需要預設使用者 - 簡化使用者模型

如果遊戲選擇需要預設使用者，作業系統將確保
在啟動之前，您有一位已登入的使用者。此外，如果該使用者登出，
遊戲在主機上會被暫停，在 PC 上則會被終止。遊戲永遠不會收到預設使用者的登出
事件。我們將此稱為簡化使用者模型。

對於絕大多數遊戲而言，這應該可以簡化您的使用者管理，因為大部分遊戲
都只有一位本機使用者 (可能還有許多遠端使用者)。您可以立即使用 AddDefaultUserSilently 呼叫
[XUserAddAsync](https://docs.xbox.com/zh-TW/reference/system/xuser/functions/xuseraddasync.md)，並百分之百確定
您不會看到任何 UI 就能取得該使用者。之後所有使用 AddDefaultUserSilently 呼叫
[XUserAddAsync](https://docs.xbox.com/zh-TW/reference/system/xuser/functions/xuseraddasync.md) 的作業，都一律會傳回此
預設使用者。

另一個好處是，您也可以藉此隱藏收集該使用者資訊時的
延遲。由於您可以保證在啟動時取得
預設使用者，因此可以向您自己的後端服務傳送 Web 要求
以收集任何資料，並合理預期在
進入遊戲主選單之前就能取得結果。

遊戲可以自由使用 [XUserAddAsync](https://docs.xbox.com/zh-TW/reference/system/xuser/functions/xuseraddasync.md) 將其他使用者新增到遊戲中。
與預設使用者的情況不同，遊戲可能會收到這些新增
使用者的登出事件。

如果遊戲不認識的使用者從磚重新啟動遊戲，舊的
遊戲執行個體將被終止，該使用者將取得新啟動的
遊戲執行個體。

## 不需要預設使用者 - 進階使用者模型

這是 Microsoft Game Development Kit (GDK) 中使用者模型的目前行為。在此情況下，
無法保證在啟動時有已登入的使用者。此選項非常適合
使用者經常來來去去的遊戲。對於未與 XBOX services 深度整合的遊戲，
這也是很好的選項。

此選項也稱為進階使用者模型。

## PC 與主機之間簡化使用者模型的差異

在零售環境中，PC 與主機在簡化使用者模型的行為上有一個主要
差異。

* 在主機上，預設使用者登出時，遊戲會被暫停。
* 在 PC 上，預設使用者登出時，遊戲會被終止。

在開發期間，PC 與主機之間還有另一個主要差異。

* 在主機上，使用簡化使用者模型的鬆散部署遊戲，除非已有預設使用者登入，
  否則不允許啟動。
* 在 PC 上，使用簡化使用者模型的鬆散部署遊戲可以在沒有使用者的情況下啟動；
  但是，當遊戲呼叫 [XUserAddAsync](https://docs.xbox.com/zh-TW/reference/system/xuser/functions/xuseraddasync.md) 時，如果沒有人登入，
  遊戲將被終止，並且會啟動 PC Bootstrapper 來協助使用者登入。
  只要使用者已完全登入 XBOX 網路，之後的啟動即可運作。

## 另請參閱

[選擇需要預設使用者](https://docs.xbox.com/zh-TW/build/core-features/common/user/users-opting-into-simplified-model.md)


## Related topics

- [使用者與輸入裝置](https://docs.xbox.com/zh-TW/build/core-features/common/user/users-input-devices.md)
- [使用 Microsoft Game Development Kit (GDK) 工具安裝與啟動 PC 遊戲](https://docs.xbox.com/zh-TW/tools/tools-pc/launching-on-pc.md)
- [使用 Game Chat 2 C++ API](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2.md)
- [搭配 Microsoft Game Development Kit (GDK) 使用 Clang](https://docs.xbox.com/zh-TW/tools/tools-pc/visualstudio/gr-vs-clang.md)
- [Windows Sockets 簡介](https://docs.xbox.com/zh-TW/build/console-features/networking/game-mesh/winsock-intro-networking.md)
