Accounts #
Pragma’s cross-platform accounts system provides support for authenticating and connecting players across all major game platforms.
In this overview, we’ll cover the following key concepts in Pragma’s authentication system:
- Account Services and Game Services
- Structure of a Pragma Account
- Session types
- Pragma authentication process
Account Services and Game Services #
Pragma services are organized into two backend types: social and game.
- Social backend: Handles authentication, player accounts, and is used to manage a player’s social information (e.g. display name, friends list) shared across one or more game titles.
- Game backend: Used to power game services, such as parties, matchmaking, inventory, and meta-game systems.
Each backend operates independently, with distinct responsibilities and access to specific data. This structure enables multi-game studios to make use of a centralized location for social data (e.g. friends lists, game presence, and bans) such as providing players with a shared friends list across different games. This independence also supports various configurations of environments such as alpha, beta, and playtest.
Structure of a Pragma Account #
A Pragma Account represents a single user and is composed of four types of IDs. This structure keeps data independent, reusable, and also helps ensure the security of personally identifiable information (PII).
- Social ID: A single ID shared across one or more game titles. This enables a single social ecosystem across multiple game launches. Associated data includes social identifier, display name, friends list, and ban records.
- Player ID: A separate player ID is assigned per game environment. This means an account may have several player IDs across multiple test and production environments for one or more game titles. Associated data includes player data, matchmaking, progression, and loadouts.
- Personal ID: This ID is reserved for personal data deemed sensitive such as PII which includes email. Tracking this ID separately makes data privacy and compliance tasks more manageable. It is generally recommended to store as little of this kind of information as possible.
- Provider ID: This ID represents the account managed by a third party provider most often the publishing platform such as Steam, Xbox, or PlayStation. This powers cross-platform account linking and cross-play support.
Session types #
Pragma has 3 authenticated session types with varying permissions levels, actions, and restricted data access.
- Player: A Player session is used to matchmake and interact with player data.
- Operator: An Operator session is used to perform administrative tasks such as applying an account ban.
- Partner: A Partner session is for trusted third parties such as game servers.
Pragma authentication process #
Players authenticate with Pragma by first authenticating through a third party identity provider and exchanging the id provider token for a Pragma session token. Once verified, Pragma retrieves or creates an account for the player and issues them a social and game token for their respective backends.
Pragma has support for many providers, including Steam, Epic, PlayStation, and Xbox, and support for additional providers is added regularly. Additional providers can be added via our plugin system to easily integrate with publisher account systems and other relevant third parties.
Topics in this section #
Topic | Description |
---|---|
Authentication | Dedicated gateways and authentication endpoints. |
Login and Session | Manage user sessions with long-lived WebSockets and queues. |
Cross-Platform Accounts | Cross-progression, cross-play, and cross-platform support account linking between platforms. |
Identity Providers | Using identity providers for authentication and social integration. |
Account Data | Account data represents any data that cannot be scoped lower than the account itself. |
Player Groups | Group player accounts for live ops and shard management features. |
Bans | Restrict a player's access from your game by issuing an account ban. |
Limited Access Mode | Schedule time windows that open the platform for specified Player Groups. |
Account Plugin | The Account Plugin can be used to add custom behavior during the account lifecycle. |