> ## 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 Game Development Kit User Models

> Microsoft Game Development Kit User Models

Starting with the June 2022 GDK, titles on both PC and console have a choice of user models.
You can choose whether or not a default user is required when your game is launched. Previously
this option was only available on console (starting from the April 2021 GDK).

## Default User Required - Simplified User Model

If the game opts into having a required default user, the operating system will ensure that
prior to launch, you have a user who is signed in. Further, if that user ever signs out, the
game will be suspended on console and terminated on PC. The game will never get a sign-out
event for the default user. We call this the simplified user model.

For the vast majority of games, this should simplify your user management as most games
have one local user (and possibly many remote users). You can immediately call
[XUserAddAsync](/reference/system/xuser/functions/xuseraddasync) with AddDefaultUserSilently and be 100% assured that
you will get that user without any UI. All subsequent calls to
[XUserAddAsync](/reference/system/xuser/functions/xuseraddasync) with AddDefaultUserSilently will always return this
default user.

As an additional benefit, this also means that you can use this to hide latency in
collecting information about that user. Since you have the guarantee that you will get
the default user at launch, you can send off web requests to your own backend services
to collect any data and reasonably expect that you will get your results prior to
landing on the main menu of the game.

Games are free to add additional users to the game using [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync).
Unlike in the case of the default users, games can get sign-out events for these added
users.

If a game is relaunched from a tile by a user who is not known to the game, the old
instance of the game will be terminated and the user will get a newly launched instance of the
game.

## Default User Not Required - Advanced User Model

This is the current behavior for the user model in the Microsoft Game Development Kit (GDK). In this case, you have
no guarantee that you have a signed-in user at launch. This option is great for games
where users are expected to come and go. It is also a great option for games that
aren't deeply integrated with XBOX services.

This option is also called the advanced user model.

## Differences in the Simplified User Model between PC and console

In retail, there is one major difference between PC and console in the behavior of the simplified
user model.

* On console, the game will get suspended when the default user is signed out.
* On PC, the game will get terminated when the default user is signed out.

During development, there is one other major difference between PC and console.

* On console, loose-deployed games using the simplified user model will not be allowed to
  launch unless there is already a default user signed in.
* On PC, loose-deployed games using the simplified user model can be launched without a user;
  however, when the game calls [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync), if nobody is signed in, the
  game will get terminated and the PC Bootstrapper will get launched to help sign-in a user.
  Subsequent launches will work just fine so long as the user is fully signed into the XBOX network (also known as XBOX Live).

## See Also

[Opting into Default User Required](/build/core-features/common/user/users-opting-into-simplified-model)


## Related topics

- [Run Microsoft Game Development Kit API task example](/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
- [Users and input devices](/build/core-features/common/user/users-input-devices.md)
- [Networking tools in the Microsoft Game Development Kit](/build/console-features/networking/tools/tools-networking-toc.md)
- [Introduction to Microsoft Game Development Kit networking](/build/console-features/networking/introduction-networking.md)
- [Introduction to Windows Sockets in the GDK](/build/console-features/networking/game-mesh/winsock-intro-networking.md)
